1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/gtk1/choice.h 
   4 // Author:      Robert Roebling 
   6 // Copyright:   (c) 1998 Robert Roebling 
   7 // Licence:     wxWindows licence 
   8 ///////////////////////////////////////////////////////////////////////////// 
  10 #ifndef __GTKCHOICEH__ 
  11 #define __GTKCHOICEH__ 
  13 class WXDLLIMPEXP_FWD_BASE wxSortedArrayString
; 
  14 class WXDLLIMPEXP_FWD_BASE wxArrayString
; 
  16 //----------------------------------------------------------------------------- 
  18 //----------------------------------------------------------------------------- 
  20 class WXDLLIMPEXP_CORE wxChoice 
: public wxChoiceBase
 
  24     wxChoice( wxWindow 
*parent
, wxWindowID id
, 
  25             const wxPoint
& pos 
= wxDefaultPosition
, 
  26             const wxSize
& size 
= wxDefaultSize
, 
  27             int n 
= 0, const wxString choices
[] = (const wxString 
*) NULL
, 
  29             const wxValidator
& validator 
= wxDefaultValidator
, 
  30             const wxString
& name 
= wxChoiceNameStr 
) 
  34         Create(parent
, id
, pos
, size
, n
, choices
, style
, validator
, name
); 
  36     wxChoice( wxWindow 
*parent
, wxWindowID id
, 
  39             const wxArrayString
& choices
, 
  41             const wxValidator
& validator 
= wxDefaultValidator
, 
  42             const wxString
& name 
= wxChoiceNameStr 
) 
  46         Create(parent
, id
, pos
, size
, choices
, style
, validator
, name
); 
  49     bool Create( wxWindow 
*parent
, wxWindowID id
, 
  50             const wxPoint
& pos 
= wxDefaultPosition
, 
  51             const wxSize
& size 
= wxDefaultSize
, 
  52             int n 
= 0, const wxString choices
[] = NULL
, 
  54             const wxValidator
& validator 
= wxDefaultValidator
, 
  55             const wxString
& name 
= wxChoiceNameStr 
); 
  56     bool Create( wxWindow 
*parent
, wxWindowID id
, 
  59             const wxArrayString
& choices
, 
  61             const wxValidator
& validator 
= wxDefaultValidator
, 
  62             const wxString
& name 
= wxChoiceNameStr 
); 
  64     // implement base class pure virtuals 
  65     void DoDeleteOneItem(unsigned int n
); 
  68     int GetSelection() const; 
  69     virtual void SetSelection(int n
); 
  71     virtual unsigned int GetCount() const; 
  72     virtual int FindString(const wxString
& s
, bool bCase 
= false) const; 
  73     virtual wxString 
GetString(unsigned int n
) const; 
  74     virtual void SetString(unsigned int n
, const wxString
& string
); 
  76     static wxVisualAttributes
 
  77     GetClassDefaultAttributes(wxWindowVariant variant 
= wxWINDOW_VARIANT_NORMAL
); 
  80     wxList m_clientList
;    // contains the client data for the items 
  82     void DoApplyWidgetStyle(GtkRcStyle 
*style
); 
  83     virtual int DoInsertItems(const wxArrayStringsAdapter
& items
, 
  85                               void **clientData
, wxClientDataType type
); 
  87     virtual void DoSetItemClientData(unsigned int n
, void* clientData
); 
  88     virtual void* DoGetItemClientData(unsigned int n
) const; 
  90     virtual wxSize 
DoGetBestSize() const; 
  92     virtual bool IsOwnGtkWindow( GdkWindow 
*window 
); 
  95     // DoInsertItems() helper 
  96     int GtkAddHelper(GtkWidget 
*menu
, unsigned int pos
, const wxString
& item
); 
  98     // this array is only used for controls with wxCB_SORT style, so only 
  99     // allocate it if it's needed (hence using pointer) 
 100     wxSortedArrayString 
*m_strings
; 
 103     // this circumvents a GTK+ 2.0 bug so that the selection is 
 104     // invalidated properly 
 105     int m_selection_hack
; 
 108     DECLARE_DYNAMIC_CLASS(wxChoice
) 
 112 #endif // __GTKCHOICEH__