YSTest  PreAlpha_b400_20130424
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
YSLib::UI::MenuHost类 参考

菜单宿主。 更多...

#include <menu.h>

类 YSLib::UI::MenuHost 继承关系图:
YSLib::UI::MenuHost 的协作图:

Public 类型

typedef MenuItemType
 菜单组项目类型:记录菜单控件指针。
 
typedef map< Menu::ID, ItemTypeMenuMap
 菜单组类型。
 
typedef MenuMap::value_type ValueType
 

Public 成员函数

 MenuHost (Window &)
 
virtual ~MenuHost ()
 析构。
 
void operator+= (const ValueType &)
 向菜单组添加标识和指针指定的菜单。
 
void operator+= (Menu &)
 向菜单组添加菜单。
 
bool operator-= (Menu::ID)
 从菜单组移除菜单标识指定的菜单。
 
Menuoperator[] (Menu::ID id)
 访问菜单标识指定的菜单。

异常
std::out_of_range异常中立:由 at 抛出。

 
bool IsShowing (Menu::ID)
 判断框架窗口中是否正在显示菜单标识指定的菜单。
 
bool Contains (Menu::ID id)
 判断菜单组中是否存在菜单标识指定的菜单。
 
bool Contains (Menu &)
 判断菜单组中是否存在指定的菜单。
 
void Clear ()
 清除菜单组。
 
void Show (Menu::ID, ZOrderType=DefaultMenuZOrder)
 按指定 Z 顺序显示菜单组中菜单标识指定的菜单。
 
void Show (Menu &mnu, ZOrderType z=DefaultMenuZOrder)
 按指定 Z 顺序显示指定菜单 mnu 。
 
void ShowAll (ZOrderType=DefaultMenuZOrder)
 按指定 Z 顺序显示菜单组中的所有菜单。
 
void Hide (Menu::ID)
 隐藏菜单组中菜单标识指定的菜单。
 
void Hide (Menu &mnu)
 隐藏指定菜单 mnu。
 
void HideAll ()
 隐藏菜单组中的所有菜单。
 
void HideUnrelated (Menu &mnu, Menu &mnuParent)
 隐藏从 mnu 起向上层遍历菜单树的过程中不相关的菜单。
 

Public 属性

WindowFrame
 框架窗口。
 
map< IWidget *, Menu::IDRoots
 根菜单关联映射。
 

Protected 属性

MenuMap mMenus
 菜单组:存储非空菜单指针。
 

Private 成员函数

void ShowRaw (Menu &mnu, ZOrderType=DefaultMenuZOrder)
 按指定 Z 顺序显示指定菜单 mnu 。
 
void HideRaw (Menu &mnu)
 隐藏指定菜单 mnu。
 
- Private 成员函数 继承自 ystdex::noncopyable
 noncopyable (const noncopyable &)=delete
 禁止复制构造。
 
noncopyableoperator= (const noncopyable &)=delete
 禁止赋值复制。
 
 noncopyable ()=default
 protected 构造:默认实现。
 
 ~noncopyable ()=default
 protected 析构:默认实现。
 

详细描述

菜单宿主。

自从
build 252

在文件 menu.h181 行定义.

成员类型定义说明

菜单组项目类型:记录菜单控件指针。

在文件 menu.h184 行定义.

菜单组类型。

在文件 menu.h185 行定义.

typedef MenuMap::value_type YSLib::UI::MenuHost::ValueType

在文件 menu.h186 行定义.

构造及析构函数说明

MenuHost::MenuHost ( Window frm)

在文件 menu.cpp234 行定义.

MenuHost::~MenuHost ( )
virtual

析构。

注解
隐藏菜单组中的所有菜单并清理菜单组。

在文件 menu.cpp237 行定义.

参考 Clear() , 以及 HideAll().

函数调用图:

成员函数说明

void MenuHost::Clear ( )

清除菜单组。

注解
释放所有的菜单对象。

在文件 menu.cpp293 行定义.

参考 delete_second_mem , 以及 mMenus.

参考自 ~MenuHost().

这是这个函数的调用关系图:

bool YSLib::UI::MenuHost::Contains ( Menu::ID  id)
inline

判断菜单组中是否存在菜单标识指定的菜单。

在文件 menu.h246 行定义.

参考自 HideUnrelated().

这是这个函数的调用关系图:

bool YSLib::UI::MenuHost::Contains ( Menu )

判断菜单组中是否存在指定的菜单。

void YSLib::UI::MenuHost::Hide ( Menu::ID  )

隐藏菜单组中菜单标识指定的菜单。

void YSLib::UI::MenuHost::Hide ( Menu mnu)
inline

隐藏指定菜单 mnu。

前置条件
断言: Contains(mnu) 。

在文件 menu.h302 行定义.

参考 Contains() , 以及 YAssert.

函数调用图:

void MenuHost::HideAll ( )

隐藏菜单组中的所有菜单。

在文件 menu.cpp339 行定义.

参考 ystdex::get_value,HideRaw() , 以及 mMenus.

参考自 HideUnrelated() , 以及 ~MenuHost().

函数调用图:

这是这个函数的调用关系图:

void MenuHost::HideRaw ( Menu mnu)
private

隐藏指定菜单 mnu。

在文件 menu.cpp351 行定义.

参考 Frame,YSLib::UI::Invalidate(),YSLib::UI::IsVisible() , 以及 YSLib::UI::ReleaseFocus().

参考自 HideAll() , 以及 HideUnrelated().

函数调用图:

这是这个函数的调用关系图:

void MenuHost::HideUnrelated ( Menu mnu,
Menu mnuParent 
)

隐藏从 mnu 起向上层遍历菜单树的过程中不相关的菜单。

注解
相关菜单指 mnu 的父菜单中的 mnuParent 及其直接或间接父菜单。
!Contains(mnuParent) 或 mnuParent 不是 mnu 的直接或间接父菜单,则隐藏所有菜单。

在文件 menu.cpp360 行定义.

参考 Contains(),HideAll(),HideRaw() , 以及 mMenus.

函数调用图:

bool MenuHost::IsShowing ( Menu::ID  id)

判断框架窗口中是否正在显示菜单标识指定的菜单。

在文件 menu.cpp276 行定义.

参考 YSLib::UI::MUIContainer::Contains(),Frame , 以及 mMenus.

函数调用图:

void YSLib::UI::MenuHost::operator+= ( const ValueType )

向菜单组添加标识和指针指定的菜单。

注解
覆盖菜单对象的菜单标识成员;若菜单项已存在则覆盖旧菜单项。
void YSLib::UI::MenuHost::operator+= ( Menu )

向菜单组添加菜单。

注解
标识由菜单对象的菜单标识成员指定;若菜单项已存在则覆盖旧菜单项。
bool MenuHost::operator-= ( Menu::ID  id)

从菜单组移除菜单标识指定的菜单。

注解
同时置菜单宿主指针为空。

在文件 menu.cpp260 行定义.

参考 mMenus.

Menu& YSLib::UI::MenuHost::operator[] ( Menu::ID  id)
inline

访问菜单标识指定的菜单。

异常
std::out_of_range异常中立:由 at 抛出。

在文件 menu.h234 行定义.

void YSLib::UI::MenuHost::Show ( Menu::ID  ,
ZOrderType  = DefaultMenuZOrder 
)

按指定 Z 顺序显示菜单组中菜单标识指定的菜单。

void YSLib::UI::MenuHost::Show ( Menu mnu,
ZOrderType  z = DefaultMenuZOrder 
)
inline

按指定 Z 顺序显示指定菜单 mnu 。

前置条件
断言: Contains(mnu) 。

在文件 menu.h271 行定义.

参考 Contains() , 以及 YAssert.

函数调用图:

void MenuHost::ShowAll ( ZOrderType  z = DefaultMenuZOrder)

按指定 Z 顺序显示菜单组中的所有菜单。

在文件 menu.cpp309 行定义.

参考 ystdex::get_value,mMenus , 以及 ShowRaw().

函数调用图:

void MenuHost::ShowRaw ( Menu mnu,
ZOrderType  z = DefaultMenuZOrder 
)
private

按指定 Z 顺序显示指定菜单 mnu 。

在文件 menu.cpp321 行定义.

参考 YSLib::UI::Window::Add(),Frame , 以及 YSLib::UI::RequestFocus().

参考自 ShowAll().

函数调用图:

这是这个函数的调用关系图:

类成员变量说明

Window& YSLib::UI::MenuHost::Frame

框架窗口。

在文件 menu.h188 行定义.

参考自 HideRaw(),IsShowing() , 以及 ShowRaw().

MenuMap YSLib::UI::MenuHost::mMenus
protected

菜单组:存储非空菜单指针。

在文件 menu.h191 行定义.

参考自 Clear(),HideAll(),HideUnrelated(),IsShowing(),operator-=() , 以及 ShowAll().

map<IWidget*, Menu::ID> YSLib::UI::MenuHost::Roots

根菜单关联映射。

自从
build 363 指定向指定部件转移焦点时不进行隐藏的菜单的映射。

在文件 menu.h200 行定义.


该类的文档由以下文件生成: