YSTest
PreAlpha_b500_20140530
The YSLib Test Project
|
图形用户界面公共状态。 更多...
#include <ygui.h>
Public 成员函数 | |
GUIState () ynothrow | |
DefPred (const ynothrow, Entered, entered) DefGetter(const ynothrow | |
const KeyInput checked_held | DefGetter (const ynothrow, IWidget *, CursorOverPtr, p_CursorOver) DefGetter(const ynothrow |
bool | CheckDraggingOffset (IWidget *={}) |
若拖放偏移量无效则按指定部件的屏幕坐标更新拖放偏移量。 更多... | |
void | CleanupReferences (IWidget &) |
清除状态对指定部件的引用。 更多... | |
void | Reset () |
复位图形用户界面状态。 更多... | |
void | ResetHeldState (InputTimer::HeldStateType &, const KeyInput &) |
复位接触保持状态。 更多... | |
void | ResponseKey (KeyEventArgs &, VisualEvent) |
响应标准按键状态。 更多... | |
void | ResponseKeyBase (KeyEventArgs &, VisualEvent) |
响应标准按键状态。 更多... | |
const KeyInput checked_held IWidget p_indp_focus | PDefH (bool, CheckHeldState, const KeyInput &keys) ImplRet(CheckHeldState(keys |
检查输入保持状态。 更多... | |
const KeyInput checked_held IWidget p_indp_focus KeyHeldState bool | CheckHeldState (const KeyInput &, InputTimer::HeldStateType &) |
void | ResponseCursor (CursorEventArgs &, VisualEvent) |
响应屏幕接触状态。 更多... | |
void | ResponseCursorBase (CursorEventArgs &, VisualEvent) |
响应标准指针设备状态。 更多... | |
Public 属性 | |
InputTimer::HeldStateType | KeyHeldState |
输入接触状态。 更多... | |
InputTimer::HeldStateType | TouchHeldState |
Drawing::Vec | DraggingOffset |
拖放偏移量。 更多... | |
InputTimer | HeldTimer |
输入接触保持计时器。 更多... | |
Drawing::Point | CursorLocation |
最近的指针设备操作时的控件全局位置(相对于顶层部件的坐标)。 更多... | |
Styles::Palette | Colors |
调色板。 更多... | |
Styles::StyleMap | Styles |
样式映射。 更多... | |
const KeyInput | CheckedHeldKeys |
const KeyInput checked_held IWidget | IndependentFocusPtr |
Private 成员函数 | |
void | HandleCascade (RoutedEventArgs &, IWidget &) |
处理级联焦点指针,保证指向的部件具有焦点。 更多... | |
![]() | |
noncopyable (const noncopyable &)=delete | |
禁止复制构造。 更多... | |
noncopyable & | operator= (const noncopyable &)=delete |
禁止赋值复制。 更多... | |
noncopyable ()=default | |
protected 构造:默认实现。 更多... | |
~noncopyable ()=default | |
protected 析构:默认实现。 更多... | |
![]() | |
nonmovable (const nonmovable &)=delete | |
禁止复制构造。 更多... | |
nonmovable & | operator= (const nonmovable &)=delete |
禁止赋值复制。 更多... | |
nonmovable ()=default | |
protected 构造:默认实现。 更多... | |
~nonmovable ()=default | |
protected 析构:默认实现。 更多... | |
Private 属性 | |
IWidget * | p_CursorOver = {} |
光标设备指针对应的部件。 更多... | |
IWidget * | p_indp_focus = {} |
独立焦点指针:自由状态时即时输入(按下)状态捕获的部件指针。 更多... | |
IWidget * | p_cascade_focus = {} |
级联焦点指针:缓冲最后一次通过直接策略路由事件的进入的部件状态。 更多... | |
bool | entered = {} |
记录按键时的光标是否在部件内部。 更多... | |
KeyInput | checked_held {} |
记录检查时的按键输入。 更多... | |
size_t | master_key = 0 |
记录需要映射的主要字符的按键编码。 更多... | |
char | UpdateChar (KeyInput &) |
当指定按键状态和按键保持状态不同时按需更新映射的字符和参数。 更多... | |
void | Wrap (IWidget &) |
包装部件响应 Enter/Leave 事件。 更多... | |
void | TryEntering (CursorEventArgs &&) |
void | TryLeaving (CursorEventArgs &&) |
bool YSLib::UI::GUIState::CheckDraggingOffset | ( | IWidget * | p = {} | ) |
若拖放偏移量无效则按指定部件的屏幕坐标更新拖放偏移量。
参考 CursorLocation, DraggingOffset, YSLib::UI::GetLocationOf, YSLib::Drawing::GBinaryGroup< SPos >::Invalid , 以及 p_indp_focus.
bool YSLib::UI::GUIState::CheckHeldState | ( | const KeyInput & | keys, |
InputTimer::HeldStateType & | s | ||
) |
参考 checked_held, YSLib::UI::InputTimer::Free , 以及 yunseq.
void YSLib::UI::GUIState::CleanupReferences | ( | IWidget & | wgt | ) |
清除状态对指定部件的引用。
参考 p_cascade_focus, p_CursorOver , 以及 p_indp_focus.
const KeyInput checked_held YSLib::UI::GUIState::DefGetter | ( | const ynothrow | , |
IWidget * | , | ||
CursorOverPtr | , | ||
p_CursorOver | |||
) | const |
|
private |
处理级联焦点指针,保证指向的部件具有焦点。
参考 YSLib::UI::IsFocused(), p_cascade_focus , 以及 YSLib::UI::wgt.
参考自 ResponseCursor() , 以及 ResponseKey().
const KeyInput checked_held IWidget p_indp_focus YSLib::UI::GUIState::PDefH | ( | bool | , |
CheckHeldState | , | ||
const KeyInput & | keys | ||
) |
检查输入保持状态。
若被记录的按键状态为空则记录参数指定的按键状态;否则若当记录的按键状态和 参数不等时追加(位或)更新记录的按键状态并设置为参数,同时设置保持状态为 InputTimer::Free 。
void YSLib::UI::GUIState::Reset | ( | ) |
复位图形用户界面状态。
参考 checked_held, CursorLocation, DraggingOffset, entered, YSLib::UI::InputTimer::Free, HeldTimer, YSLib::Drawing::GBinaryGroup< SPos >::Invalid, KeyHeldState, p_cascade_focus, p_CursorOver, p_indp_focus, YSLib::UI::InputTimer::ResetInput(), TouchHeldState , 以及 yunseq.
参考自 YSLib::Shells::GUIShell::GUIShell().
void YSLib::UI::GUIState::ResetHeldState | ( | InputTimer::HeldStateType & | s, |
const KeyInput & | k | ||
) |
复位接触保持状态。
参考 checked_held, YSLib::UI::InputTimer::Free, HeldTimer , 以及 YSLib::UI::InputTimer::ResetInput().
参考自 Wrap().
void YSLib::UI::GUIState::ResponseCursor | ( | CursorEventArgs & | , |
VisualEvent | |||
) |
响应屏幕接触状态。
参考 YSLib::UI::RoutedEventArgs::Bubble, CursorLocation, YSLib::UI::RoutedEventArgs::Direct, YSLib::UI::GetLocationOf, HandleCascade(), YSLib::UI::RoutedEventArgs::Handled, YSLib::UI::IsEnabled(), YSLib::UI::IsVisible, YSLib::UI::CursorEventArgs::Position, ResponseCursorBase(), YSLib::UI::RoutedEventArgs::Strategy, YSLib::UI::RoutedEventArgs::Tunnel , 以及 YAssertNonnull.
void YSLib::UI::GUIState::ResponseCursorBase | ( | CursorEventArgs & | , |
VisualEvent | |||
) |
响应标准指针设备状态。
Touch*
和 Cursor*
事件。 TouchHeld
请求实现记录坐标偏移(用于拖放)或触发事件。 参考 YSLib::UI::RoutedEventArgs::Direct, p_indp_focus, YSLib::UI::RoutedEventArgs::Strategy , 以及 YAssert.
参考自 ResponseCursor().
void YSLib::UI::GUIState::ResponseKey | ( | KeyEventArgs & | , |
VisualEvent | |||
) |
响应标准按键状态。
参考 YSLib::UI::RoutedEventArgs::Bubble, YSLib::UI::RoutedEventArgs::Direct, HandleCascade(), YSLib::UI::RoutedEventArgs::Handled, YSLib::UI::IsEnabled(), YSLib::UI::IsVisible, ResponseKeyBase(), YSLib::UI::RoutedEventArgs::Strategy, YSLib::UI::RoutedEventArgs::Tunnel , 以及 YAssertNonnull.
void YSLib::UI::GUIState::ResponseKeyBase | ( | KeyEventArgs & | , |
VisualEvent | |||
) |
响应标准按键状态。
Key*
事件。 参考 YAssert.
参考自 ResponseKey().
|
private |
|
private |
char YSLib::UI::GUIState::UpdateChar | ( | KeyInput & | keys | ) |
当指定按键状态和按键保持状态不同时按需更新映射的字符和参数。
参考 platform::KeyCategory::Character, checked_held, platform::KeyCategory::FindFirstKeyInCategroy(), YSLib::UI::InputTimer::Free, KeyHeldState, platform::MapKeyChar, master_key , 以及 yunseq.
void YSLib::UI::GUIState::Wrap | ( | IWidget & | wgt | ) |
包装部件响应 Enter/Leave 事件。
参考 platform::KeyCategory::Character, checked_held, YSLib::UI::RoutedEventArgs::Direct, platform::KeyCategory::FindFirstKeyInCategroy(), KeyHeldState, master_key, p_indp_focus, ResetHeldState(), YSLib::UI::wgt , 以及 yunseq.
|
private |
Styles::Palette YSLib::UI::GUIState::Colors |
Drawing::Point YSLib::UI::GUIState::CursorLocation |
最近的指针设备操作时的控件全局位置(相对于顶层部件的坐标)。
参考自 CheckDraggingOffset(), Reset() , 以及 ResponseCursor().
Drawing::Vec YSLib::UI::GUIState::DraggingOffset |
|
private |
InputTimer YSLib::UI::GUIState::HeldTimer |
const KeyInput checked_held IWidget YSLib::UI::GUIState::IndependentFocusPtr |
InputTimer::HeldStateType YSLib::UI::GUIState::KeyHeldState |
|
private |
|
private |
|
private |
|
private |
独立焦点指针:自由状态时即时输入(按下)状态捕获的部件指针。
参考自 CheckDraggingOffset(), CleanupReferences(), Reset(), ResponseCursorBase() , 以及 Wrap().
Styles::StyleMap YSLib::UI::GUIState::Styles |
InputTimer::HeldStateType YSLib::UI::GUIState::TouchHeldState |