MyGUI
3.2.1
|
00001 /* 00002 * This source file is part of MyGUI. For the latest info, see http://mygui.info/ 00003 * Distributed under the MIT License 00004 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT) 00005 */ 00006 00007 #ifndef __MYGUI_MENU_ITEM_H__ 00008 #define __MYGUI_MENU_ITEM_H__ 00009 00010 #include "MyGUI_Prerequest.h" 00011 #include "MyGUI_Button.h" 00012 #include "MyGUI_MenuControl.h" 00013 #include "MyGUI_IItem.h" 00014 00015 namespace MyGUI 00016 { 00017 00021 class MYGUI_EXPORT MenuItem : 00022 public Button, 00023 public IItem, 00024 public MemberObsolete<MenuItem> 00025 { 00026 MYGUI_RTTI_DERIVED( MenuItem ) 00027 00028 public: 00029 MenuItem(); 00030 00032 virtual void setCaption(const UString& _value); 00033 00035 virtual void setFontName(const std::string& _value); 00036 00038 virtual void setFontHeight(int _value); 00039 00041 void setItemName(const UString& _value); 00043 const UString& getItemName(); 00044 00046 void setItemData(Any _value); 00047 00049 template <typename ValueType> 00050 ValueType* getItemData(bool _throw = true) 00051 { 00052 return mOwner->getItemData<ValueType>(this, _throw); 00053 } 00054 00056 void removeItem(); 00057 00059 void setItemId(const std::string& _value); 00061 const std::string& getItemId(); 00062 00064 size_t getItemIndex(); 00065 00067 MenuControl* createItemChild(); 00068 00070 template <typename Type> 00071 Type* createItemChildT() 00072 { 00073 return mOwner->createItemChildT<Type>(this); 00074 } 00075 00077 void setItemType(MenuItemType _value); 00079 MenuItemType getItemType(); 00080 00082 void setItemChildVisible(bool _value); 00083 00085 MenuControl* getMenuCtrlParent(); 00086 00088 MenuControl* getItemChild(); 00089 00090 bool getItemChecked() const; 00091 void setItemChecked(bool _value); 00092 00093 /*internal:*/ 00094 virtual IItemContainer* _getItemContainer(); 00095 IntSize _getContentSize(); 00096 00097 protected: 00098 virtual void initialiseOverride(); 00099 virtual void shutdownOverride(); 00100 00101 virtual void setPropertyOverride(const std::string& _key, const std::string& _value); 00102 00103 virtual void onWidgetCreated(Widget* _widget); 00104 00105 private: 00106 void updateCheck(); 00107 00108 private: 00109 MenuControl* mOwner; 00110 IntSize mMinSize; 00111 Widget* mCheck; 00112 bool mCheckValue; 00113 }; 00114 00115 } // namespace MyGUI 00116 00117 #endif // __MYGUI_MENU_ITEM_H__