ComboEx: CBES_EX_NOSIZELIMIT

Dimitrie O. Paun dpaun at rogers.com
Thu Aug 29 16:14:57 CDT 2002


ChangeLog
  Implement CBES_EX_NOSIZELIMIT style for ComboEx.

Index: dlls/comctl32/comboex.c
===================================================================
RCS file: /var/cvs/wine/dlls/comctl32/comboex.c,v
retrieving revision 1.51
diff -u -r1.51 comboex.c
--- dlls/comctl32/comboex.c	28 Aug 2002 22:21:46 -0000	1.51
+++ dlls/comctl32/comboex.c	29 Aug 2002 20:56:14 -0000
@@ -19,9 +19,6 @@
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * FIXME:
- *  1. Implement following extended styles:
- *	     CBES_EX_NOSIZELIMIT
  */
 
 #include <string.h>
@@ -399,9 +396,24 @@
 	TRACE("upgraded height due to image:  height=%d\n", cy);
     }
     SendMessageW (infoPtr->hwndSelf, CB_SETITEMHEIGHT, (WPARAM)-1, (LPARAM)cy);
-    if (infoPtr->hwndCombo)
+    if (infoPtr->hwndCombo) {
         SendMessageW (infoPtr->hwndCombo, CB_SETITEMHEIGHT,
 		      (WPARAM) 0, (LPARAM) cy);
+	if ( !(infoPtr->flags & CBES_EX_NOSIZELIMIT)) {
+	    RECT comboRect;
+	    if (GetWindowRect(infoPtr->hwndCombo, &comboRect)) {
+		RECT ourRect;
+		if (GetWindowRect(infoPtr->hwndSelf, &ourRect)) {
+		    if (comboRect.bottom > ourRect.bottom) {
+			POINT pt = { ourRect.left, ourRect.top };
+			if (ScreenToClient(infoPtr->hwndSelf, &pt))
+			    MoveWindow( infoPtr->hwndSelf, pt.x, pt.y, ourRect.right - ourRect.left,
+					comboRect.bottom - comboRect.top, FALSE);
+		    }
+		}
+	    }
+	}
+    }
 }
 
 
@@ -641,9 +653,6 @@
     TRACE("(mask=x%08lx, style=0x%08lx)\n", mask, style);
 
     dwTemp = infoPtr->dwExtStyle;
-
-    if (style & CBES_EX_NOSIZELIMIT)
-	FIXME("Extended style CBES_EX_NOSIZELIMIT implemented\n");
 
     if (mask)
 	infoPtr->dwExtStyle = (infoPtr->dwExtStyle & ~mask) | style;




More information about the wine-patches mailing list