YSTest: ywgtevt.cpp 源文件

YSTest PreAlpha_b500_20140530 The YSLib Test Project

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

- 文件列表
- 文件成员

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
ywgtevt.cpp
浏览该文件的文档.
1 /*
2 © 2010-2014 FrankHB.
3
4 This file is part of the YSLib project, and may only be used,
5 modified, and distributed under the terms of the YSLib project
6 license, LICENSE.TXT. By continuing to use, modify, or distribute
7 this file you indicate that you have read the license and
8 understand and accept it fully.
9 */
10
28 #include "YSLib/UI/YModules.h"
29 #include YFM_YSLib_UI_YWidgetEvent
30 #include YFM_YSLib_UI_YWidget
31
32 namespace YSLib
33 {
34
35 namespace UI
36 {
37
38 InputEventArgs::InputEventArgs(IWidget& wgt, const KeyInput& k,
39 RoutingStrategy s)
40 : RoutedEventArgs(wgt, s), Keys(k)
41 {}
42
43
44 KeyEventArgs::KeyEventArgs(IWidget& wgt, const InputType& k, RoutingStrategy s)
45 : InputEventArgs(wgt, k, s)
46 {}
47
48
49 CursorEventArgs::CursorEventArgs(IWidget& wgt, const KeyInput& k,
50 const InputType& pt, RoutingStrategy s)
51 : InputEventArgs(wgt, k, s), Position(pt)
52 {}
53
54
55 CursorWheelEventArgs::CursorWheelEventArgs(IWidget& wgt, WheelDelta d,
56 const KeyInput& k, const InputType& pt, RoutingStrategy s)
57 : CursorEventArgs(wgt, k, pt, s), delta(d)
58 {}
59
60
61 TextInputEventArgs::TextInputEventArgs(IWidget& wgt, String str,
62 const KeyInput& k, RoutingStrategy s)
63 : InputEventArgs(wgt, k, s), Text(std::move(str))
64 {}
65 TextInputEventArgs::TextInputEventArgs(InputEventArgs e, String str)
66 : InputEventArgs(std::move(e)), Text(std::move(str))
67 {}
68
69
70 PaintEventArgs::PaintEventArgs(IWidget& wgt)
71 : UIEventArgs(wgt), PaintContext()
72 {}
73 PaintEventArgs::PaintEventArgs(IWidget& wgt, const PaintContext& pc)
74 : UIEventArgs(wgt), PaintContext(pc)
75 {}
76 PaintEventArgs::PaintEventArgs(IWidget& wgt, const Drawing::Graphics& g,
77 const Drawing::Point& pt, const Drawing::Rect& r)
78 : UIEventArgs(wgt), PaintContext{g, pt, r}
79 {}
80
81
82 WidgetController::WidgetController(bool b)
83 : AController(b),
84 Paint()
85 {}
86
87 EventMapping::ItemType&
88 WidgetController::GetItem(const VisualEvent& id)
89 {
90 if(id == UI::Paint)
91 return Paint;
92 throw BadEvent();
93 }
94
95
96 EventMapping::ItemType&
97 GetEvent(EventMapping::MapType& m, const VisualEvent& id,
98 EventMapping::MappedType(&f)())
99 {
100 auto pr(ystdex::search_map(m, id));
101
102 if(pr.second)
103 pr.first = m.insert(pr.first, EventMapping::PairType(id, f()));
104 return pr.first->second;
105 }
106
107 } // namespace UI;
108
109 } // namespace YSLib;
110
YModules.h
YSLib::UI::AController
控制器抽象类。
Definition: ywgtevt.h:468
YSLib::UI::CursorEventArgs::CursorEventArgs
CursorEventArgs(IWidget &, const KeyInput &, const InputType &={}, RoutingStrategy=Direct)
构造：使用按键输入类型对象、输入类型对象和事件路由策略。
Definition: ywgtevt.cpp:49
YSLib::UI::PaintEventArgs::PaintEventArgs
PaintEventArgs(IWidget &)
Definition: ywgtevt.cpp:70
YSLib::UI::EventMapping::ItemType
GIHEvent< UIEventArgs && > ItemType
Definition: ywgtevt.h:424
YSLib::UI::GetEvent
YF_API EventMapping::ItemType & GetEvent(EventMapping::MapType &, const VisualEvent &, EventMapping::MappedType(&)())
在事件映射表中取指定 id 对应的事件。
YSLib::UI::UIEventArgs
用户界面事件参数基类。
Definition: ywgtevt.h:59
YSLib::UI::KeyEventArgs::KeyEventArgs
KeyEventArgs(IWidget &, const InputType &={}, RoutingStrategy=Direct)
构造：使用输入类型对象和事件路由策略。
Definition: ywgtevt.cpp:44
YSLib::UI::EventMapping::PairType
pair< VisualEvent, MappedType > PairType
Definition: ywgtevt.h:425
ystdex::search_map
std::pair< typename _tMap::iterator, bool > search_map(_tMap &m, const typename _tMap::key_type &k)
按指定键值搜索指定映射。
Definition: container.hpp:475
YSLib::UI::EventMapping::MapType
map< VisualEvent, MappedType > MapType
映射表类型。
Definition: ywgtevt.h:426
YSLib::Text::String
YSLib 标准字符串（使用 UCS-2 作为内部编码）。
Definition: ystring.h:47
YSLib::UI::wgt
_tWidget & wgt
Definition: ywgtevt.h:596
YSLib::UI::WidgetController::Paint
GEventWrapper< EventT(HPaintEvent), UIEventArgs && > Paint
Definition: ywgtevt.h:612
YSLib::GEventPointerWrapper
事件项类型。
Definition: yevt.hpp:804
YSLib::Drawing::Rect
屏幕标准矩形：表示屏幕矩形区域。
Definition: ygdibase.h:416
YSLib::Drawing::GBinaryGroup< SPos >
YSLib::UI::CursorWheelEventArgs::CursorWheelEventArgs
CursorWheelEventArgs(IWidget &, WheelDelta, const KeyInput &, const InputType &={}, RoutingStrategy=Direct)
Definition: ywgtevt.cpp:55
YSLib::UI::WidgetController::WidgetController
WidgetController(bool={})
构造：使用指定可用性。
Definition: ywgtevt.cpp:82
YSLib::Drawing::Graphics
二维图形接口上下文。
Definition: ygdibase.h:721
YSLib::UI::f
_tWidget _fCallable && f
Definition: ywgtevt.h:597
YSLib::UI::BadEvent
错误或不存在的部件事件异常。
Definition: ywgtevt.h:440
platform_ex::Windows::s
return s
Definition: MinGW32.cpp:49
YSLib::UI::WheelDelta
ptrdiff_t WheelDelta
滚轮度量：以角度计量的转动滚轮的幅度。
Definition: ywgtevt.h:210
YSLib::UI::RoutedEventArgs
路由事件参数基类。
Definition: ywgtevt.h:93
YSLib::UI::RoutedEventArgs::RoutingStrategy
RoutingStrategy
事件路由策略枚举。
Definition: ywgtevt.h:100
YSLib::Drawing::r
bounds & r
Definition: ydraw.h:220
YSLib::Drawing::g
c yconstfn g
Definition: ystyle.h:104
YSLib::UI::KeyEventArgs::InputType
KeyInput InputType
输入类型。
Definition: ywgtevt.h:170
YSLib::UI::TextInputEventArgs::TextInputEventArgs
TextInputEventArgs(IWidget &, String, const KeyInput &={}, RoutingStrategy=Direct)
Definition: ywgtevt.cpp:61
YSLib::UI::InputEventArgs::InputEventArgs
InputEventArgs(IWidget &, const KeyInput &={}, RoutingStrategy=Direct)
构造：使用本机键按下对象和路由事件类型。
Definition: ywgtevt.cpp:38
YSLib::UI::CursorEventArgs
指针设备输入事件参数类。
Definition: ywgtevt.h:183
platform::KeyInput
std::bitset< KeyBitsetWidth > KeyInput
按键并行位宽。
Definition: Keys.h:68
YSLib::UI::InputEventArgs
输入事件参数类。
Definition: ywgtevt.h:121