YSTest: YSLib::DS::ShlDS类 参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

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

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

Public 成员函数 | Private 属性 | 所有成员列表
YSLib::DS::ShlDS类 参考

双屏全屏窗口 Shell 。 更多...

`#include <Shell_DS.h>`

类 YSLib::DS::ShlDS 继承关系图:
[图例]
YSLib::DS::ShlDS 的协作图:
[图例]

## Public 成员函数

| ShlDS (const shared_ptr< Desktop > &={}, const shared_ptr< Desktop > &={})
| 构造：使用指定上下桌面。 更多...
Desktop *cursor_desktop_ptr Desktop *main_desktop_ptr Desktop *sub_desktop_ptr void | OnGotMessage (const Message &) override
| 消息处理函数。 更多...
void | OnInput () override
| 处理输入消息：发送绘制消息。 更多...
void | SwapDesktops ()
| 交换桌面。 更多...
void | SwapScreens ()
| 交换屏幕。 更多...
void | WrapForSwapScreens (UI::IWidget &, KeyInput &)
| 包装指定的部件处理满足指定按键掩码的 KeyDown 事件：交换屏幕。 更多...
Public 成员函数 继承自 YSLib::Shells::GUIShell
| GUIShell ()
| 无参数构造：复位 GUI 状态。 更多...
void | OnGotMessage (const Message &) override
| 消息处理函数。 更多...
virtual void | OnPaint ()
| 处理绘制消息：默认为空实现。 更多...
Public 成员函数 继承自 YSLib::Shells::Shell
| DefDeCtor (Shell) virtual ~Shell()
| 无参数构造。 更多...
bool | IsActive () const
| 判断 Shell 是否处于激活状态。 更多...

## Protected 属性

bool | bUpdateUp
| 指定当前桌面是否需要更新。 更多...
bool | bUpdateDown
Protected 属性 继承自 YSLib::Shells::GUIShell
Devices::InputManager | imMain
| 输入管理器。 更多...

## Private 属性

shared_ptr< Desktop > | main_desktop_ptr
| 共享桌面指针：正常状态下应总是指向可用的桌面对象。 更多...
shared_ptr< Desktop > | sub_desktop_ptr
shared_ptr< Desktop > | cursor_desktop_ptr
| 指针设备响应的桌面指针：总是指向下屏对应的桌面。 更多...
Desktop | CursorDesktop
Desktop *cursor_desktop_ptr Desktop | MainDesktop
Desktop *cursor_desktop_ptr Desktop *main_desktop_ptr Desktop | SubDesktop
| DefGetter (const ynothrow, const shared_ptr< Desktop > &, CursorDesktopHandle, main_desktop_ptr) DefGetter(const ynothrow
Desktop *cursor_desktop_ptr | DefGetter (const ynothrow, const shared_ptr< Desktop > &, MainDesktopHandle, main_desktop_ptr) DefGetter(const ynothrow
Desktop *cursor_desktop_ptr Desktop *main_desktop_ptr | DefGetter (const ynothrow, const shared_ptr< Desktop > &, SubDesktopHandle, sub_desktop_ptr) DefGetter(const ynothrow

## 额外继承的成员函数

静态 Public 成员函数 继承自 YSLib::Shells::Shell
static void | DefShlProc (const Message &)
| 默认 Shell 处理函数。 更多...
Public 属性 继承自 YSLib::Shells::GUIShell
std::chrono::nanoseconds | IdleSleep {1000000}
| 挂起延时时间。 更多...

## 详细描述

双屏全屏窗口 Shell 。

自从
  早于 build 132

在文件 Shell_DS.h 第 72 行定义.

## 构造及析构函数说明

ShlDS::ShlDS | ( | const shared_ptr< Desktop > & | h_main = `{}`,
|  | const shared_ptr< Desktop > & | h_sub = `{}`
| ) |  |

构造：使用指定上下桌面。

注解
  空参数表示新建上下屏幕初始化对应的桌面。

自从
  build 296

在文件 Shell_DS.cpp 第 61 行定义.

## 成员函数说明

YSLib::DS::ShlDS::DefGetter | ( | const ynothrow | ,
|  | const shared_ptr< Desktop > & | ,
|  | CursorDesktopHandle | ,
|  | main_desktop_ptr |
| ) |  | const

自从
  build 429

Desktop * cursor_desktop_ptr YSLib::DS::ShlDS::DefGetter | ( | const ynothrow | ,
|  | const shared_ptr< Desktop > & | ,
|  | MainDesktopHandle | ,
|  | main_desktop_ptr |
| ) |  | const

Desktop * cursor_desktop_ptr Desktop * main_desktop_ptr YSLib::DS::ShlDS::DefGetter | ( | const ynothrow | ,
|  | const shared_ptr< Desktop > & | ,
|  | SubDesktopHandle | ,
|  | sub_desktop_ptr |
| ) |  | const

void ShlDS::OnGotMessage | ( | const Message & | msg | ) |

override

消息处理函数。

自从
  build 317

处理以下消息： 绘制消息 SM_Paint ：调用 ShlDS::OnInput 。 输入消息 SM_Input ：分发按键处理后调用 OnInput。 其它消息传递至 GUIShell::OnGotMessage 。

在文件 Shell_DS.cpp 第 73 行定义.

参考 cursor_desktop_ptr, YSLib::Devices::InputManager::DispatchInput(), YSLib::Shells::GUIShell::imMain, OnInput(), SM_Input, SM_Paint , 以及 YSLib::Devices::InputManager::Update().

函数调用图:

void ShlDS::OnInput | ( |  | ) |

overridevirtual

处理输入消息：发送绘制消息。

参见
  GUIShell::OnInput

自从
  build 289

默认行为：对桌面后 Validate 操作后调用 OnPaint ，再对桌面 Update ， 对宿主实现再调用 GUIShell::OnInput 。

重载 YSLib::Shells::GUIShell .

在文件 Shell_DS.cpp 第 97 行定义.

参考 bUpdateDown, bUpdateUp, main_desktop_ptr, sub_desktop_ptr , 以及 yunseq.

参考自 OnGotMessage().

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

void ShlDS::SwapDesktops | ( |  | ) |

交换桌面。

自从
  build 429

在文件 Shell_DS.cpp 第 111 行定义.

参考 main_desktop_ptr, sub_desktop_ptr , 以及 ystdex::swap().

函数调用图:

void ShlDS::SwapScreens | ( |  | ) |

交换屏幕。

在文件 Shell_DS.cpp 第 117 行定义.

参考 cursor_desktop_ptr, main_desktop_ptr , 以及 sub_desktop_ptr.

参考自 WrapForSwapScreens().

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

void ShlDS::WrapForSwapScreens | ( | UI::IWidget & | ,
|  | KeyInput & |
| ) |  |

包装指定的部件处理满足指定按键掩码的 KeyDown 事件：交换屏幕。

注解
  忽略 Bubble 路由事件；设置 e.Handled 。
  事件优先级 0xE0 。

在文件 Shell_DS.cpp 第 127 行定义.

参考 YSLib::UI::RoutedEventArgs::Bubble, CHRLib::e, platform_ex::FetchKeyState(), SwapScreens() , 以及 YSLib::UI::wgt.

函数调用图:

## 类成员变量说明

bool YSLib::DS::ShlDS::bUpdateDown

protected

在文件 Shell_DS.h 第 93 行定义.

参考自 OnInput().

bool YSLib::DS::ShlDS::bUpdateUp

protected

指定当前桌面是否需要更新。

注解
  默认可能被 OnGotMessage 和派生类重写的 OnPaint 改变状态。

自从
  build 294

在文件 Shell_DS.h 第 93 行定义.

参考自 OnInput().

shared_ptr<Desktop> YSLib::DS::ShlDS::cursor_desktop_ptr

private

指针设备响应的桌面指针：总是指向下屏对应的桌面。

自从
  build 429

在文件 Shell_DS.h 第 84 行定义.

参考自 OnGotMessage() , 以及 SwapScreens().

Desktop YSLib::DS::ShlDS::CursorDesktop

在文件 Shell_DS.h 第 108 行定义.

shared_ptr<Desktop> YSLib::DS::ShlDS::main_desktop_ptr

private

共享桌面指针：正常状态下应总是指向可用的桌面对象。

自从
  build 296

在文件 Shell_DS.h 第 79 行定义.

参考自 OnInput(), SwapDesktops() , 以及 SwapScreens().

Desktop * cursor_desktop_ptr Desktop YSLib::DS::ShlDS::MainDesktop

在文件 Shell_DS.h 第 111 行定义.

shared_ptr<Desktop> YSLib::DS::ShlDS::sub_desktop_ptr

private

在文件 Shell_DS.h 第 79 行定义.

参考自 OnInput(), SwapDesktops() , 以及 SwapScreens().

Desktop * cursor_desktop_ptr Desktop * main_desktop_ptr Desktop YSLib::DS::ShlDS::SubDesktop

在文件 Shell_DS.h 第 114 行定义.

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

- Shell_DS.h
- Shell_DS.cpp