]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/odcombo.cpp
Added wxMSW wxBitmapComboBox::DoGetBestSize(), which takes bitmap size into account.
[wxWidgets.git] / src / generic / odcombo.cpp
index c4f23b91093eec6e1f2602f52eed8095d4474963..f3cef112d9dfc0b8c2e69720d26f0e912e0ecca7 100644 (file)
@@ -257,14 +257,18 @@ bool wxVListBoxComboPopup::HandleKey( int keycode, bool saturate, wxChar unicode
     int comboStyle = m_combo->GetWindowStyle();
 
     // this is the character equivalent of the code
-    wxChar keychar=0;
-    if ((keycode >= WXK_SPACE) && (keycode <=255) && (keycode != WXK_DELETE) && wxIsprint(keycode))
+    wxChar keychar = 0;
+    if ( keycode < WXK_START )
     {
-        keychar = (wxChar)keycode;
-    }
-    else if (unicode>0)
-    {
-        keychar = unicode;
+        if ( unicode > 0 )
+        {
+            if ( wxIsprint(unicode) )
+                keychar = unicode;
+        }
+        else if ( wxIsprint(keycode) )
+        {
+            keychar = (wxChar) keycode;
+        }
     }
 
     if ( keycode == WXK_DOWN || keycode == WXK_RIGHT )
@@ -287,7 +291,7 @@ bool wxVListBoxComboPopup::HandleKey( int keycode, bool saturate, wxChar unicode
         value-=10;
         StopPartialCompletion();
     }
-    else if ( comboStyle & wxCB_READONLY )
+    else if ( keychar && (comboStyle & wxCB_READONLY) )
     {
         // Try partial completion
 
@@ -477,7 +481,7 @@ void wxVListBoxComboPopup::Insert( const wxString& item, int pos )
     }
 
     m_strings.Insert(item,pos);
-    if ( m_clientDatas.size() >= pos )
+    if ( (int)m_clientDatas.size() >= pos )
         m_clientDatas.Insert(NULL, pos);
 
     m_widths.Insert(-1,pos);
@@ -500,7 +504,7 @@ int wxVListBoxComboPopup::Append(const wxString& item)
 
         for ( i=0; i<strings.GetCount(); i++ )
         {
-            if ( item.Cmp(strings.Item(i)) < 0 )
+            if ( item.CmpNoCase(strings.Item(i)) < 0 )
             {
                 pos = (int)i;
                 break;
@@ -1035,7 +1039,7 @@ int wxOwnerDrawnComboBox::DoInsertItems(const wxArrayStringsAdapter& items,
 
         for ( unsigned int i = 0; i < count; ++i )
         {
-            int n = GetVListBoxComboPopup()->Append(items[i]);
+            n = GetVListBoxComboPopup()->Append(items[i]);
             AssignNewItemClientData(n, clientData, i, type);
         }