MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_ui_event_defs.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_UI_EVENT_DEFS_H_1688695587
12#define INCGUARD_MGL_UI_EVENT_DEFS_H_1688695587
13
14#include <mgl/common/mgl_bit.h>
17
18namespace MGL::UI
19{
20class Widget;
21
23enum class EventType : uint8_t
24{
25 None,
26 Focus,
27 Unfocus,
28 Decide,
30};
31
33enum class EventState : uint8_t
34{
35 None,
36 Focusing,
37};
38
39using EventID = int32_t;
40inline constexpr const EventID kInvalidEventID = -1;
41
44{
47
49 constexpr EventTarget(Widget *widget_, const Rectangle &rectangle_) noexcept
50 : widget(widget_)
51 , rectangle(rectangle_)
52 {
53 }
54};
55
58{
60 EventID identifier;
61 uint32_t argument;
63
65 constexpr EventResult() noexcept
66 : type(EventType::None)
67 , identifier(kInvalidEventID)
68 , argument(0)
69 , touchID(MGL::Input::TouchID::Invalid)
70 {
71 }
72
74 constexpr EventResult(EventType type_,
75 EventID identifier_,
76 uint32_t argument_ = 0,
77 Input::TouchID touchID_ = MGL::Input::TouchID::Invalid) noexcept
78 : type(type_)
79 , identifier(identifier_)
80 , argument(argument_)
81 , touchID(touchID_)
82 {
83 }
84};
85
88{
89 MGL::UI::EventID value{kInvalidEventID};
90 bool isLoop{false};
91
93 explicit constexpr operator bool() const noexcept
94 {
95 return value != MGL::UI::kInvalidEventID;
96 }
97};
98
107
109enum class UserInput : uint8_t
110{
111 MoveUp,
112 MoveDown,
113 MoveLeft,
114 MoveRight,
115 Decide,
116 Cancel,
117
122};
123
126
127} // namespace MGL::UI
128#endif // INCGUARD_MGL_UI_EVENT_DEFS_H_1688695587
129
130// vim: et ts=4 sw=4 sts=4
スコープを持つ列挙型に対応したビットフラグを扱うクラス
Definition mgl_bit.h:43
UIウィジットクラス
Definition mgl_ui_widget.h:29
MGL ビットフラグ定義
MGL 矩形
MGL タッチ状態入力定義
TouchID
タッチ識別番号の型
Definition mgl_touch_state.h:25
EventType
イベントタイプ
Definition mgl_ui_event_defs.h:24
@ Unfocus
フォーカス解除
@ DecideAndUnfocus
決定後にフォーカス解除
@ Focus
フォーカス
UserInput
ユーザー入力
Definition mgl_ui_event_defs.h:110
@ MoveDownHasARepeat
下移動がリピート入力かのフラグ
@ MoveRight
右移動
@ MoveDown
下移動
@ MoveRightHasARepeat
右移動がリピート入力かのフラグ
@ MoveUpHasARepeat
上移動がリピート入力かのフラグ
@ MoveLeft
左移動
@ MoveLeftHasARepeat
左移動がリピート入力かのフラグ
EventState
イベントステート
Definition mgl_ui_event_defs.h:34
@ Focusing
フォーカス中
矩形
Definition mgl_rectangle.h:20
上下左右の移動先テーブル
Definition mgl_ui_event_defs.h:101
EventMoveLink right
右入力時のリンクID
Definition mgl_ui_event_defs.h:105
EventMoveLink left
左入力時のリンクID
Definition mgl_ui_event_defs.h:104
EventMoveLink down
下入力時のリンクID
Definition mgl_ui_event_defs.h:103
EventMoveLink up
上入力時のリンクID
Definition mgl_ui_event_defs.h:102
イベント結果
Definition mgl_ui_event_defs.h:58
Input::TouchID touchID
タッチID(タッチ入力の場合のみ使用)
Definition mgl_ui_event_defs.h:62
constexpr EventResult(EventType type_, EventID identifier_, uint32_t argument_=0, Input::TouchID touchID_=MGL::Input::TouchID::Invalid) noexcept
コンストラクタ
Definition mgl_ui_event_defs.h:74
uint32_t argument
イベント引数
Definition mgl_ui_event_defs.h:61
constexpr EventResult() noexcept
コンストラクタ
Definition mgl_ui_event_defs.h:65
EventType type
発生イベントの種類
Definition mgl_ui_event_defs.h:59
EventID identifier
ウィジットのイベントID
Definition mgl_ui_event_defs.h:60
イベント対象の情報
Definition mgl_ui_event_defs.h:44
constexpr EventTarget(Widget *widget_, const Rectangle &rectangle_) noexcept
コンストラクタ
Definition mgl_ui_event_defs.h:49
Widget * widget
対象ウィジット
Definition mgl_ui_event_defs.h:45
Rectangle rectangle
判定用の矩形(グローバル座標系)
Definition mgl_ui_event_defs.h:46