wxWidgets/include/wx/os2/listbox.h
David Webster 934dac2fd5 Listbox control code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2001-11-05 02:50:59 +00:00

174 lines
5.7 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: listbox.h
// Purpose: wxListBox class
// Author: David Webster
// Modified by:
// Created: 10/09/99
// RCS-ID: $Id$
// Copyright: (c) David Webster
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_LISTBOX_H_
#define _WX_LISTBOX_H_
// ----------------------------------------------------------------------------
// simple types
// ----------------------------------------------------------------------------
#if wxUSE_OWNER_DRAWN
class WXDLLEXPORT wxOwnerDrawn;
// define the array of list box items
#include <wx/dynarray.h>
WX_DEFINE_EXPORTED_ARRAY(wxOwnerDrawn *, wxListBoxItemsArray);
#endif // wxUSE_OWNER_DRAWN
// forward decl for GetSelections()
class wxArrayInt;
// ----------------------------------------------------------------------------
// List box control
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxListBox : public wxListBoxBase
{
public:
// ctors and such
wxListBox();
wxListBox( wxWindow* pParent
,wxWindowID vId
,const wxPoint& rPos = wxDefaultPosition
,const wxSize& rSize = wxDefaultSize
,int n = 0
,const wxString asChoices[] = NULL
,long lStyle = 0
#if wxUSE_VALIDATORS
,const wxValidator& rValidator = wxDefaultValidator
#endif
,const wxString& rsName = wxListBoxNameStr)
{
Create( pParent
,vId
,rPos
,rSize
,n
,asChoices
,lStyle
#if wxUSE_VALIDATORS
,rValidator
#endif
,rsName
);
}
bool Create( wxWindow* pParent
,wxWindowID vId
,const wxPoint& rPos = wxDefaultPosition
,const wxSize& rSize = wxDefaultSize
,int n = 0
,const wxString asChoices[] = NULL
,long lStyle = 0
#if wxUSE_VALIDATORS
,const wxValidator& rValidator = wxDefaultValidator
#endif
,const wxString& rsName = wxListBoxNameStr
);
virtual ~wxListBox();
//
// Implement base class pure virtuals
//
virtual void Clear(void);
virtual void Delete(int n);
virtual int GetCount(void) const;
virtual wxString GetString(int n) const;
virtual void SetString( int n
,const wxString& rsString
);
virtual int FindString(const wxString& rsString) const;
virtual bool IsSelected(int n) const;
virtual void SetSelection( int n
,bool bSelect = TRUE
);
virtual int GetSelection(void) const;
virtual int GetSelections(wxArrayInt& raSelections) const;
virtual int DoAppend(const wxString& rsItem);
virtual void DoInsertItems( const wxArrayString& raItems
,int rPos
);
virtual void DoSetItems( const wxArrayString& raItems
,void ** ppClientData
);
virtual void DoSetFirstItem(int n);
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;
//
// wxCheckListBox support
//
#if wxUSE_OWNER_DRAWN
bool OS2OnMeasure(WXMEASUREITEMSTRUCT *item);
bool OS2OnDraw(WXDRAWITEMSTRUCT *item);
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); }
#endif // wxUSE_OWNER_DRAWN
bool OS2Command( WXUINT uParam
,WXWORD wId
);
virtual void SetupColours(void);
protected:
bool HasMultipleSelection(void) const;
virtual wxSize DoGetBestSize(void) const;
int m_nNumItems;
int m_nSelected;
#if wxUSE_OWNER_DRAWN
//
// Control items
//
wxListBoxItemsArray m_aItems;
#endif
private:
#if wxUSE_WX_RESOURCES
# if wxUSE_OWNER_DRAWN
virtual wxControl* CreateItem( const wxItemResource* pChildResource
,const wxItemResource* pParentResource
,const wxResourceTable* pTable = (const wxResourceTable *) NULL
)
{
return(wxWindowBase::CreateItem( pChildResource
,pParentResource
,pTable
)
);
}
# endif
#endif
DECLARE_DYNAMIC_CLASS(wxListBox)
}; // end of wxListBox
#endif
// _WX_LISTBOX_H_