X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ef41d80cdfa98391d8530c4b142c9816e0519e68..5e711f771afdb2360f79241375411051d4bb5b1b:/include/wx/motif/listbox.h diff --git a/include/wx/motif/listbox.h b/include/wx/motif/listbox.h index 506dfbf2c0..fb853df302 100644 --- a/include/wx/motif/listbox.h +++ b/include/wx/motif/listbox.h @@ -12,19 +12,16 @@ #ifndef _WX_LISTBOX_H_ #define _WX_LISTBOX_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "listbox.h" #endif #include "wx/ctrlsub.h" - -WXDLLEXPORT_DATA(extern const char*) wxListBoxNameStr; +#include "wx/clntdata.h" // forward decl for GetSelections() class WXDLLEXPORT wxArrayInt; -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - // List box item class WXDLLEXPORT wxListBox: public wxListBoxBase { @@ -38,12 +35,22 @@ public: int n = 0, const wxString choices[] = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr): - m_clientDataList(wxKEY_INTEGER) + const wxString& name = wxListBoxNameStr) { Create(parent, id, pos, size, n, choices, style, validator, name); } + wxListBox(wxWindow *parent, wxWindowID id, + const wxPoint& pos, + const wxSize& size, + const wxArrayString& choices, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxListBoxNameStr) + { + Create(parent, id, pos, size, choices, style, validator, name); + } + bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, @@ -52,15 +59,23 @@ public: const wxValidator& validator = wxDefaultValidator, const wxString& name = wxListBoxNameStr); + bool Create(wxWindow *parent, wxWindowID id, + const wxPoint& pos, + const wxSize& size, + const wxArrayString& choices, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxListBoxNameStr); + ~wxListBox(); // implementation of wxControlWithItems virtual int GetCount() const; virtual int DoAppend(const wxString& item); - virtual void DoSetItemClientData(int n, void* clientData); // - virtual void* DoGetItemClientData(int n) const; // - virtual void DoSetItemClientObject(int n, wxClientData* clientData); // - virtual wxClientData* DoGetItemClientObject(int n) const; // + virtual void DoSetItemClientData(int n, void* clientData); + virtual void* DoGetItemClientData(int n) const; + virtual void DoSetItemClientObject(int n, wxClientData* clientData); + virtual wxClientData* DoGetItemClientObject(int n) const; virtual int GetSelection() const; virtual void Delete(int n); virtual int FindString(const wxString& s) const; @@ -69,7 +84,7 @@ public: virtual wxString GetString(int n) const; // implementation of wxListBoxbase - virtual void SetSelection(int n, bool select = TRUE); + virtual void DoSetSelection(int n, bool select); virtual void DoInsertItems(const wxArrayString& items, int pos); virtual void DoSetItems(const wxArrayString& items, void **clientData); virtual void DoSetFirstItem(int n); @@ -80,7 +95,6 @@ public: void Command(wxCommandEvent& event); // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); virtual void ChangeBackgroundColour(); virtual void ChangeForegroundColour(); WXWidget GetTopWidget() const; @@ -89,14 +103,14 @@ public: virtual void DoToggleItem(int item, int x) {}; #endif protected: + virtual wxSize DoGetBestSize() const; + int m_noItems; // List mapping positions->client data - wxList m_clientDataList; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); + wxClientDataDictionary m_clientDataDict; +private: + void SetSelectionPolicy(); }; #endif