1 /////////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/univ/radiobox.h 
   3 // Purpose:     wxRadioBox declaration 
   4 // Author:      Vadim Zeitlin 
   8 // Copyright:   (c) 2000 SciTech Software, Inc. (www.scitechsoft.com) 
   9 // Licence:     wxWindows licence 
  10 /////////////////////////////////////////////////////////////////////////////// 
  12 #ifndef _WX_UNIV_RADIOBOX_H_ 
  13 #define _WX_UNIV_RADIOBOX_H_ 
  15 class WXDLLEXPORT wxRadioButton
; 
  17 #include "wx/statbox.h" 
  18 #include "wx/dynarray.h" 
  20 WX_DEFINE_EXPORTED_ARRAY_PTR(wxRadioButton 
*, wxArrayRadioButtons
); 
  22 // ---------------------------------------------------------------------------- 
  23 // wxRadioBox: a box full of radio buttons 
  24 // ---------------------------------------------------------------------------- 
  26 class WXDLLEXPORT wxRadioBox 
: public wxStaticBox
, 
  30     // wxRadioBox construction 
  31     wxRadioBox() { Init(); } 
  33     wxRadioBox(wxWindow 
*parent
, 
  35                const wxString
& title
, 
  36                const wxPoint
& pos 
= wxDefaultPosition
, 
  37                const wxSize
& size 
= wxDefaultSize
, 
  38                int n 
= 0, const wxString 
*choices 
= NULL
, 
  40                long style 
= wxRA_SPECIFY_COLS
, 
  41                const wxValidator
& val 
= wxDefaultValidator
, 
  42                const wxString
& name 
= wxRadioBoxNameStr
) 
  46         (void)Create(parent
, id
, title
, pos
, size
, n
, choices
, 
  47                      majorDim
, style
, val
, name
); 
  49     wxRadioBox(wxWindow 
*parent
, 
  51                const wxString
& title
, 
  54                const wxArrayString
& choices
, 
  56                long style 
= wxRA_SPECIFY_COLS
, 
  57                const wxValidator
& val 
= wxDefaultValidator
, 
  58                const wxString
& name 
= wxRadioBoxNameStr
); 
  60     bool Create(wxWindow 
*parent
, 
  62                 const wxString
& title
, 
  63                 const wxPoint
& pos 
= wxDefaultPosition
, 
  64                 const wxSize
& size 
= wxDefaultSize
, 
  65                 int n 
= 0, const wxString 
*choices 
= NULL
, 
  67                 long style 
= wxRA_SPECIFY_COLS
, 
  68                 const wxValidator
& val 
= wxDefaultValidator
, 
  69                 const wxString
& name 
= wxRadioBoxNameStr
); 
  70     bool Create(wxWindow 
*parent
, 
  72                 const wxString
& title
, 
  75                 const wxArrayString
& choices
, 
  77                 long style 
= wxRA_SPECIFY_COLS
, 
  78                 const wxValidator
& val 
= wxDefaultValidator
, 
  79                 const wxString
& name 
= wxRadioBoxNameStr
); 
  81     virtual ~wxRadioBox(); 
  83     // implement wxRadioBox interface 
  84     virtual void SetSelection(int n
); 
  85     virtual int GetSelection() const; 
  87     virtual unsigned int GetCount() const 
  88         { return (unsigned int)m_buttons
.GetCount(); } 
  90     virtual wxString 
GetString(unsigned int n
) const; 
  91     virtual void SetString(unsigned int n
, const wxString
& label
); 
  93     virtual bool Enable(unsigned int n
, bool enable 
= true); 
  94     virtual bool Show(unsigned int n
, bool show 
= true); 
  96     virtual bool IsItemEnabled(unsigned int n
) const; 
  97     virtual bool IsItemShown(unsigned int n
) const; 
  99     // we also override the wxControl methods to avoid virtual function hiding 
 100     virtual bool Enable(bool enable 
= true); 
 101     virtual bool Show(bool show 
= true); 
 102     virtual wxString 
GetLabel() const; 
 103     virtual void SetLabel(const wxString
& label
); 
 105     // we inherit a version always returning false from wxStaticBox, override 
 106     // it to behave normally 
 107     virtual bool AcceptsFocus() const { return wxControl::AcceptsFocus(); } 
 110     virtual void DoSetToolTip( wxToolTip 
*tip 
); 
 111 #endif // wxUSE_TOOLTIPS 
 113     // wxUniversal-only methods 
 115     // another Append() version 
 116     void Append(int n
, const wxString 
*choices
); 
 118     // implementation only: called by wxRadioHookHandler 
 119     void OnRadioButton(wxEvent
& event
); 
 120     bool OnKeyDown(wxKeyEvent
& event
); 
 123     // override the base class methods dealing with window positioning/sizing 
 124     // as we must move/size the buttons as well 
 125     virtual void DoMoveWindow(int x
, int y
, int width
, int height
); 
 126     virtual wxSize 
DoGetBestClientSize() const; 
 128     // generate a radiobutton click event for the current item 
 129     void SendRadioEvent(); 
 131     // common part of all ctors 
 134     // calculate the max size of all buttons 
 135     wxSize 
GetMaxButtonSize() const; 
 137     // the currently selected radio button or -1 
 141     wxArrayRadioButtons m_buttons
; 
 143     // the event handler which is used to translate radiobutton events into 
 145     wxEvtHandler 
*m_evtRadioHook
; 
 148     DECLARE_DYNAMIC_CLASS(wxRadioBox
) 
 151 #endif // _WX_UNIV_RADIOBOX_H_