]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/checklst.cpp
Also allow key events for Shift-Tab when wxWANTS_CHARS style is used
[wxWidgets.git] / src / univ / checklst.cpp
index 5a1c9c0cd5fc0b91856230dfe6dfb7223b22fc6c..f527683e6129b2c44ac7cf337d18a3cf3e1aadf1 100644 (file)
@@ -17,8 +17,8 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
-    #pragma implementation "checklst.h"
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+    #pragma implementation "univchecklst.h"
 #endif
 
 #include "wx/wxprec.h"
@@ -55,6 +55,35 @@ void wxCheckListBox::Init()
 {
 }
 
+wxCheckListBox::wxCheckListBox(wxWindow *parent,
+                               wxWindowID id,
+                               const wxPoint &pos,
+                               const wxSize &size,
+                               const wxArrayString& choices,
+                               long style,
+                               const wxValidator& validator,
+                               const wxString &name)
+{
+    Init();
+
+    Create(parent, id, pos, size, choices, style, validator, name);
+}
+
+bool wxCheckListBox::Create(wxWindow *parent,
+                            wxWindowID id,
+                            const wxPoint &pos,
+                            const wxSize &size,
+                            const wxArrayString& choices,
+                            long style,
+                            const wxValidator& validator,
+                            const wxString &name)
+{
+    wxCArrayString chs(choices);
+
+    return Create(parent, id, pos, size, chs.GetCount(), chs.GetStrings(),
+                  style, validator, name);
+}
+
 bool wxCheckListBox::Create(wxWindow *parent,
                             wxWindowID id,
                             const wxPoint &pos,
@@ -211,26 +240,26 @@ wxStdCheckListboxInputHandler(wxInputHandler *inphand)
 {
 }
 
-bool wxStdCheckListboxInputHandler::HandleKey(wxControl *control,
+bool wxStdCheckListboxInputHandler::HandleKey(wxInputConsumer *consumer,
                                               const wxKeyEvent& event,
                                               bool pressed)
 {
     if ( pressed && (event.GetKeyCode() == WXK_SPACE) )
-        control->PerformAction(wxACTION_CHECKLISTBOX_TOGGLE);
+        consumer->PerformAction(wxACTION_CHECKLISTBOX_TOGGLE);
 
-    return wxStdListboxInputHandler::HandleKey(control, event, pressed);
+    return wxStdListboxInputHandler::HandleKey(consumer, event, pressed);
 }
 
-bool wxStdCheckListboxInputHandler::HandleMouse(wxControl *control,
+bool wxStdCheckListboxInputHandler::HandleMouse(wxInputConsumer *consumer,
                                                 const wxMouseEvent& event)
 {
     if ( event.LeftDown() || event.LeftDClick() )
     {
-        wxCheckListBox *lbox = wxStaticCast(control, wxCheckListBox);
+        wxCheckListBox *lbox = wxStaticCast(consumer->GetInputWindow(), wxCheckListBox);
         int x, y;
 
         wxPoint pt = event.GetPosition();
-        pt -= control->GetClientAreaOrigin();
+        pt -= consumer->GetInputWindow()->GetClientAreaOrigin();
         lbox->CalcUnscrolledPosition(pt.x, pt.y, &x, &y);
 
         wxRenderer *renderer = lbox->GetRenderer();
@@ -248,7 +277,7 @@ bool wxStdCheckListboxInputHandler::HandleMouse(wxControl *control,
         }
     }
 
-    return wxStdListboxInputHandler::HandleMouse(control, event);
+    return wxStdListboxInputHandler::HandleMouse(consumer, event);
 }
 
 #endif // wxUSE_CHECKLISTBOX