slot
0.0.1
A real time UI render framework
载入中...
搜索中...
未找到
include
UI
Layout
MenuNode.h
浏览该文件的文档.
1
#pragma once
2
3
#include "
UI/Layout/ImageNode.h
"
4
#include "
UI/Layout/RectNode.h
"
5
#include "
UI/Layout/TextNode.h
"
6
7
#include <functional>
8
9
namespace
z8::ui
{
10
11
class
MenuNode;
12
14
class
MenuItemNode
final
:
public
RectNode
{
15
private
:
16
bool
Armed
=
false
;
17
bool
ClickPending
=
false
;
18
19
public
:
20
TextNode
*
LabelNode
=
nullptr
;
21
bool
Enabled
=
true
;
22
std::function<
void
()>
Clicked
;
23
24
MenuItemNode
();
25
26
bool
ConsumeClicked
();
27
EventReply
OnKeyDown
(
KeyArgs
args
)
override
;
28
EventReply
OnMouseDown
(
MouseMovArgs
args
)
override
;
29
EventReply
OnMouseUp
(
MouseMovArgs
args
)
override
;
30
void
OnPointerCaptureLost
()
override
{
Armed
=
false
; }
31
void
SetEnabled
(
bool
enabled
);
32
bool
SetProperty
(
const
std::string &
name
,
const
std::string &
value
)
override
;
33
void
SetText
(
const
std::string &
text
);
34
const
char
*
TypeName
()
const override
{
return
"MenuItem"
; }
35
36
private
:
37
void
Activate
();
38
void
CloseOwningMenu
();
39
void
OnVisualStateChanged
()
override
;
40
};
41
46
class
MenuNode
final
:
public
RectNode
{
47
private
:
48
bool
TopLevel
=
false
;
49
50
public
:
51
TextNode
*
LabelNode
=
nullptr
;
52
ImageNode
*
ChevronNode
=
nullptr
;
53
RectNode
*
PopupNode
=
nullptr
;
54
bool
Enabled
=
true
;
55
bool
Open
=
false
;
56
57
MenuNode
();
58
59
void
CloseBranch
();
60
void
CloseHierarchy
();
61
BaseNode
*
ContentHost
()
override
{
return
PopupNode
; }
62
bool
IsTopLevel
()
const
{
return
TopLevel
; }
63
EventReply
OnKeyDown
(
KeyArgs
args
)
override
;
64
EventReply
OnMouseDown
(
MouseMovArgs
args
)
override
;
65
EventReply
OnMouseMove
(
MouseMovArgs
args
)
override
;
66
void
OnAfterLayout
()
override
;
67
MenuNode
*
RootMenu
();
68
void
SetEnabled
(
bool
enabled
);
69
bool
SetOpen
(
bool
open
);
70
bool
SetProperty
(
const
std::string &
name
,
const
std::string &
value
)
override
;
71
void
SetText
(
const
std::string &
text
);
72
void
SetTopLevel
(
bool
topLevel
);
73
const
char
*
TypeName
()
const override
{
return
"Menu"
; }
74
75
private
:
76
void
CloseSiblingMenus
();
77
bool
HasOpenSibling
()
const
;
78
void
OnVisualStateChanged
()
override
;
79
void
OpenExclusive
();
80
MenuNode
*
ParentMenu
()
const
;
81
void
RefreshGeometry
();
82
};
83
84
}
// namespace z8::ui
ImageNode.h
RectNode.h
TextNode.h
z8::ResourceRef
资源的强类型引用,同时覆盖持久化 ID 与运行时索引两种边界。
Definition
ResourceRef.h:36
z8::ui::BaseNode
Definition
BaseNode.h:25
z8::ui::ImageNode
Definition
ImageNode.h:36
z8::ui::MenuItemNode
Definition
MenuNode.h:14
z8::ui::MenuItemNode::OnKeyDown
EventReply OnKeyDown(KeyArgs args) override
Definition
MenuNode.cpp:82
z8::ui::MenuItemNode::OnMouseUp
EventReply OnMouseUp(MouseMovArgs args) override
Definition
MenuNode.cpp:97
z8::ui::MenuItemNode::TypeName
const char * TypeName() const override
Definition
MenuNode.h:34
z8::ui::MenuItemNode::Armed
bool Armed
Definition
MenuNode.h:16
z8::ui::MenuItemNode::OnMouseDown
EventReply OnMouseDown(MouseMovArgs args) override
Definition
MenuNode.cpp:90
z8::ui::MenuItemNode::Clicked
std::function< void()> Clicked
Definition
MenuNode.h:22
z8::ui::MenuItemNode::ConsumeClicked
bool ConsumeClicked()
Definition
MenuNode.cpp:76
z8::ui::MenuItemNode::SetText
void SetText(const std::string &text)
Definition
MenuNode.cpp:140
z8::ui::MenuItemNode::Activate
void Activate()
Definition
MenuNode.cpp:57
z8::ui::MenuItemNode::OnPointerCaptureLost
void OnPointerCaptureLost() override
Definition
MenuNode.h:30
z8::ui::MenuItemNode::SetEnabled
void SetEnabled(bool enabled)
Definition
MenuNode.cpp:117
z8::ui::MenuItemNode::OnVisualStateChanged
void OnVisualStateChanged() override
Definition
MenuNode.cpp:105
z8::ui::MenuItemNode::LabelNode
TextNode * LabelNode
Definition
MenuNode.h:20
z8::ui::MenuItemNode::Enabled
bool Enabled
Definition
MenuNode.h:21
z8::ui::MenuItemNode::CloseOwningMenu
void CloseOwningMenu()
Definition
MenuNode.cpp:66
z8::ui::MenuItemNode::ClickPending
bool ClickPending
Definition
MenuNode.h:17
z8::ui::MenuItemNode::SetProperty
bool SetProperty(const std::string &name, const std::string &value) override
Definition
MenuNode.cpp:124
z8::ui::MenuItemNode::MenuItemNode
MenuItemNode()
Definition
MenuNode.cpp:32
z8::ui::MenuNode
Definition
MenuNode.h:46
z8::ui::MenuNode::RootMenu
MenuNode * RootMenu()
Definition
MenuNode.cpp:347
z8::ui::MenuNode::LabelNode
TextNode * LabelNode
Definition
MenuNode.h:51
z8::ui::MenuNode::OnAfterLayout
void OnAfterLayout() override
Definition
MenuNode.cpp:282
z8::ui::MenuNode::OnKeyDown
EventReply OnKeyDown(KeyArgs args) override
Definition
MenuNode.cpp:235
z8::ui::MenuNode::CloseHierarchy
void CloseHierarchy()
Definition
MenuNode.cpp:209
z8::ui::MenuNode::CloseBranch
void CloseBranch()
Definition
MenuNode.cpp:207
z8::ui::MenuNode::TypeName
const char * TypeName() const override
Definition
MenuNode.h:73
z8::ui::MenuNode::HasOpenSibling
bool HasOpenSibling() const
Definition
MenuNode.cpp:222
z8::ui::MenuNode::PopupNode
RectNode * PopupNode
Definition
MenuNode.h:53
z8::ui::MenuNode::SetOpen
bool SetOpen(bool open)
Definition
MenuNode.cpp:361
z8::ui::MenuNode::OnMouseDown
EventReply OnMouseDown(MouseMovArgs args) override
Definition
MenuNode.cpp:262
z8::ui::MenuNode::OnVisualStateChanged
void OnVisualStateChanged() override
Definition
MenuNode.cpp:300
z8::ui::MenuNode::SetProperty
bool SetProperty(const std::string &name, const std::string &value) override
Definition
MenuNode.cpp:378
z8::ui::MenuNode::Open
bool Open
Definition
MenuNode.h:55
z8::ui::MenuNode::IsTopLevel
bool IsTopLevel() const
Definition
MenuNode.h:62
z8::ui::MenuNode::SetEnabled
void SetEnabled(bool enabled)
Definition
MenuNode.cpp:354
z8::ui::MenuNode::ChevronNode
ImageNode * ChevronNode
Definition
MenuNode.h:52
z8::ui::MenuNode::SetText
void SetText(const std::string &text)
Definition
MenuNode.cpp:398
z8::ui::MenuNode::RefreshGeometry
void RefreshGeometry()
Definition
MenuNode.cpp:329
z8::ui::MenuNode::ContentHost
BaseNode * ContentHost() override
Definition
MenuNode.h:61
z8::ui::MenuNode::Enabled
bool Enabled
Definition
MenuNode.h:54
z8::ui::MenuNode::ParentMenu
MenuNode * ParentMenu() const
Definition
MenuNode.cpp:322
z8::ui::MenuNode::CloseSiblingMenus
void CloseSiblingMenus()
Definition
MenuNode.cpp:211
z8::ui::MenuNode::OpenExclusive
void OpenExclusive()
Definition
MenuNode.cpp:315
z8::ui::MenuNode::SetTopLevel
void SetTopLevel(bool topLevel)
Definition
MenuNode.cpp:404
z8::ui::MenuNode::TopLevel
bool TopLevel
Definition
MenuNode.h:48
z8::ui::MenuNode::OnMouseMove
EventReply OnMouseMove(MouseMovArgs args) override
Definition
MenuNode.cpp:272
z8::ui::MenuNode::MenuNode
MenuNode()
Definition
MenuNode.cpp:145
z8::ui::RectNode
Definition
RectNode.h:10
z8::ui::TextNode
Definition
TextNode.h:20
z8::ui
Definition
Application.h:18
z8::EventReply
EventReply
Definition
Event.h:13
z8::KeyArgs
Definition
Event.h:67
z8::MouseMovArgs
Definition
Event.h:41
制作者
1.10.0