|
YSTest
PreAlpha_b500_20140530
The YSLib Test Project
|
双屏全屏窗口 Shell 。 更多...
#include <shlds.h>


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 |
| 挂起延时时间。 更多... | |
| ShlDS::ShlDS | ( | const shared_ptr< Desktop > & | h_main = {}, |
| const shared_ptr< Desktop > & | h_sub = {} |
||
| ) |
构造:使用指定上下桌面。
参考 main_desktop_ptr, sub_desktop_ptr , 以及 YAssertNonnull.
| YSLib::DS::ShlDS::DefGetter | ( | const ynothrow | , |
| const shared_ptr< Desktop > & | , | ||
| CursorDesktopHandle | , | ||
| main_desktop_ptr | |||
| ) | const |
| 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 |
|
override |
消息处理函数。
处理以下消息: 绘制消息 SM_Paint :调用 ShlDS::OnInput 。 输入消息 SM_Input :分发按键处理后调用 OnInput。 其它消息传递至 GUIShell::OnGotMessage 。
参考 cursor_desktop_ptr, YSLib::Devices::InputManager::DispatchInput(), YSLib::Shells::GUIShell::imMain, OnInput(), SM_Input, SM_Paint , 以及 YSLib::Devices::InputManager::Update().

|
overridevirtual |
处理输入消息:发送绘制消息。
默认行为:对桌面后 Validate 操作后调用 OnPaint ,再对桌面 Update , 对宿主实现再调用 GUIShell::OnInput 。
参考 bUpdateDown, bUpdateUp, main_desktop_ptr, sub_desktop_ptr , 以及 yunseq.
参考自 OnGotMessage().

| void ShlDS::SwapDesktops | ( | ) |
| void ShlDS::SwapScreens | ( | ) |
交换屏幕。
参考 cursor_desktop_ptr, main_desktop_ptr , 以及 sub_desktop_ptr.
参考自 WrapForSwapScreens().

| void ShlDS::WrapForSwapScreens | ( | UI::IWidget & | , |
| KeyInput & | |||
| ) |
包装指定的部件处理满足指定按键掩码的 KeyDown 事件:交换屏幕。
参考 YSLib::UI::RoutedEventArgs::Bubble, platform_ex::FetchKeyState(), SwapScreens() , 以及 YSLib::UI::wgt.

|
protected |
|
private |
|
private |
| Desktop * cursor_desktop_ptr Desktop YSLib::DS::ShlDS::MainDesktop |
|
private |
参考自 OnInput(), ShlDS(), SwapDesktops() , 以及 SwapScreens().
| Desktop * cursor_desktop_ptr Desktop * main_desktop_ptr Desktop YSLib::DS::ShlDS::SubDesktop |