Listbox control code

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Webster 2001-11-05 02:50:59 +00:00
parent 49e885f807
commit 934dac2fd5

View File

@ -37,110 +37,137 @@ class WXDLLEXPORT wxListBox : public wxListBoxBase
public: public:
// ctors and such // ctors and such
wxListBox(); wxListBox();
wxListBox(wxWindow *parent, wxWindowID id, wxListBox( wxWindow* pParent
const wxPoint& pos = wxDefaultPosition, ,wxWindowID vId
const wxSize& size = wxDefaultSize, ,const wxPoint& rPos = wxDefaultPosition
int n = 0, const wxString choices[] = NULL, ,const wxSize& rSize = wxDefaultSize
long style = 0, ,int n = 0
,const wxString asChoices[] = NULL
,long lStyle = 0
#if wxUSE_VALIDATORS #if wxUSE_VALIDATORS
const wxValidator& validator = wxDefaultValidator, ,const wxValidator& rValidator = wxDefaultValidator
#endif #endif
const wxString& name = wxListBoxNameStr) ,const wxString& rsName = wxListBoxNameStr)
{ {
Create(parent, id, pos, size, n, choices, style, validator, name); Create( pParent
,vId
,rPos
,rSize
,n
,asChoices
,lStyle
#if wxUSE_VALIDATORS
,rValidator
#endif
,rsName
);
} }
bool Create(wxWindow *parent, wxWindowID id, bool Create( wxWindow* pParent
const wxPoint& pos = wxDefaultPosition, ,wxWindowID vId
const wxSize& size = wxDefaultSize, ,const wxPoint& rPos = wxDefaultPosition
int n = 0, const wxString choices[] = NULL, ,const wxSize& rSize = wxDefaultSize
long style = 0, ,int n = 0
,const wxString asChoices[] = NULL
,long lStyle = 0
#if wxUSE_VALIDATORS #if wxUSE_VALIDATORS
const wxValidator& validator = wxDefaultValidator, ,const wxValidator& rValidator = wxDefaultValidator
#endif #endif
const wxString& name = wxListBoxNameStr); ,const wxString& rsName = wxListBoxNameStr
);
virtual ~wxListBox(); virtual ~wxListBox();
// implement base class pure virtuals //
virtual void Clear(); // Implement base class pure virtuals
virtual void Delete(int n); //
virtual void Clear(void);
virtual void Delete(int n);
virtual int GetCount() const; virtual int GetCount(void) const;
virtual wxString GetString(int n) const; virtual wxString GetString(int n) const;
virtual void SetString(int n, const wxString& s); virtual void SetString( int n
virtual int FindString(const wxString& s) const; ,const wxString& rsString
);
virtual int FindString(const wxString& rsString) const;
virtual bool IsSelected(int n) const; virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = TRUE); virtual void SetSelection( int n
virtual int GetSelection() const; ,bool bSelect = TRUE
virtual int GetSelections(wxArrayInt& aSelections) const; );
virtual int GetSelection(void) const;
virtual int GetSelections(wxArrayInt& raSelections) const;
virtual int DoAppend(const wxString& item); virtual int DoAppend(const wxString& rsItem);
virtual void DoInsertItems(const wxArrayString& items, int pos); virtual void DoInsertItems( const wxArrayString& raItems
virtual void DoSetItems(const wxArrayString& items, void **clientData); ,int rPos
);
virtual void DoSetItems( const wxArrayString& raItems
,void ** ppClientData
);
virtual void DoSetFirstItem(int n); virtual void DoSetFirstItem(int n);
virtual void DoSetItemClientData(int n, void* clientData); virtual void DoSetItemClientData( int n
virtual void* DoGetItemClientData(int n) const; ,void* pClientData
virtual void DoSetItemClientObject(int n, wxClientData* clientData); );
virtual void* DoGetItemClientData(int n) const;
virtual void DoSetItemClientObject( int n
,wxClientData* pClientData
);
virtual wxClientData* DoGetItemClientObject(int n) const; virtual wxClientData* DoGetItemClientObject(int n) const;
//
// wxCheckListBox support // wxCheckListBox support
//
#if wxUSE_OWNER_DRAWN #if wxUSE_OWNER_DRAWN
bool OS2OnMeasure(WXMEASUREITEMSTRUCT *item); bool OS2OnMeasure(WXMEASUREITEMSTRUCT *item);
bool OS2OnDraw(WXDRAWITEMSTRUCT *item); bool OS2OnDraw(WXDRAWITEMSTRUCT *item);
// plug-in for derived classes virtual wxOwnerDrawn* CreateItem(size_t n);
virtual wxOwnerDrawn *CreateItem(size_t n); wxOwnerDrawn* GetItem(size_t n) const { return m_aItems[n]; }
int GetItemIndex(wxOwnerDrawn *item) const { return m_aItems.Index(item); }
// allows to get the item and use SetXXX functions to set it's appearance
wxOwnerDrawn *GetItem(size_t n) const { return m_aItems[n]; }
// get the index of the given item
int GetItemIndex(wxOwnerDrawn *item) const { return m_aItems.Index(item); }
#endif // wxUSE_OWNER_DRAWN #endif // wxUSE_OWNER_DRAWN
// Windows-specific code to set the horizontal extent of the listbox, if bool OS2Command( WXUINT uParam
// necessary. If s is non-NULL, it's used to calculate the horizontal ,WXWORD wId
// extent. Otherwise, all strings are used. );
virtual void SetHorizontalExtent(const wxString& s = wxEmptyString); virtual void SetupColours(void);
// Windows callbacks
virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
WXUINT message,
WXWPARAM wParam, WXLPARAM lParam);
bool OS2Command(WXUINT param, WXWORD id);
virtual void SetupColours();
protected: protected:
// do we have multiple selections?
bool HasMultipleSelection() const;
int m_noItems; bool HasMultipleSelection(void) const;
int m_selected; virtual wxSize DoGetBestSize(void) const;
int m_nNumItems;
int m_nSelected;
virtual wxSize DoGetBestSize() const;
#if wxUSE_OWNER_DRAWN #if wxUSE_OWNER_DRAWN
// control items //
wxListBoxItemsArray m_aItems; // Control items
//
wxListBoxItemsArray m_aItems;
#endif #endif
private: private:
#if wxUSE_WX_RESOURCES #if wxUSE_WX_RESOURCES
# if wxUSE_OWNER_DRAWN # if wxUSE_OWNER_DRAWN
virtual wxControl *CreateItem(const wxItemResource* childResource, virtual wxControl* CreateItem( const wxItemResource* pChildResource
const wxItemResource* parentResource, ,const wxItemResource* pParentResource
const wxResourceTable *table = (const wxResourceTable *) NULL) ,const wxResourceTable* pTable = (const wxResourceTable *) NULL
{ return(wxWindowBase::CreateItem(childResource, parentResource, table)); } )
{
return(wxWindowBase::CreateItem( pChildResource
,pParentResource
,pTable
)
);
}
# endif # endif
#endif #endif
DECLARE_DYNAMIC_CLASS(wxListBox) DECLARE_DYNAMIC_CLASS(wxListBox)
}; }; // end of wxListBox
#endif #endif
// _WX_LISTBOX_H_ // _WX_LISTBOX_H_