00001 #ifndef __CSelectableMenuItem__ 00002 #define __CSelectableMenuItem__ 00003 00004 #include <Basics/CHtmlString.hpp> 00005 #include "CMenuItem.hpp" 00006 using Exponent::Basics::CHtmlString; 00007 using Exponent::GUI::Controls::CMenuItem; 00008 00009 // =========================================================================== 00010 00011 namespace Exponent 00012 { 00013 namespace GUI 00014 { 00015 namespace Controls 00016 { 00034 class CSelectableMenuItem : public CMenuItem 00035 { 00037 EXPONENT_CLASS_DECLARATION; 00040 // =========================================================================== 00041 00042 public: 00043 00044 // =========================================================================== 00045 00052 CSelectableMenuItem(const CString &text, const long id, const bool selected = false); 00053 00057 virtual ~CSelectableMenuItem(); 00058 00059 // =========================================================================== 00060 00065 virtual void setSelected(const bool selected = true) { m_isSelected = selected; } 00066 00071 virtual bool isSelected() const { return m_isSelected; } 00072 00077 virtual void setUnCheckedImage(IImage *unChecked) 00078 { 00079 EXCHANGE_COUNTED_OBJECTS(m_unCheckedImage, unChecked); 00080 } 00081 00086 virtual IImage *getUnCheckedImage() const { return m_unCheckedImage; } 00087 00088 // =========================================================================== 00089 00090 protected: 00091 00092 // =========================================================================== 00093 00094 bool m_isSelected; 00095 IImage *m_unCheckedImage; 00096 }; 00097 } 00098 } 00099 } 00100 #endif // End of CSelectableMenuItem.hpp