]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/choice.cpp
default implementation of Get(Class)DefaultAttributes()
[wxWidgets.git] / src / motif / choice.cpp
index 466b14e7e583830cac203b9f806b97e785aff62d..fbc5fdc03ededafbb85e27ab0c00e1ded8e99fc8 100644 (file)
@@ -9,7 +9,7 @@
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "choice.h"
 #endif
 
@@ -22,6 +22,7 @@
 
 #include "wx/choice.h"
 #include "wx/utils.h"
+#include "wx/arrstr.h"
 
 #ifdef __VMS__
 #pragma message disable nosimpint
@@ -52,8 +53,6 @@ wxChoice::wxChoice()
 
 void wxChoice::Init()
 {
-    InitBase();
-
     m_noStrings = 0;
     m_buttonWidget = (WXWidget) 0;
     m_menuWidget = (WXWidget) 0;
@@ -145,6 +144,19 @@ bool wxChoice::Create(wxWindow *parent, wxWindowID id,
     return TRUE;
 }
 
+bool wxChoice::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);
+}
+
 wxChoice::~wxChoice()
 {
     // For some reason destroying the menuWidget
@@ -222,7 +234,7 @@ void wxChoice::Delete(int n)
     Widget w = (Widget)m_widgetArray[n];
     XtRemoveCallback(w, XmNactivateCallback, (XtCallbackProc)wxChoiceCallback,
                      (XtPointer)this);
-    m_stringList.DeleteNode(m_stringList.Item(n));
+    m_stringList.Erase(m_stringList.Item(n));
     m_widgetArray.RemoveAt(size_t(n));
     m_clientDataDict.Delete(n, HasClientObjectData());
 
@@ -267,7 +279,7 @@ int wxChoice::GetSelection() const
     if (!s.IsEmpty())
     {
         int i = 0;
-        for (wxStringListNode* node = m_stringList.GetFirst ();
+        for (wxStringList::compatibility_iterator node = m_stringList.GetFirst ();
              node; node = node->GetNext ())
         {
             if (wxStrcmp(node->GetData(), s.c_str()) == 0)
@@ -287,7 +299,7 @@ void wxChoice::SetSelection(int n)
 {
     m_inSetValue = TRUE;
 
-    wxStringListNode *node = m_stringList.Item(n);
+    wxStringList::compatibility_iterator node = m_stringList.Item(n);
     if (node)
     {
 #if 0
@@ -318,7 +330,7 @@ void wxChoice::SetSelection(int n)
 int wxChoice::FindString(const wxString& s) const
 {
     int i = 0;
-    for (wxStringListNode* node = m_stringList.GetFirst();
+    for (wxStringList::compatibility_iterator node = m_stringList.GetFirst();
          node; node = node->GetNext ())
     {
         if (s == node->GetData())
@@ -332,7 +344,7 @@ int wxChoice::FindString(const wxString& s) const
 
 wxString wxChoice::GetString(int n) const
 {
-    wxStringListNode *node = m_stringList.Item(n);
+    wxStringList::compatibility_iterator node = m_stringList.Item(n);
     if (node)
         return node->GetData();
     else
@@ -523,7 +535,7 @@ wxSize wxChoice::GetItemsSize() const
     // get my
     GetTextExtent( "|", &x, &my );
 
-    wxStringList::Node* curr = m_stringList.GetFirst();
+    wxStringList::compatibility_iterator curr = m_stringList.GetFirst();
     while( curr )
     {
         GetTextExtent( curr->GetData(), &x, &y );