]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/PlatWX.cpp
fix for wxComboBox::GetSelection from inside event handler
[wxWidgets.git] / src / stc / PlatWX.cpp
index ae53b19b54a3822976b6945faaaf13c0cedb25cf..65d7de1b454a19f4c145dbac61ce36810108fe5f 100644 (file)
@@ -456,7 +456,7 @@ class wxSTCListBox : public wxListBox {
 public:
     wxSTCListBox(wxWindow* parent, wxWindowID id)
         : wxListBox(parent, id, wxDefaultPosition, wxDefaultSize,
-                    0, NULL, wxLB_SINGLE | wxLB_SORT | wxSIMPLE_BORDER)
+                    0, NULL, wxLB_SINGLE | wxSIMPLE_BORDER) // | wxLB_SORT )
         {}
 
     void OnFocus(wxFocusEvent& event) {
@@ -464,10 +464,6 @@ public:
         event.Skip();
     }
 
-#ifdef __WXGTK__
-    void DoSetFirstItem(int n);
-#endif
-
 private:
     DECLARE_EVENT_TABLE()
 };
@@ -477,52 +473,6 @@ BEGIN_EVENT_TABLE(wxSTCListBox, wxListBox)
 END_EVENT_TABLE()
 
 
-
-
-#ifdef __WXGTK__
-    // This can be removed after 2.2.2 I think
-void wxSTCListBox::DoSetFirstItem( int n )
-{
-    wxCHECK_RET( m_list, wxT("invalid listbox") );
-
-    if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (m_list))
-        return;
-
-    // terribly efficient
-    const gchar *vadjustment_key = "gtk-vadjustment";
-    guint vadjustment_key_id = g_quark_from_static_string (vadjustment_key);
-
-    GtkAdjustment *adjustment =
-       (GtkAdjustment*) gtk_object_get_data_by_id (GTK_OBJECT (m_list), vadjustment_key_id);
-    wxCHECK_RET( adjustment, wxT("invalid listbox code") );
-
-    GList *target = g_list_nth( m_list->children, n );
-    wxCHECK_RET( target, wxT("invalid listbox index") );
-
-    GtkWidget *item = GTK_WIDGET(target->data);
-    wxCHECK_RET( item, wxT("invalid listbox code") );
-
-    // find the last item before this one which is already realized
-    size_t nItemsBefore;
-    for ( nItemsBefore = 0; item && (item->allocation.y == -1); nItemsBefore++ )
-    {
-        target = target->prev;
-        if ( !target )
-        {
-            // nothing we can do if there are no allocated items yet
-            return;
-        }
-
-        item = GTK_WIDGET(target->data);
-    }
-
-    gtk_adjustment_set_value(adjustment,
-                             item->allocation.y +
-                                nItemsBefore*item->allocation.height);
-}
-#endif
-
-
 ListBox::ListBox() {
 }
 
@@ -531,8 +481,10 @@ ListBox::~ListBox() {
 
 void ListBox::Create(Window &parent, int ctrlID) {
     id = new wxSTCListBox(parent.id, ctrlID);
-//    id = new wxListBox(parent.id, ctrlID,  wxDefaultPosition, wxDefaultSize,
-//                       0, NULL, wxLB_SINGLE | wxLB_SORT | wxSIMPLE_BORDER);
+}
+
+void ListBox::SetVisibleRows(int rows) {
+       desiredVisibleRows = rows;
 }
 
 PRectangle ListBox::GetDesiredRect() {
@@ -540,13 +492,12 @@ PRectangle ListBox::GetDesiredRect() {
     PRectangle rc;
     rc.top = 0;
     rc.left = 0;
-    if (sz.x > 150)   // TODO: A better way to determine these max sizes
-        sz.x = 150;
-    if (sz.y > 100)
-        sz.y = 100;
+    if (sz.x > 400)
+        sz.x = 400;
+    if (sz.y > 160)  // TODO:  Use desiredVisibleRows??
+        sz.y = 160;
     rc.right = sz.x;
     rc.bottom = sz.y;
-
     return rc;
 }
 
@@ -586,13 +537,7 @@ int ListBox::GetSelection() {
 }
 
 int ListBox::Find(const char *prefix) {
-    if (prefix) {
-        for (int x=0; x < ((wxListBox*)id)->GetCount(); x++) {
-            wxString text = ((wxListBox*)id)->GetString(x);
-            if (text.StartsWith(prefix))
-                return x;
-        }
-    }
+    // No longer used
     return -1;
 }