1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/msw/radiobox.h 3 // Purpose: wxRadioBox class 4 // Author: Julian Smart 5 // Modified by: 6 // Created: 01/02/97 7 // RCS-ID: $Id: radiobox.h,v 1.1 2006/12/02 15:58:34 scara Exp $ 8 // Copyright: (c) Julian Smart 9 // Licence: wxWindows licence 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #ifndef _WX_RADIOBOX_H_ 13 #define _WX_RADIOBOX_H_ 14 15 #ifdef __GNUG__ 16 #pragma interface "radiobox.h" 17 #endif 18 19 class WXDLLEXPORT wxBitmap; 20 21 // ---------------------------------------------------------------------------- 22 // wxRadioBox 23 // ---------------------------------------------------------------------------- 24 25 class WXDLLEXPORT wxRadioBox : public wxControl, public wxRadioBoxBase 26 { 27 public: 28 wxRadioBox(); 29 30 wxRadioBox(wxWindow *parent, 31 wxWindowID id, 32 const wxString& title, 33 const wxPoint& pos = wxDefaultPosition, 34 const wxSize& size = wxDefaultSize, 35 int n = 0, const wxString choices[] = NULL, 36 int majorDim = 0, 37 long style = wxRA_HORIZONTAL, 38 const wxValidator& val = wxDefaultValidator, 39 const wxString& name = wxRadioBoxNameStr) 40 { 41 (void)Create(parent, id, title, pos, size, n, choices, majorDim, 42 style, val, name); 43 } 44 45 ~wxRadioBox(); 46 47 bool Create(wxWindow *parent, 48 wxWindowID id, 49 const wxString& title, 50 const wxPoint& pos = wxDefaultPosition, 51 const wxSize& size = wxDefaultSize, 52 int n = 0, const wxString choices[] = NULL, 53 int majorDim = 0, 54 long style = wxRA_HORIZONTAL, 55 const wxValidator& val = wxDefaultValidator, 56 const wxString& name = wxRadioBoxNameStr); 57 58 // implement the radiobox interface 59 virtual void SetSelection(int n); 60 virtual int GetSelection() const; 61 virtual int GetCount() const; 62 virtual wxString GetString(int n) const; 63 virtual void SetString(int n, const wxString& label); 64 virtual void Enable(int n, bool enable = TRUE); 65 virtual void Show(int n, bool show = TRUE); 66 virtual int GetColumnCount() const; 67 virtual int GetRowCount() const; 68 69 virtual bool Show(bool show = TRUE); 70 void SetFocus(); 71 virtual bool Enable(bool enable = TRUE); SetLabelFont(const wxFont & WXUNUSED (font))72 void SetLabelFont(const wxFont& WXUNUSED(font)) {}; SetButtonFont(const wxFont & font)73 void SetButtonFont(const wxFont& font) { SetFont(font); } 74 75 void Command(wxCommandEvent& event); 76 GetNumberOfRowsOrCols()77 int GetNumberOfRowsOrCols() const { return m_noRowsOrCols; } SetNumberOfRowsOrCols(int n)78 void SetNumberOfRowsOrCols(int n) { m_noRowsOrCols = n; } 79 80 // implementation only from now on 81 // ------------------------------- 82 83 virtual bool MSWCommand(WXUINT param, WXWORD id); 84 85 // FIXME: are they used? missing "Do" prefix? 86 void GetSize(int *x, int *y) const; 87 void GetPosition(int *x, int *y) const; 88 89 virtual bool SetFont(const wxFont& font); 90 91 long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); 92 virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, 93 WXUINT message, 94 WXWPARAM wParam, WXLPARAM lParam); GetRadioButtons()95 WXHWND *GetRadioButtons() const { return m_radioButtons; } 96 bool ContainsHWND(WXHWND hWnd) const; 97 void SendNotificationEvent(); 98 99 // get the number of buttons per column/row 100 int GetNumVer() const; 101 int GetNumHor() const; 102 103 // compatibility ctor 104 #if WXWIN_COMPATIBILITY 105 wxRadioBox(wxWindow *parent, wxFunction func, const char *title, 106 int x = -1, int y = -1, int width = -1, int height = -1, 107 int n = 0, char **choices = NULL, 108 int majorDim = 0, long style = wxRA_HORIZONTAL, const char *name = wxRadioBoxNameStr); 109 #endif // WXWIN_COMPATIBILITY 110 111 protected: 112 // subclass one radio button 113 void SubclassRadioButton(WXHWND hWndBtn); 114 115 // get the max size of radio buttons 116 wxSize GetMaxButtonSize() const; 117 118 // get the total size occupied by the radio box buttons 119 wxSize GetTotalButtonSize(const wxSize& sizeBtn) const; 120 121 WXHWND * m_radioButtons; 122 int m_majorDim; 123 int * m_radioWidth; // for bitmaps 124 int * m_radioHeight; 125 126 int m_noItems; 127 int m_noRowsOrCols; 128 int m_selectedButton; 129 130 virtual void DoSetSize(int x, int y, 131 int width, int height, 132 int sizeFlags = wxSIZE_AUTO); 133 virtual wxSize DoGetBestSize() const; 134 135 private: 136 DECLARE_DYNAMIC_CLASS(wxRadioBox) 137 }; 138 139 #endif 140 // _WX_RADIOBOX_H_ 141