wxWidgets/include/wx/os2/listbox.h

168 lines
5.6 KiB
C
Raw Normal View History

/////////////////////////////////////////////////////////////////////////////
// Name: wx/os2/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_PTR(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
,const wxValidator& rValidator = wxDefaultValidator
,const wxString& rsName = wxListBoxNameStr)
{
Create( pParent
,vId
,rPos
,rSize
,n
,asChoices
,lStyle
,rValidator
,rsName
);
}
wxListBox( wxWindow* pParent
,wxWindowID vId
,const wxPoint& rPos
,const wxSize& rSize
,const wxArrayString& asChoices
,long lStyle = 0
,const wxValidator& rValidator = wxDefaultValidator
,const wxString& rsName = wxListBoxNameStr)
{
Create( pParent
,vId
,rPos
,rSize
,asChoices
,lStyle
,rValidator
,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
,const wxValidator& rValidator = wxDefaultValidator
,const wxString& rsName = wxListBoxNameStr
);
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 = wxListBoxNameStr
);
virtual ~wxListBox();
//
// Implement base class pure virtuals
//
virtual void Clear(void);
virtual void Delete(unsigned int n);
virtual unsigned int GetCount() const;
virtual wxString GetString(unsigned int n) const;
virtual void SetString(unsigned int n, const wxString& rsString);
virtual bool IsSelected(int n) const;
virtual void DoSetSelection(int n, bool bSelect);
virtual int GetSelection(void) const;
virtual int GetSelections(wxArrayInt& raSelections) const;
virtual int DoAppend(const wxString& rsItem);
virtual void DoInsertItems( const wxArrayString& raItems, unsigned int rPos );
virtual void DoSetItems( const wxArrayString& raItems
,void ** ppClientData
);
virtual void DoSetFirstItem(int n);
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;
//
// wxCheckListBox support
//
#if wxUSE_OWNER_DRAWN
long 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;
unsigned int m_nNumItems;
int m_nSelected;
#if wxUSE_OWNER_DRAWN
//
// Control items
//
wxListBoxItemsArray m_aItems;
#endif
private:
DECLARE_DYNAMIC_CLASS(wxListBox)
}; // end of wxListBox
#endif // _WX_LISTBOX_H_