YSTest: YSLib::UI::MenuHost类 参考

YSTest PreAlpha_b500_20140530 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
Public 类型 | Public 成员函数 | Public 属性 | Protected 属性 | Private 成员函数 | 所有成员列表
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 属性

Window & | Frame
| 框架窗口。 更多...
map< IWidget *, Menu::ID > | Roots
| 根菜单关联映射。 更多...
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
| 禁止复制构造。 更多...
noncopyable & | operator= (const noncopyable &)=delete
| 禁止赋值复制。 更多...
| noncopyable ()=default
| `protected` 构造：默认实现。 更多...
| ~noncopyable ()=default
| `protected` 析构：默认实现。 更多...

## 详细描述

菜单宿主。

自从
  build 252

在文件 menu.h 第 184 行定义.

## 成员类型定义说明

using YSLib::UI::MenuHost::ItemType = Menu*

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

在文件 menu.h 第 187 行定义.

using YSLib::UI::MenuHost::MenuMap = map<Menu::ID, ItemType>

菜单组类型。

在文件 menu.h 第 188 行定义.

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

在文件 menu.h 第 189 行定义.

## 构造及析构函数说明

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

在文件 menu.cpp 第 235 行定义.

YSLib::UI::MenuHost::~MenuHost | ( |  | ) |

virtual

析构。

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

在文件 menu.cpp 第 238 行定义.

参考 Clear.

## 成员函数说明

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

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

在文件 menu.cpp 第 330 行定义.

参考 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.cpp 第 351 行定义.

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

函数调用图:

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

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

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

在文件 menu.cpp 第 360 行定义.

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

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

函数调用图:

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

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

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

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

在文件 menu.cpp 第 245 行定义.

参考 mMenus, YAssertNonnull , 以及 yunseq.

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

向菜单组添加菜单。

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

在文件 menu.cpp 第 253 行定义.

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

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

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

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

在文件 menu.cpp 第 260 行定义.

参考 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.cpp 第 300 行定义.

参考 mMenus , 以及 ShowRaw().

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

函数调用图:

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

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

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

参考自 Show().

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

void YSLib::UI::MenuHost::ShowRaw | ( | Menu & | mnu,
|  | ZOrderType | z = `DefaultMenuZOrder`
| ) |  |

private

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

在文件 menu.cpp 第 321 行定义.

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

函数调用图:

## 类成员变量说明

void YSLib::UI::MenuHost::Clear

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

异常

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

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

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

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

清除菜单组。

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

在文件 menu.h 第 262 行定义.

参考自 ~MenuHost().

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

在文件 menu.h 第 274 行定义.

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

框架窗口。

在文件 menu.h 第 191 行定义.

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

MenuMap YSLib::UI::MenuHost::mMenus

protected

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

在文件 menu.h 第 194 行定义.

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

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

根菜单关联映射。

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

在文件 menu.h 第 203 行定义.

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

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

- menu.h
- menu.cpp