00001 #ifndef __CRadioButton__ 00002 #define __CRadioButton__ 00003 00004 #include "CControlPanel.hpp" 00005 #include "CLatchingButton.hpp" 00006 #include "../Listeners/IActionListener.hpp" 00007 00008 // =========================================================================== 00009 00010 using Exponent::GUI::Controls::CControlPanel; 00011 using Exponent::GUI::Controls::CLatchingButton; 00012 using Exponent::GUI::Listeners::IActionListener; 00013 00014 // =========================================================================== 00015 00016 namespace Exponent 00017 { 00018 namespace GUI 00019 { 00020 namespace Controls 00021 { 00044 class CRadioButton : public CControlPanel, public IActionListener 00045 { 00047 EXPONENT_CLASS_DECLARATION; 00050 // =========================================================================== 00051 00052 public: 00053 00062 CRadioButton(IControlRoot *root, const long uniqueId, const CRect &area, const long numberOfButtons, IActionListener *listener = NULL); 00063 00067 virtual ~CRadioButton(); 00068 00069 // =========================================================================== 00070 00075 virtual void handleActionEvent(const CActionEvent &event); 00076 00077 // =========================================================================== 00078 00083 virtual long getSelectedIndex() const { return m_selectedIndex; } 00084 00089 virtual void setSelectedButton(const long index); 00090 00097 virtual TCountedPointerArray<IControl> *getButtons() const { return m_controlArray; } 00098 00103 virtual void setNumberOfButtons(const long number); 00104 00109 virtual void setArea(const CRect &area); 00110 00111 // =========================================================================== 00112 00113 protected: 00114 00115 // =========================================================================== 00116 00117 long m_selectedIndex; 00118 long m_numberOfButtons; 00119 }; 00120 } 00121 } 00122 } 00123 00124 00125 #endif // End of CRadioButton