]> git.saurik.com Git - wxWidgets.git/commitdiff
1. more proper fix for wxChoice/wxComboBox height problems than in 2,2 branch
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 19 May 2001 01:01:21 +0000 (01:01 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 19 May 2001 01:01:21 +0000 (01:01 +0000)
2. wxIsspace() fix merged from the 2.2 branch

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/choice.h
include/wx/msw/combobox.h
include/wx/wxchar.h
src/msw/choice.cpp
src/msw/combobox.cpp

index cc00ce00b3eed0c2e410aef0a9e35dd8750b1892..fdc9fef5b89486be739b20527f0cb60676b72625 100644 (file)
@@ -70,6 +70,7 @@ public:
             WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
 
 protected:
+    virtual void DoMoveWindow(int x, int y, int width, int height);
     virtual void DoSetItemClientData( int n, void* clientData );
     virtual void* DoGetItemClientData( int n ) const;
     virtual void DoSetItemClientObject( int n, wxClientData* clientData );
index ab5127be3d7f01f525b6dddad707bdfad4b6d094..3a1877a3038b1aa5ea70e53ef2a4a9b0f0032a1a 100644 (file)
@@ -86,7 +86,6 @@ public:
     WXHWND GetEditHWND() const;
 
 protected:
-    virtual void DoMoveWindow(int x, int y, int width, int height);
     virtual wxSize DoGetBestSize() const;
 };
 
index 31658ced47b91106052c29e4461befce004df85f..ff21ca685bf366a61fdb9515fd57f5bdfc8d54de 100644 (file)
@@ -637,6 +637,13 @@ WXDLLEXPORT int      wxSystem(const wxChar *psz);
 WXDLLEXPORT size_t   wxStrftime(wxChar *s, size_t max, const wxChar *fmt, const struct tm *tm);
 #endif
 
+// under VC++ 6.0 isspace() returns 1 for 8 bit chars which completely breaks
+// the file parsing - this may be true for 5.0 as well, update #ifdef then
+#if defined(__VISUALC__) && (__VISUALC__ >= 1200) && !wxUSE_UNICODE
+    #undef wxIsspace
+    #define wxIsspace(c) ((((unsigned)c) < 128) && isspace(c))
+#endif // VC++
+
 // ----------------------------------------------------------------------------
 // common macros which are always defined
 // ----------------------------------------------------------------------------
index 41e23a5ece2874932622de928d43335a8f1d0a6c..110d9e0b91a4b4f7cc2ed0e0044f8160373f31b3 100644 (file)
@@ -38,7 +38,7 @@
 
 #include "wx/msw/private.h"
 
-    IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl)
 
 // ============================================================================
 // implementation
@@ -254,6 +254,24 @@ wxClientData* wxChoice::DoGetItemClientObject( int n ) const
 // wxMSW specific helpers
 // ----------------------------------------------------------------------------
 
+void wxChoice::DoMoveWindow(int x, int y, int width, int height)
+{
+    // here is why this is necessary: if the width is negative, the combobox
+    // window proc makes the window of the size width*height instead of
+    // interpreting height in the usual manner (meaning the height of the drop
+    // down list - usually the height specified in the call to MoveWindow()
+    // will not change the height of combo box per se)
+    //
+    // this behaviour is not documented anywhere, but this is just how it is
+    // here (NT 4.4) and, anyhow, the check shouldn't hurt - however without
+    // the check, constraints/sizers using combos may break the height
+    // constraint will have not at all the same value as expected
+    if ( width < 0 )
+        return;
+
+    wxControl::DoMoveWindow(x, y, width, height);
+}
+
 void wxChoice::DoSetSize(int x, int y,
                          int width, int WXUNUSED(height),
                          int sizeFlags)
index c66b9eb9061110c57c49826978785a675ea93a6e..67cfabde1bcb6b5988375035dfb0810d08a377c7 100644 (file)
@@ -487,36 +487,6 @@ void wxComboBox::SetSelection(long from, long to)
     }
 }
 
-void wxComboBox::DoMoveWindow(int x, int y, int width, int height)
-{
-    // here is why this is necessary: if the width is negative, the combobox
-    // window proc makes the window of the size width*height instead of
-    // interpreting height in the usual manner (meaning the height of the drop
-    // down list - usually the height specified in the call to MoveWindow()
-    // will not change the height of combo box per se)
-    //
-    // this behaviour is not documented anywhere, but this is just how it is
-    // here (NT 4.4) and, anyhow, the check shouldn't hurt - however without
-    // the check, constraints/sizers using combos may break the height
-    // constraint will have not at all the same value as expected
-    if ( width < 0 )
-        return;
-
-    int cx, cy;
-    wxGetCharSize(GetHWND(), &cx, &cy, &GetFont());
-
-    // what should the height of the drop down list be? we choose 10 items by
-    // default and also 10 items max (if we always use n, the list will never
-    // have vertical scrollbar)
-    int n = GetCount();
-    if ( !n || (n > 10) )
-        n = 10;
-
-    height = (n + 1)* EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy);
-
-    wxControl::DoMoveWindow(x, y, width, height);
-}
-
 wxSize wxComboBox::DoGetBestSize() const
 {
     // the choice calculates the horz size correctly, but not the vertical