X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/511ac294daea69d4bae9644db2fb272c712e059c..aaa6f9ba6bd0be1fe6a34800e6f753ffdc49900c:/include/wx/os2/choice.h diff --git a/include/wx/os2/choice.h b/include/wx/os2/choice.h index 103a675808..b04aee3d72 100644 --- a/include/wx/os2/choice.h +++ b/include/wx/os2/choice.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: choice.h +// Name: wx/os2/choice.h // Purpose: wxChoice class // Author: David Webster // Modified by: @@ -12,14 +12,18 @@ #ifndef _WX_CHOICE_H_ #define _WX_CHOICE_H_ +// ---------------------------------------------------------------------------- // Choice item +// ---------------------------------------------------------------------------- + class WXDLLEXPORT wxChoice: public wxChoiceBase { DECLARE_DYNAMIC_CLASS(wxChoice) public: // ctors - inline wxChoice() { } + inline wxChoice() { Init(); } + virtual ~wxChoice(); inline wxChoice( wxWindow* pParent ,wxWindowID vId @@ -28,12 +32,11 @@ public: ,int n = 0 ,const wxString asChoices[] = NULL ,long lStyle = 0 -#if wxUSE_VALIDATORS ,const wxValidator& rValidator = wxDefaultValidator -#endif ,const wxString& rsName = wxChoiceNameStr ) { + Init(); Create( pParent ,vId ,rPos @@ -41,9 +44,29 @@ public: ,n ,asChoices ,lStyle -#if wxUSE_VALIDATORS ,rValidator -#endif + ,rsName + ); + } + + inline wxChoice( wxWindow* pParent + ,wxWindowID vId + ,const wxPoint& rPos + ,const wxSize& rSize + ,const wxArrayString& asChoices + ,long lStyle = 0 + ,const wxValidator& rValidator = wxDefaultValidator + ,const wxString& rsName = wxChoiceNameStr + ) + { + Init(); + Create( pParent + ,vId + ,rPos + ,rSize + ,asChoices + ,lStyle + ,rValidator ,rsName ); } @@ -55,28 +78,33 @@ public: ,int n = 0 ,const wxString asChoices[] = NULL ,long lStyle = 0 -#if wxUSE_VALIDATORS ,const wxValidator& rValidator = wxDefaultValidator -#endif ,const wxString& rsName = wxChoiceNameStr ); + bool Create( wxWindow* pParent + ,wxWindowID vId + ,const wxPoint& rPos + ,const wxSize& rSize + ,const wxArrayString& asChoices + ,long lStyle = 0 + ,const wxValidator& rValidator = wxDefaultValidator + ,const wxString& rsName = wxChoiceNameStr + ); + // // Implement base class virtuals // - virtual int DoAppend(const wxString& rsItem); - virtual void Delete(int n); + virtual void Delete(unsigned int n); virtual void Clear(void); - virtual int GetCount(void) const; - virtual int GetSelection(void) const ; + virtual unsigned int GetCount() const; + virtual int GetSelection(void) const; + virtual int GetCurrentSelection(void) const; virtual void SetSelection(int n); - virtual int FindString(const wxString& rsStr) const; - virtual wxString GetString(int n) const ; - virtual void SetString( int n - ,const wxString& rsStr - ); + virtual wxString GetString(unsigned int n) const; + virtual void SetString(unsigned int n, const wxString& rsStr); // // OS2 only @@ -90,14 +118,15 @@ public: ); protected: - virtual void DoSetItemClientData( int n - ,void* pClientData - ); - virtual void* DoGetItemClientData(int n) const; - virtual void DoSetItemClientObject( int n - ,wxClientData* pClientData - ); - virtual wxClientData* DoGetItemClientObject(int n) const; + // common part of all ctors + void Init() { m_lastAcceptedSelection = wxID_NONE; } + + virtual int DoAppend(const wxString& rsItem); + virtual int DoInsert(const wxString& rsItem, unsigned int pos); + virtual void DoSetItemClientData(unsigned int n, void* pClientData); + virtual void* DoGetItemClientData(unsigned int n) const; + virtual void DoSetItemClientObject(unsigned int n, wxClientData* pClientData); + virtual wxClientData* DoGetItemClientObject(unsigned int n) const; virtual wxSize DoGetBestSize(void) const; virtual void DoSetSize( int nX ,int nY @@ -106,6 +135,11 @@ protected: ,int nsizeFlags = wxSIZE_AUTO ); void Free(void); + + // last "completed" selection, i.e. not the transient one while the user is + // browsing the popup list: this is only used when != wxID_NONE which is + // the case while the drop down is opened + int m_lastAcceptedSelection; }; // end of CLASS wxChoice #endif // _WX_CHOICE_H_