]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/choice.cpp
Add more checks for wxUSE_DYNLIB_CLASS to wxMSW.
[wxWidgets.git] / src / msw / choice.cpp
index fd54852b9da951bc91c4ccfa1cdd0d20f3059c09..5b7f131e0b5fc30fd1883dd82462544a256f8106 100644 (file)
@@ -246,7 +246,7 @@ wxChoice::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
 
     // NB: use EDIT, not COMBOBOX (the latter works in XP but not Vista)
     attrs.colBg = wnd->MSWGetThemeColour(L"EDIT",
 
     // NB: use EDIT, not COMBOBOX (the latter works in XP but not Vista)
     attrs.colBg = wnd->MSWGetThemeColour(L"EDIT",
-                                         EP_EDITTEXT, 
+                                         EP_EDITTEXT,
                                          ETS_NORMAL,
                                          ThemeColourBackground,
                                          wxSYS_COLOUR_WINDOW);
                                          ETS_NORMAL,
                                          ThemeColourBackground,
                                          wxSYS_COLOUR_WINDOW);
@@ -553,8 +553,21 @@ void wxChoice::DoSetSize(int x, int y,
                          int width, int height,
                          int sizeFlags)
 {
                          int width, int height,
                          int sizeFlags)
 {
+    const int heightBest = GetBestSize().y;
+
     // we need the real height below so get the current one if it's not given
     // we need the real height below so get the current one if it's not given
-    if ( height != wxDefaultCoord && height != GetBestSize().y )
+    if ( height == wxDefaultCoord )
+    {
+        // height not specified, use the same as before
+        DoGetSize(NULL, &height);
+    }
+    else if ( height == heightBest )
+    {
+        // we don't need to manually manage our height, let the system use the
+        // default one
+        m_heightOwn = wxDefaultCoord;
+    }
+    else // non-default height specified
     {
         // set our new own height but be careful not to make it too big: the
         // native control apparently stores it as a single byte and so setting
     {
         // set our new own height but be careful not to make it too big: the
         // native control apparently stores it as a single byte and so setting
@@ -568,10 +581,6 @@ void wxChoice::DoSetSize(int x, int y,
         else if ( m_heightOwn < COMBO_HEIGHT_ADJ )
             m_heightOwn = COMBO_HEIGHT_ADJ;
     }
         else if ( m_heightOwn < COMBO_HEIGHT_ADJ )
             m_heightOwn = COMBO_HEIGHT_ADJ;
     }
-    else // height not specified
-    {
-        DoGetSize(NULL, &height);
-    }
 
 
     // the height which we must pass to Windows should be the total height of
 
 
     // the height which we must pass to Windows should be the total height of