]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/checklst.cpp
check for error in GetSelection(long *, long *); clean up SetSelect(long, long)
[wxWidgets.git] / src / motif / checklst.cpp
index fc1a76f69c83a5dbaf98dac119dcbdedfc2b2965..0d9bb1dc238aa658c19e5751a8256980deb84893 100644 (file)
 // headers & declarations
 // ============================================================================
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "checklst.h"
 #endif
 
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
 #include "wx/defs.h"
 
 #include "wx/checklst.h"
+#include "wx/arrstr.h"
 
 // ============================================================================
 // implementation
@@ -54,17 +58,7 @@ static void CopyStringsAddingPrefix(const wxArrayString& orig,
     copy.Clear();
 
     for(size_t i = 0; i < orig.GetCount(); ++i )
-        copy[i] = Prefix(FALSE) + orig[i];
-}
-
-static wxString* CopyStringsAddingPrefix(size_t n, const wxString choices[])
-{
-    wxString* copy = new wxString[n];
-
-    for(size_t i = 0; i < n; ++i )
-        copy[i].Add( Prefix(FALSE) + choices[i] );
-
-    return copy;
+        copy.Add( Prefix(FALSE) + orig[i] );
 }
 
 // def ctor: use Create() to really create the control
@@ -84,18 +78,42 @@ wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
            style, val, name);
 }
 
+wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
+                               const wxPoint& pos, const wxSize& size,
+                               const wxArrayString& choices,
+                               long style, const wxValidator& val,
+                               const wxString& name)
+                               : wxCheckListBoxBase()
+{
+    Create(parent, id, pos, size, choices,
+           style, val, name);
+}
+
+bool wxCheckListBox::Create(wxWindow *parent, wxWindowID id,
+                            const wxPoint& pos,
+                            const wxSize& size,
+                            int n, const wxString choices[],
+                            long style,
+                            const wxValidator& validator,
+                            const wxString& name)
+{
+    // wxListBox::Create calls set, which adds the prefixes
+    bool retVal = wxListBox::Create(parent, id, pos, size, n, choices,
+                                    style, validator, name);
+    return retVal;
+}   
+
 bool wxCheckListBox::Create(wxWindow *parent, wxWindowID id,
-                            const wxPoint& pos = wxDefaultPosition,
-                            const wxSize& size = wxDefaultSize,
-                            int n = 0, const wxString choices[] = NULL,
-                            long style = 0,
-                            const wxValidator& validator = wxDefaultValidator,
+                            const wxPoint& pos,
+                            const wxSize& size,
+                            const wxArrayString& choices,
+                            long style,
+                            const wxValidator& validator,
                             const wxString& name)
 {
-    wxString* chs = CopyStringsAddingPrefix(n, choices);
-    bool retVal = wxListBox::Create(parent, id, pos, size, n, chs,
+    // wxListBox::Create calls set, which adds the prefixes
+    bool retVal = wxListBox::Create(parent, id, pos, size, choices,
                                     style, validator, name);
-    delete[] chs;
     return retVal;
 }   
 
@@ -128,8 +146,8 @@ void wxCheckListBox::DoToggleItem( int n, int x )
             event.SetClientObject( GetClientObject(n) );
         else if( HasClientUntypedData() )
             event.SetClientData( GetClientData(n) );
-        event.m_commandInt = n;
-        event.m_extraLong = TRUE;
+        event.SetInt(n);
+        event.SetExtraLong(TRUE);
         event.SetEventObject(this);
         event.SetString( GetString( n ) );