X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/813c20a67e8a82d16700344625b8fdfb32e04833..91c536df157aa500e832ff9e8541839d2e07f6b4:/src/motif/listbox.cpp diff --git a/src/motif/listbox.cpp b/src/motif/listbox.cpp index 685db11e3d..3502c25afc 100644 --- a/src/motif/listbox.cpp +++ b/src/motif/listbox.cpp @@ -13,18 +13,27 @@ #pragma implementation "listbox.h" #endif -#include "wx/listbox.h" +#ifdef __VMS +#define XtParent XTPARENT +#define XtDisplay XTDISPLAY +#endif + +# include "wx/listbox.h" #include "wx/settings.h" #include "wx/dynarray.h" #include "wx/log.h" #include "wx/utils.h" +#ifdef __VMS__ +#pragma message disable nosimpint +#endif #include +#ifdef __VMS__ +#pragma message enable nosimpint +#endif #include "wx/motif/private.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl) -#endif static void wxListBoxCallback(Widget w, XtPointer clientData, @@ -405,7 +414,7 @@ void wxListBox::SetSelection(int N, bool select) m_inSetValue = FALSE; } -bool wxListBox::Selected(int N) const +bool wxListBox::IsSelected(int N) const { // In Motif, no simple way to determine if the item is selected. wxArrayInt theSelections; @@ -653,7 +662,7 @@ void wxListBox::Command (wxCommandEvent & event) ProcessCommand (event); } -void wxListBoxCallback (Widget w, XtPointer clientData, +void wxListBoxCallback (Widget WXUNUSED(w), XtPointer clientData, XmListCallbackStruct * cbs) { /* @@ -717,7 +726,7 @@ void wxListBoxCallback (Widget w, XtPointer clientData, * designated "default button" in the action area and activate it * as if the user had selected it. */ -void wxListBoxDefaultActionProc (Widget list_w, XtPointer client_data, XmListCallbackStruct * cbs) +void wxListBoxDefaultActionProc (Widget WXUNUSED(list_w), XtPointer client_data, XmListCallbackStruct * WXUNUSED(cbs)) { wxListBox *lbox = (wxListBox *) client_data; @@ -751,7 +760,7 @@ void wxListBox::ChangeBackgroundColour() /* TODO: should scrollbars be affected? Should probably have separate * function to change them (by default, taken from wxSystemSettings) */ - wxColour backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); + wxColour backgroundColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE); DoChangeBackgroundColour((WXWidget) hsb, backgroundColour, TRUE); DoChangeBackgroundColour((WXWidget) vsb, backgroundColour, TRUE); @@ -786,4 +795,71 @@ void wxListBox::ChangeForegroundColour() */ } +// These implement functions needed by wxControlWithItems. +// Unfortunately, they're not all implemented yet. + +int wxListBox::GetCount() const +{ + return Number(); +} + +int wxListBox::DoAppend(const wxString& item) +{ + Append(item, (void*) NULL); + return GetCount() - 1; +} +// Just appends, doesn't yet insert +void wxListBox::DoInsertItems(const wxArrayString& items, int WXUNUSED(pos)) +{ + size_t nItems = items.GetCount(); + + for ( size_t n = 0; n < nItems; n++ ) + { + Append( items[n], (void*) NULL); + } +} + +void wxListBox::DoSetItems(const wxArrayString& items, void **clientData) +{ + size_t nItems = items.GetCount(); + wxString* strings = new wxString[nItems]; + + for ( size_t n = 0; n < nItems; n++ ) + { + strings[n] = items[n]; + } + Set(nItems, strings, clientData); + + delete[] strings; +} + +void wxListBox::DoSetFirstItem(int WXUNUSED(n)) +{ + wxFAIL_MSG( wxT("wxListBox::DoSetFirstItem not implemented") ); +} + +void wxListBox::DoSetItemClientData(int n, void* clientData) +{ + SetClientData(n, clientData); +} + +void* wxListBox::DoGetItemClientData(int n) const +{ + return GetClientData(n); +} + +void wxListBox::DoSetItemClientObject(int n, wxClientData* clientData) +{ + DoSetItemClientData(n, (void*) clientData); +} + +wxClientData* wxListBox::DoGetItemClientObject(int n) const +{ + return (wxClientData*) DoGetItemClientData(n); +} + +void wxListBox::Select(int n) +{ + SetSelection(n, TRUE); +}