MyGUI
3.4.2
Main Page
Related Pages
Namespaces
Data Structures
Files
Examples
File List
Globals
MyGUIEngine
src
MyGUI_MenuItem.cpp
Go to the documentation of this file.
1
/*
2
* This source file is part of MyGUI. For the latest info, see http://mygui.info/
3
* Distributed under the MIT License
4
* (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5
*/
6
7
#include "
MyGUI_Precompiled.h
"
8
#include "
MyGUI_MenuItem.h
"
9
10
namespace
MyGUI
11
{
12
13
MenuItem::MenuItem
() :
14
mOwner(
nullptr
),
15
mMinSize(10, 10),
16
mCheck(
nullptr
),
17
mCheckValue(
false
)
18
{
19
}
20
21
void
MenuItem::initialiseOverride
()
22
{
23
Base::initialiseOverride
();
24
25
// FIXME проверить смену скина ибо должно один раз вызываться
26
Widget
*
parent
=
getParent
();
27
MYGUI_ASSERT
(
parent
,
"MenuItem must have parent MenuControl"
);
28
if
(!
parent
->isType<
MenuControl
>())
29
{
30
Widget
*
client
=
parent
;
31
parent
=
client
->getParent();
32
MYGUI_ASSERT
(
parent
,
"MenuItem must have parent MenuControl"
);
33
MYGUI_ASSERT
(
parent
->getClientWidget() ==
client
,
"MenuItem must have parent MenuControl"
);
34
MYGUI_ASSERT
(
parent
->isType<
MenuControl
>(),
"MenuItem must have parent MenuControl"
);
35
}
36
mOwner =
parent
->castType<
MenuControl
>();
37
39
assignWidget
(mCheck,
"Check"
);
40
41
//if (isUserString("MinSize"))
42
// mMinSize = IntSize::parse(getUserString("MinSize"));
43
44
//FIXME нам нужен фокус клавы
45
setNeedKeyFocus
(
true
);
46
47
updateCheck();
48
}
49
50
void
MenuItem::shutdownOverride
()
51
{
52
// FIXME проверить смену скина ибо должно один раз вызываться
53
mOwner->
_notifyDeleteItem
(
this
);
54
55
Base::shutdownOverride
();
56
}
57
58
void
MenuItem::onWidgetCreated
(
Widget
*
_widget
)
59
{
60
Base::onWidgetCreated
(
_widget
);
61
62
MenuControl
*
child
=
_widget
->castType<
MenuControl
>(
false
);
63
if
(
child
!=
nullptr
)
64
{
65
mOwner->
_wrapItemChild
(
this
,
child
);
66
}
67
}
68
69
void
MenuItem::setCaption
(
const
UString
&
_value
)
70
{
71
Button::setCaption
(
_value
);
72
mOwner->
_notifyUpdateName
(
this
);
73
}
74
75
void
MenuItem::setFontName
(
const
std::string&
_value
)
76
{
77
Button::setFontName
(
_value
);
78
if
(!
getCaption
().empty())
79
mOwner->
_notifyUpdateName
(
this
);
80
}
81
82
void
MenuItem::setFontHeight
(
int
_value
)
83
{
84
Button::setFontHeight
(
_value
);
85
if
(!
getCaption
().empty())
86
mOwner->
_notifyUpdateName
(
this
);
87
}
88
89
const
UString
&
MenuItem::getItemName
()
const
90
{
91
return
mOwner->
getItemName
(
this
);
92
}
93
94
void
MenuItem::setItemName
(
const
UString
&
_value
)
95
{
96
mOwner->
setItemName
(
this
,
_value
);
97
}
98
99
void
MenuItem::setItemData
(
Any
_data
)
100
{
101
mOwner->
setItemData
(
this
,
_data
);
102
}
103
104
void
MenuItem::removeItem
()
105
{
106
mOwner->
removeItem
(
this
);
107
}
108
109
void
MenuItem::setItemId
(
const
std::string&
_id
)
110
{
111
mOwner->
setItemId
(
this
,
_id
);
112
}
113
114
const
std::string&
MenuItem::getItemId
()
const
115
{
116
return
mOwner->
getItemId
(
this
);
117
}
118
119
size_t
MenuItem::getItemIndex
()
const
120
{
121
return
mOwner->
getItemIndex
(
this
);
122
}
123
124
MenuControl
*
MenuItem::createItemChild
()
125
{
126
return
mOwner->
createItemChild
(
this
);
127
}
128
129
void
MenuItem::setItemType
(
MenuItemType
_type
)
130
{
131
mOwner->
setItemType
(
this
,
_type
);
132
}
133
134
MenuItemType
MenuItem::getItemType
()
const
135
{
136
return
mOwner->
getItemType
(
this
);
137
}
138
139
void
MenuItem::setItemChildVisible
(
bool
_visible
)
140
{
141
mOwner->
setItemChildVisible
(
this
,
_visible
);
142
}
143
144
MenuControl
*
MenuItem::getItemChild
()
const
145
{
146
return
mOwner->
getItemChild
(
this
);
147
}
148
149
void
MenuItem::setPropertyOverride
(
const
std::string&
_key
,
const
std::string&
_value
)
150
{
152
if
(
_key
==
"MenuItemId"
)
153
setItemId
(
_value
);
154
156
else
if
(
_key
==
"MenuItemType"
)
157
setItemType
(utility::parseValue<MenuItemType>(
_value
));
158
160
else
if
(
_key
==
"MenuItemChecked"
)
161
setItemChecked
(utility::parseValue<bool>(
_value
));
162
163
else
164
{
165
Base::setPropertyOverride
(
_key
,
_value
);
166
return
;
167
}
168
169
eventChangeProperty
(
this
,
_key
,
_value
);
170
}
171
172
MenuControl
*
MenuItem::getMenuCtrlParent
()
const
173
{
174
return
mOwner;
175
}
176
177
IItemContainer
*
MenuItem::_getItemContainer
()
const
178
{
179
return
mOwner;
180
}
181
182
IntSize
MenuItem::_getContentSize
()
const
183
{
184
ISubWidgetText
* text =
getSubWidgetText
();
185
if
(text ==
nullptr
)
186
return
mMinSize;
187
188
return
text->
getTextSize
() + (
getSize
() - text->
getSize
());
189
}
190
191
void
MenuItem::updateCheck()
192
{
193
if
(mCheck !=
nullptr
)
194
mCheck->
setVisible
(mCheckValue);
195
}
196
197
bool
MenuItem::getItemChecked
()
const
198
{
199
return
mCheckValue;
200
}
201
202
void
MenuItem::setItemChecked
(
bool
_value
)
203
{
204
mCheckValue =
_value
;
205
updateCheck();
206
}
207
208
}
// namespace MyGUI
MYGUI_ASSERT
#define MYGUI_ASSERT(exp, dest)
Definition
MyGUI_Diagnostic.h:29
MyGUI_MenuItem.h
MyGUI_Precompiled.h
MyGUI::Any
Definition
MyGUI_Any.h:56
MyGUI::Enumerator
Definition
MyGUI_Enumerator.h:49
MyGUI::ICroppedRectangle::getSize
IntSize getSize() const
Definition
MyGUI_ICroppedRectangle.h:56
MyGUI::IItemContainer
Definition
MyGUI_IItemContainer.h:19
MyGUI::ISubWidgetText
Definition
MyGUI_ISubWidgetText.h:20
MyGUI::ISubWidgetText::getTextSize
virtual IntSize getTextSize() const
Definition
MyGUI_ISubWidgetText.h:109
MyGUI::MenuControl
widget description should be here.
Definition
MyGUI_MenuControl.h:34
MyGUI::MenuControl::createItemChild
MenuControl * createItemChild(MenuItem *_item)
Definition
MyGUI_MenuControl.cpp:740
MyGUI::MenuControl::getItemId
const std::string & getItemId(const MenuItem *_item) const
Get item id.
Definition
MyGUI_MenuControl.cpp:710
MyGUI::MenuControl::setItemName
void setItemName(MenuItem *_item, const UString &_name)
Replace an item name.
Definition
MyGUI_MenuControl.cpp:715
MyGUI::MenuControl::_notifyDeleteItem
void _notifyDeleteItem(MenuItem *_item)
Definition
MyGUI_MenuControl.cpp:250
MyGUI::MenuControl::getItemIndex
size_t getItemIndex(const MenuItem *_item) const
Get item index.
Definition
MyGUI_MenuControl.cpp:608
MyGUI::MenuControl::removeItem
void removeItem(MenuItem *_item)
Remove item.
Definition
MyGUI_MenuControl.cpp:597
MyGUI::MenuControl::setItemData
void setItemData(MenuItem *_item, Any _data)
Replace an item data.
Definition
MyGUI_MenuControl.cpp:690
MyGUI::MenuControl::getItemChild
MenuControl * getItemChild(const MenuItem *_item) const
Definition
MyGUI_MenuControl.cpp:730
MyGUI::MenuControl::_notifyUpdateName
void _notifyUpdateName(MenuItem *_item)
Definition
MyGUI_MenuControl.cpp:271
MyGUI::MenuControl::getItemName
const UString & getItemName(const MenuItem *_item) const
Get item from specified position.
Definition
MyGUI_MenuControl.cpp:720
MyGUI::MenuControl::setItemType
void setItemType(MenuItem *_item, MenuItemType _type)
Definition
MyGUI_MenuControl.cpp:755
MyGUI::MenuControl::getItemType
MenuItemType getItemType(const MenuItem *_item) const
Definition
MyGUI_MenuControl.cpp:750
MyGUI::MenuControl::_wrapItemChild
void _wrapItemChild(MenuItem *_item, MenuControl *_widget)
Definition
MyGUI_MenuControl.cpp:485
MyGUI::MenuControl::setItemId
void setItemId(MenuItem *_item, const std::string &_id)
Replace an item id.
Definition
MyGUI_MenuControl.cpp:705
MyGUI::MenuControl::setItemChildVisible
void setItemChildVisible(MenuItem *_item, bool _visible)
Definition
MyGUI_MenuControl.cpp:725
MyGUI::MenuItem::getItemId
const std::string & getItemId() const
Get item id from specified position.
Definition
MyGUI_MenuItem.cpp:114
MyGUI::MenuItem::setFontName
void setFontName(const std::string &_value) override
Definition
MyGUI_MenuItem.cpp:75
MyGUI::MenuItem::setCaption
void setCaption(const UString &_value) override
Definition
MyGUI_MenuItem.cpp:69
MyGUI::MenuItem::createItemChild
MenuControl * createItemChild()
Definition
MyGUI_MenuItem.cpp:124
MyGUI::MenuItem::setItemChecked
void setItemChecked(bool _value)
Definition
MyGUI_MenuItem.cpp:202
MyGUI::MenuItem::setPropertyOverride
void setPropertyOverride(const std::string &_key, const std::string &_value) override
Definition
MyGUI_MenuItem.cpp:149
MyGUI::MenuItem::getMenuCtrlParent
MenuControl * getMenuCtrlParent() const
Definition
MyGUI_MenuItem.cpp:172
MyGUI::MenuItem::getItemChild
MenuControl * getItemChild() const
Definition
MyGUI_MenuItem.cpp:144
MyGUI::MenuItem::_getContentSize
IntSize _getContentSize() const
Definition
MyGUI_MenuItem.cpp:182
MyGUI::MenuItem::initialiseOverride
void initialiseOverride() override
Definition
MyGUI_MenuItem.cpp:21
MyGUI::MenuItem::getItemChecked
bool getItemChecked() const
Definition
MyGUI_MenuItem.cpp:197
MyGUI::MenuItem::setItemName
void setItemName(const UString &_value)
Replace an item name.
Definition
MyGUI_MenuItem.cpp:94
MyGUI::MenuItem::setItemId
void setItemId(const std::string &_value)
Replace an item id at a specified position.
Definition
MyGUI_MenuItem.cpp:109
MyGUI::MenuItem::setItemChildVisible
void setItemChildVisible(bool _value)
Definition
MyGUI_MenuItem.cpp:139
MyGUI::MenuItem::setItemData
void setItemData(Any _value)
Replace an item name.
Definition
MyGUI_MenuItem.cpp:99
MyGUI::MenuItem::onWidgetCreated
void onWidgetCreated(Widget *_widget) override
Definition
MyGUI_MenuItem.cpp:58
MyGUI::MenuItem::getItemType
MenuItemType getItemType() const
Definition
MyGUI_MenuItem.cpp:134
MyGUI::MenuItem::_getItemContainer
IItemContainer * _getItemContainer() const override
Definition
MyGUI_MenuItem.cpp:177
MyGUI::MenuItem::MenuItem
MenuItem()
Definition
MyGUI_MenuItem.cpp:13
MyGUI::MenuItem::getItemIndex
size_t getItemIndex() const
Get item index.
Definition
MyGUI_MenuItem.cpp:119
MyGUI::MenuItem::getItemName
const UString & getItemName() const
Get item name.
Definition
MyGUI_MenuItem.cpp:89
MyGUI::MenuItem::shutdownOverride
void shutdownOverride() override
Definition
MyGUI_MenuItem.cpp:50
MyGUI::MenuItem::removeItem
void removeItem()
Remove item.
Definition
MyGUI_MenuItem.cpp:104
MyGUI::MenuItem::setItemType
void setItemType(MenuItemType _value)
Definition
MyGUI_MenuItem.cpp:129
MyGUI::MenuItem::setFontHeight
void setFontHeight(int _value) override
Definition
MyGUI_MenuItem.cpp:82
MyGUI::SkinItem::getSubWidgetText
ISubWidgetText * getSubWidgetText() const
Definition
MyGUI_SkinItem.cpp:155
MyGUI::TextBox::setFontHeight
virtual void setFontHeight(int _value)
Definition
MyGUI_TextBox.cpp:66
MyGUI::TextBox::getCaption
virtual const UString & getCaption() const
Definition
MyGUI_TextBox.cpp:83
MyGUI::TextBox::setFontName
virtual void setFontName(const std::string &_value)
Definition
MyGUI_TextBox.cpp:53
MyGUI::TextBox::setCaption
virtual void setCaption(const UString &_value)
Definition
MyGUI_TextBox.cpp:77
MyGUI::UString
A UTF-16 string with implicit conversion to/from std::string and std::wstring.
Definition
MyGUI_UString.h:145
MyGUI::Widget
widget description should be here.
Definition
MyGUI_Widget.h:37
MyGUI::Widget::getParent
Widget * getParent() const
Definition
MyGUI_Widget.cpp:1275
MyGUI::Widget::eventChangeProperty
EventHandle_WidgetStringString eventChangeProperty
Definition
MyGUI_Widget.h:268
MyGUI::Widget::assignWidget
void assignWidget(T *&_widget, const std::string &_name)
Definition
MyGUI_Widget.h:336
MyGUI::Widget::setVisible
virtual void setVisible(bool _value)
Definition
MyGUI_Widget.cpp:959
MyGUI::WidgetInput::setNeedKeyFocus
void setNeedKeyFocus(bool _value)
Definition
MyGUI_WidgetInput.cpp:152
MyGUI
Definition
MyGUI_ActionController.h:15
MyGUI::MenuItemType
Definition
MyGUI_MenuItemType.h:16
MyGUI::types::TSize< int >
Generated by
1.9.8