X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/243dbf1a5088be31980df51b97831b52cb6986cd..5c250a10332dc17263c66deb629b5fa8c4320f8a:/src/motif/choice.cpp diff --git a/src/motif/choice.cpp b/src/motif/choice.cpp index 466b14e7e5..fbc5fdc03e 100644 --- a/src/motif/choice.cpp +++ b/src/motif/choice.cpp @@ -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 );