|
YSTest
PreAlpha_b500_20140530
The YSLib Test Project
|
文本菜单。 更多...
#include <menu.h>


Public 类型 | |
| using | ID = size_t |
| 菜单标识类型。 更多... | |
| using | SubMap = map< IndexType, Menu * > |
| 子菜单映射表类型。 更多... | |
| using | ValueType = SubMap::value_type |
| 子菜单映射表项目类型。 更多... | |
Public 成员函数 | |
| Menu (const Rect &={}, const shared_ptr< ListType > &={}, ID=0) | |
| 构造:使用指定边界、文本列表和菜单标识。 更多... | |
| DefDelMoveCtor (Menu) PDefHOp(Menu & | |
| 禁止转移构造。 更多... | |
| size_t idx ImplRet * | mSubMenus (idx)) void operator+=(const ValueType & |
| bool | operator-= (IndexType) |
| 向菜单组移除指定子菜单索引项。 更多... | |
| bool | IsItemEnabled (ListType::size_type) const |
| 判断菜单项是否有效。 更多... | |
| DefGetter (const ynothrow, ID, ID, id) DefGetter(const ynothrow | |
| Menu pParent void | SetItemEnabled (ListType::size_type idx, bool=true) |
| 设置 idx 指定的菜单项的可用性。 更多... | |
| bool | CheckConfirmed (ListType::size_type) const override |
| 检查列表中的指定项是否可用。 更多... | |
| bool | Show (ZOrderType=DefaultMenuZOrder) |
| 按指定 Z 顺序显示菜单。 更多... | |
| Menu * | ShowSub (IndexType, ZOrderType=DefaultMenuZOrder) |
| 按指定 Z 顺序显示索引指定的子菜单。 更多... | |
| bool | Hide () |
| 隐藏菜单。 更多... | |
Public 属性 | |
| Menu | ParentPtr |
Protected 成员函数 | |
| void | AdjustSize () const |
| 调整 vDisabled 大小。 更多... | |
| void | DrawItem (const Graphics &, const Rect &mask, const Rect &, ListType::size_type) override |
| 绘制菜单项。 更多... | |
Protected 属性 | |
| MenuHost * | pHost |
| 宿主指针。 更多... | |
| Menu * | pParent |
| 父菜单指针。 更多... | |
| SubMap | mSubMenus |
| 子菜单映射表:存储非空子菜单指针。 更多... | |
| vector< bool > | vDisabled |
| 未启用菜单项。 更多... | |
Private 属性 | |
| ID | id |
| 菜单标识。 更多... | |
友元 | |
| class | MenuHost |
| using YSLib::UI::Menu::ID = size_t |
| using YSLib::UI::Menu::SubMap = map<IndexType, Menu*> |
| using YSLib::UI::Menu::ValueType = SubMap::value_type |
|
explicit |
构造:使用指定边界、文本列表和菜单标识。
参考 YSLib::UI::Contains, YSLib::UI::CyclicTraverse, YSLib::UI::FetchGUIState(), Hide(), YSLib::UI::MenuHost::HideUnrelated(), YSLib::UI::Left, YSLib::UI::Styles::Panel, pHost, pParent, YSLib::UI::Right, YSLib::UI::MenuHost::Roots, ShowSub() , 以及 yunseq.

|
protected |
调整 vDisabled 大小。
vDisabled.size() == GetList().size() 。 参考 vDisabled.
参考自 IsItemEnabled() , 以及 SetItemEnabled().

|
override |
检查列表中的指定项是否可用。
参考 YSLib::UI::CheckConfirmed() , 以及 IsItemEnabled().

| YSLib::UI::Menu::DefDelMoveCtor | ( | Menu | ) |
|
overrideprotected |
绘制菜单项。
参考 YSLib::UI::GUIState::Colors, YSLib::Drawing::DrawArrow(), YSLib::UI::DrawItem(), ystdex::exists(), YSLib::UI::FetchGUIState(), YSLib::UI::Styles::GrayText, YSLib::Drawing::Size::Height, IsItemEnabled(), mSubMenus, YSLib::Drawing::RDeg0, YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X, YSLib::Drawing::GBinaryGroup< _type >::Y , 以及 YB_LIKELY.

| bool YSLib::UI::Menu::Hide | ( | ) |
| bool YSLib::UI::Menu::IsItemEnabled | ( | ListType::size_type | idx | ) | const |
判断菜单项是否有效。
IsInInterval(idx, GetList().size()) 。 vDisabled.size() == GetList().size() 。 参考 AdjustSize(), YSLib::IsInInterval(), vDisabled , 以及 YAssert.
参考自 CheckConfirmed() , 以及 DrawItem().


| size_t idx ImplRet* YSLib::UI::Menu::mSubMenus | ( | idx | ) | const |
| bool YSLib::UI::Menu::operator-= | ( | IndexType | idx | ) |
| void YSLib::UI::Menu::SetItemEnabled | ( | ListType::size_type | idx, |
| bool | = true |
||
| ) |
设置 idx 指定的菜单项的可用性。
IsInInterval(idx, GetList().size()) 。 vDisabled.size() == GetList().size() ; IsItemEnabled(idx) 。 参考 AdjustSize(), YSLib::IsInInterval(), vDisabled , 以及 YAssert.

| bool YSLib::UI::Menu::Show | ( | ZOrderType | z = DefaultMenuZOrder | ) |
| Menu * YSLib::UI::Menu::ShowSub | ( | IndexType | idx, |
| ZOrderType | z = DefaultMenuZOrder |
||
| ) |
|
private |
|
protected |
|
protected |
|
mutableprotected |