X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fb49f3b32e78c4f951c7331447851c3aa0302dde..34deaa936202a60038f3c147527668402d2ce3f6:/include/wx/os2/choice.h diff --git a/include/wx/os2/choice.h b/include/wx/os2/choice.h index 883bfe3423..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,16 +12,18 @@ #ifndef _WX_CHOICE_H_ #define _WX_CHOICE_H_ -WXDLLEXPORT_DATA(extern const char*) wxChoiceNameStr; - +// ---------------------------------------------------------------------------- // 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 @@ -30,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 @@ -43,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 ); } @@ -57,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 @@ -92,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 @@ -108,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_