1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/gtk1/listbox.h 
   3 // Purpose:     wxListBox class declaration 
   4 // Author:      Robert Roebling 
   6 // Copyright:   (c) 1998 Robert Roebling 
   7 // Licence:     wxWindows licence 
   8 ///////////////////////////////////////////////////////////////////////////// 
  10 #ifndef __GTKLISTBOXH__ 
  11 #define __GTKLISTBOXH__ 
  15 class WXDLLIMPEXP_BASE wxSortedArrayString
; 
  17 //----------------------------------------------------------------------------- 
  19 //----------------------------------------------------------------------------- 
  21 class WXDLLIMPEXP_CORE wxListBox 
: public wxListBoxBase
 
  26     wxListBox( wxWindow 
*parent
, wxWindowID id
, 
  27             const wxPoint
& pos 
= wxDefaultPosition
, 
  28             const wxSize
& size 
= wxDefaultSize
, 
  29             int n 
= 0, const wxString choices
[] = (const wxString 
*) NULL
, 
  31             const wxValidator
& validator 
= wxDefaultValidator
, 
  32             const wxString
& name 
= wxListBoxNameStr 
) 
  34 #if wxUSE_CHECKLISTBOX 
  35         m_hasCheckBoxes 
= false; 
  36 #endif // wxUSE_CHECKLISTBOX 
  37         Create(parent
, id
, pos
, size
, n
, choices
, style
, validator
, name
); 
  39     wxListBox( wxWindow 
*parent
, wxWindowID id
, 
  42             const wxArrayString
& choices
, 
  44             const wxValidator
& validator 
= wxDefaultValidator
, 
  45             const wxString
& name 
= wxListBoxNameStr 
) 
  47 #if wxUSE_CHECKLISTBOX 
  48         m_hasCheckBoxes 
= false; 
  49 #endif // wxUSE_CHECKLISTBOX 
  50         Create(parent
, id
, pos
, size
, choices
, style
, validator
, name
); 
  54     bool Create(wxWindow 
*parent
, wxWindowID id
, 
  55                 const wxPoint
& pos 
= wxDefaultPosition
, 
  56                 const wxSize
& size 
= wxDefaultSize
, 
  57                 int n 
= 0, const wxString choices
[] = (const wxString 
*) NULL
, 
  59                 const wxValidator
& validator 
= wxDefaultValidator
, 
  60                 const wxString
& name 
= wxListBoxNameStr
); 
  61     bool Create(wxWindow 
*parent
, wxWindowID id
, 
  64                 const wxArrayString
& choices
, 
  66                 const wxValidator
& validator 
= wxDefaultValidator
, 
  67                 const wxString
& name 
= wxListBoxNameStr
); 
  69     // implement base class pure virtuals 
  71     virtual void Delete(unsigned int n
); 
  73     virtual unsigned int GetCount() const; 
  74     virtual wxString 
GetString(unsigned int n
) const; 
  75     virtual void SetString(unsigned int n
, const wxString
& s
); 
  76     virtual int FindString(const wxString
& s
, bool bCase 
= false) const; 
  78     virtual bool IsSelected(int n
) const; 
  79     virtual void DoSetSelection(int n
, bool select
); 
  80     virtual int GetSelection() const; 
  81     virtual int GetSelections(wxArrayInt
& aSelections
) const; 
  83     virtual int DoAppend(const wxString
& item
); 
  84     virtual void DoInsertItems(const wxArrayString
& items
, unsigned int pos
); 
  85     virtual void DoSetItems(const wxArrayString
& items
, void **clientData
); 
  87     virtual void DoSetFirstItem(int n
); 
  89     virtual void DoSetItemClientData(unsigned int n
, void* clientData
); 
  90     virtual void* DoGetItemClientData(unsigned int n
) const; 
  91     virtual void DoSetItemClientObject(unsigned int n
, wxClientData
* clientData
); 
  92     virtual wxClientData
* DoGetItemClientObject(unsigned int n
) const; 
  94     static wxVisualAttributes
 
  95     GetClassDefaultAttributes(wxWindowVariant variant 
= wxWINDOW_VARIANT_NORMAL
); 
  97     // implementation from now on 
  99     void GtkAddItem( const wxString 
&item
, int pos
=-1 ); 
 100     int GtkGetIndex( GtkWidget 
*item 
) const; 
 101     GtkWidget 
*GetConnectWidget(); 
 102     bool IsOwnGtkWindow( GdkWindow 
*window 
); 
 103     void DoApplyWidgetStyle(GtkRcStyle 
*style
); 
 104     void OnInternalIdle(); 
 107     void ApplyToolTip( GtkTooltips 
*tips
, const wxChar 
*tip 
); 
 108 #endif // wxUSE_TOOLTIPS 
 113 #if wxUSE_CHECKLISTBOX 
 114     bool       m_hasCheckBoxes
; 
 115 #endif // wxUSE_CHECKLISTBOX 
 120     virtual void FixUpMouseEvent(GtkWidget 
*widget
, wxCoord
& x
, wxCoord
& y
); 
 123     virtual wxSize 
DoGetBestSize() const; 
 125     // return the string label for the given item 
 126     wxString 
GetRealLabel(struct _GList 
*item
) const; 
 128     // Widgets that use the style->base colour for the BG colour should 
 129     // override this and return true. 
 130     virtual bool UseGTKStyleBase() const { return true; } 
 133     // this array is only used for controls with wxCB_SORT style, so only 
 134     // allocate it if it's needed (hence using pointer) 
 135     wxSortedArrayString 
*m_strings
; 
 137     DECLARE_DYNAMIC_CLASS(wxListBox
) 
 140 #endif // __GTKLISTBOXH__