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

菜单宿主。 更多...

#include <menu.h>

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

Public 类型

using ItemType = Menu *
 菜单组项目类型:记录菜单控件指针。 更多...
 
using MenuMap = map< Menu::ID, ItemType >
 菜单组类型。 更多...
 
using ValueType = MenuMap::value_type
 

Public 成员函数

 MenuHost (Window &)
 
virtual ~MenuHost ()
 析构。 更多...
 
void operator+= (const ValueType &)
 向菜单组添加标识和指针指定的菜单。 更多...
 
void operator+= (Menu &)
 向菜单组添加菜单。 更多...
 
bool operator-= (Menu::ID)
 从菜单组移除菜单标识指定的菜单。 更多...
 
void Show (Menu::ID, ZOrderType=DefaultMenuZOrder)
 按指定 Z 顺序显示菜单组中菜单标识指定的菜单。 更多...
 
 PDefH (void, Show, Menu &mnu, ZOrderType z=DefaultMenuZOrder) ImplExpr(YAssert(Contains(mnu)
 按指定 Z 顺序显示指定菜单 mnu 。 更多...
 
Menu is not ShowRaw (mnu, z)) void ShowAll(ZOrderType
 按指定 Z 顺序显示菜单组中的所有菜单。 更多...
 
void Hide (Menu::ID)
 隐藏菜单组中菜单标识指定的菜单。 更多...
 
 PDefH (void, Hide, Menu &mnu) ImplExpr(YAssert(Contains(mnu)
 隐藏指定菜单 mnu。 更多...
 
Menu is not HideRaw (mnu)) void HideAll()
 隐藏菜单组中的所有菜单。 更多...
 
void HideUnrelated (Menu &mnu, Menu &mnuParent)
 隐藏从 mnu 起向上层遍历菜单树的过程中不相关的菜单。 更多...
 

Public 属性

WindowFrame
 框架窗口。 更多...
 
map< IWidget *, Menu::IDRoots
 根菜单关联映射。 更多...
 
PDefHOp(Menu &,[], Menu::ID id)
ImplRet(*mMenus.at(id)) bool
IsShowing(Menu PDefH(bool,
Contains, Menu::ID id) ImplRet(ystdex
voi 
Clear )()
 访问菜单标识指定的菜单。

异常
std::out_of_range异常中立:由 at 抛出。
更多...
 
Menu is not contained
 

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.h184 行定义.

成员类型定义说明

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

在文件 menu.h187 行定义.

菜单组类型。

在文件 menu.h188 行定义.

using YSLib::UI::MenuHost::ValueType = MenuMap::value_type

在文件 menu.h189 行定义.

构造及析构函数说明

YSLib::UI::MenuHost::MenuHost ( Window frm)

在文件 menu.cpp235 行定义.

YSLib::UI::MenuHost::~MenuHost ( )
virtual

析构。

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

在文件 menu.cpp238 行定义.

参考 Clear.

成员函数说明

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

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

在文件 menu.cpp330 行定义.

参考 HideRaw() , 以及 mMenus.

参考自 YSLib::UI::Menu::Hide().

函数调用图:

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

Menu is not YSLib::UI::MenuHost::HideRaw ( mnu  )

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

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

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

void YSLib::UI::MenuHost::HideRaw ( Menu mnu)
private

隐藏指定菜单 mnu。

在文件 menu.cpp351 行定义.

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

函数调用图:

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

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

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

在文件 menu.cpp360 行定义.

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

参考自 YSLib::UI::Menu::Menu().

函数调用图:

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

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

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

注解
覆盖菜单对象的菜单标识成员;若菜单项已存在则覆盖旧菜单项。

在文件 menu.cpp245 行定义.

参考 mMenus, YAssertNonnull , 以及 yunseq.

void YSLib::UI::MenuHost::operator+= ( Menu mnu)

向菜单组添加菜单。

注解
标识由菜单对象的菜单标识成员指定;若菜单项已存在则覆盖旧菜单项。

在文件 menu.cpp253 行定义.

参考 YSLib::UI::Menu::id, mMenus , 以及 YSLib::UI::Menu::pHost.

bool YSLib::UI::MenuHost::operator-= ( Menu::ID  id)

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

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

在文件 menu.cpp260 行定义.

参考 mMenus.

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

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

前置条件
断言: Contains(mnu) 。
YSLib::UI::MenuHost::PDefH ( void  ,
Hide  ,
Menu mnu 
)

隐藏指定菜单 mnu。

前置条件
断言: Contains(mnu) 。
void YSLib::UI::MenuHost::Show ( Menu::ID  id,
ZOrderType  z = DefaultMenuZOrder 
)

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

在文件 menu.cpp300 行定义.

参考 mMenus , 以及 ShowRaw().

参考自 YSLib::UI::Menu::Show() , 以及 YReader::ShlTextReader::ShowMenu().

函数调用图:

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

Menu is not YSLib::UI::MenuHost::ShowRaw ( mnu  ,
 
)

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

参考自 Show().

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

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

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

在文件 menu.cpp321 行定义.

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

函数调用图:

类成员变量说明

void YSLib::UI::MenuHost::Clear

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

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

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

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

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

清除菜单组。

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

在文件 menu.h262 行定义.

参考自 ~MenuHost().

Menu is not YSLib::UI::MenuHost::contained

在文件 menu.h274 行定义.

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

框架窗口。

在文件 menu.h191 行定义.

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

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

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

在文件 menu.h194 行定义.

参考自 Hide(), HideUnrelated(), operator+=(), operator-=() , 以及 Show().

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

根菜单关联映射。

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

在文件 menu.h203 行定义.

参考自 YSLib::UI::Menu::Menu().


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