X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/550343399aa1355469ffed72c8cf84c732dcf98b..9d8fe14a97d1092989eecbe43c4e1f730fba17ad:/src/motif/choice.cpp diff --git a/src/motif/choice.cpp b/src/motif/choice.cpp index 40bd97b453..6c7edaa117 100644 --- a/src/motif/choice.cpp +++ b/src/motif/choice.cpp @@ -12,18 +12,19 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" +#if wxUSE_CHOICE + #ifdef __VMS #define XtDisplay XTDISPLAY #define XtParent XTPARENT #endif -#include "wx/defs.h" - -#if wxUSE_CHOICE - #include "wx/choice.h" -#include "wx/utils.h" -#include "wx/arrstr.h" + +#ifndef WX_PRECOMP + #include "wx/utils.h" + #include "wx/arrstr.h" +#endif #ifdef __VMS__ #pragma message disable nosimpint @@ -70,6 +71,7 @@ bool wxChoice::Create(wxWindow *parent, wxWindowID id, { if ( !CreateControl(parent, id, pos, size, style, validator, name) ) return false; + PreCreation(); Widget parentWidget = (Widget) parent->GetClientWidget(); @@ -137,9 +139,7 @@ bool wxChoice::Create(wxWindow *parent, wxWindowID id, XtVaSetValues((Widget) m_formWidget, XmNresizePolicy, XmRESIZE_NONE, NULL); - ChangeFont(false); - ChangeBackgroundColour(); - + PostCreation(); AttachWidget (parent, m_buttonWidget, m_formWidget, pos.x, pos.y, bestSize.x, bestSize.y); @@ -189,12 +189,12 @@ static inline wxChar* MYcopystring(const wxChar* s) return wxStrcpy(copy, s); } -int wxChoice::DoInsert(const wxString& item, int pos) +int wxChoice::DoInsert(const wxString& item, unsigned int pos) { #ifndef XmNpositionIndex wxCHECK_MSG( pos == GetCount(), -1, wxT("insert not implemented")); #endif - Widget w = XtVaCreateManagedWidget (wxStripMenuCodes(item), + Widget w = XtVaCreateManagedWidget (GetLabelText(item), #if wxUSE_GADGETS xmPushButtonGadgetClass, (Widget) m_menuWidget, #else @@ -241,7 +241,7 @@ int wxChoice::DoAppend(const wxString& item) return DoInsert(item, GetCount()); } -void wxChoice::Delete(int n) +void wxChoice::Delete(unsigned int n) { Widget w = (Widget)m_widgetArray[n]; XtRemoveCallback(w, XmNactivateCallback, (XtCallbackProc)wxChoiceCallback, @@ -251,13 +251,13 @@ void wxChoice::Delete(int n) m_clientDataDict.Delete(n, HasClientObjectData()); XtDestroyWidget(w); - m_noStrings --; + m_noStrings--; } void wxChoice::Clear() { m_stringList.Clear (); - size_t i; + unsigned int i; for (i = 0; i < m_noStrings; i++) { XtRemoveCallback((Widget) m_widgetArray[i], @@ -339,7 +339,7 @@ void wxChoice::SetSelection(int n) m_inSetValue = false; } -wxString wxChoice::GetString(int n) const +wxString wxChoice::GetString(unsigned int n) const { wxStringList::compatibility_iterator node = m_stringList.Item(n); if (node) @@ -386,7 +386,7 @@ void wxChoice::DoSetSize(int x, int y, int width, int height, int sizeFlags) if (width > -1) { - size_t i; + unsigned int i; for (i = 0; i < m_noStrings; i++) XtVaSetValues ((Widget) m_widgetArray[i], XmNwidth, actualWidth, @@ -397,7 +397,7 @@ void wxChoice::DoSetSize(int x, int y, int width, int height, int sizeFlags) if (height > -1) { #if 0 - size_t i; + unsigned int i; for (i = 0; i < m_noStrings; i++) XtVaSetValues ((Widget) m_widgetArray[i], XmNheight, actualHeight, @@ -449,7 +449,7 @@ void wxChoice::ChangeFont(bool keepOriginalSize) // Note that this causes the widget to be resized back // to its original size! We therefore have to set the size // back again. TODO: a better way in Motif? - if (m_font.Ok()) + if (m_mainWidget && m_font.Ok()) { Display* dpy = XtDisplay((Widget) m_mainWidget); int width, height, width1, height1; @@ -464,7 +464,7 @@ void wxChoice::ChangeFont(bool keepOriginalSize) fontTag, m_font.GetFontTypeC(dpy), NULL); - for( size_t i = 0; i < m_noStrings; ++i ) + for( unsigned int i = 0; i < m_noStrings; ++i ) XtVaSetValues( (Widget)m_widgetArray[i], fontTag, m_font.GetFontTypeC(dpy), NULL ); @@ -482,7 +482,7 @@ void wxChoice::ChangeBackgroundColour() wxDoChangeBackgroundColour(m_formWidget, m_backgroundColour); wxDoChangeBackgroundColour(m_buttonWidget, m_backgroundColour); wxDoChangeBackgroundColour(m_menuWidget, m_backgroundColour); - size_t i; + unsigned int i; for (i = 0; i < m_noStrings; i++) wxDoChangeBackgroundColour(m_widgetArray[i], m_backgroundColour); } @@ -492,38 +492,38 @@ void wxChoice::ChangeForegroundColour() wxDoChangeForegroundColour(m_formWidget, m_foregroundColour); wxDoChangeForegroundColour(m_buttonWidget, m_foregroundColour); wxDoChangeForegroundColour(m_menuWidget, m_foregroundColour); - size_t i; + unsigned int i; for (i = 0; i < m_noStrings; i++) wxDoChangeForegroundColour(m_widgetArray[i], m_foregroundColour); } -int wxChoice::GetCount() const +unsigned int wxChoice::GetCount() const { return m_noStrings; } -void wxChoice::DoSetItemClientData(int n, void* clientData) +void wxChoice::DoSetItemClientData(unsigned int n, void* clientData) { m_clientDataDict.Set(n, (wxClientData*)clientData, false); } -void* wxChoice::DoGetItemClientData(int n) const +void* wxChoice::DoGetItemClientData(unsigned int n) const { return (void*)m_clientDataDict.Get(n); } -void wxChoice::DoSetItemClientObject(int n, wxClientData* clientData) +void wxChoice::DoSetItemClientObject(unsigned int n, wxClientData* clientData) { // don't delete, wxItemContainer does that for us m_clientDataDict.Set(n, clientData, false); } -wxClientData* wxChoice::DoGetItemClientObject(int n) const +wxClientData* wxChoice::DoGetItemClientObject(unsigned int n) const { return m_clientDataDict.Get(n); } -void wxChoice::SetString(int WXUNUSED(n), const wxString& WXUNUSED(s)) +void wxChoice::SetString(unsigned int WXUNUSED(n), const wxString& WXUNUSED(s)) { wxFAIL_MSG( wxT("wxChoice::SetString not implemented") ); }