slot 0.0.1
A real time UI render framework
载入中...
搜索中...
未找到
PanelGroupNode.h
浏览该文件的文档.
1#pragma once
2
6
7#include <cstddef>
8#include <memory>
9#include <vector>
10
11namespace z8::ui {
12class PanelGroupNode;
13
16public:
18 ImageNode *IconNode = nullptr;
19
22 const char *TypeName() const override { return "PanelGroupClose"; }
23
24private:
25 void OnVisualStateChanged() override;
26};
27
33public:
35 ImageNode *IconNode = nullptr;
36 TextNode *LabelNode = nullptr;
38 size_t PanelIndex = 0;
39
41 const std::string &title, const std::string &iconSource);
44 void RefreshVisualState();
46 bool SetIcon(const std::string &iconSource);
48 bool SetIcon(UIIcon icon);
50 void SetTitle(const std::string &title);
51 const char *TypeName() const override { return "PanelGroupTab"; }
52
53private:
54 void OnVisualStateChanged() override;
55};
56
65public:
66 size_t ActivePanel = 0;
67 bool CloseRequested = false;
71 RectNode *HeaderNode = nullptr;
72 RectNode *TabBarNode = nullptr;
73 BaseNode *PagesNode = nullptr;
74 std::vector<PanelNode *> Panels;
75 std::vector<PanelGroupTabNode *> Tabs;
76
78
79 bool ActivatePanel(size_t panelIndex);
80 BaseNode *AddChild(std::unique_ptr<BaseNode> child) override;
81 PanelNode *AddPanel(std::unique_ptr<PanelNode> panel);
82 BaseNode *ContentHost() override { return this; }
84 bool HasInteractiveGeometry() const;
86 std::unique_ptr<PanelNode> RemovePanel(size_t panelIndex);
87 bool SetProperty(const std::string &name, const std::string &value) override;
89 bool SwapPanels(size_t firstIndex, size_t secondIndex);
90 const char *TypeName() const override { return "PanelGroup"; }
91
92private:
94};
95
96} // namespace z8::ui
资源的强类型引用,同时覆盖持久化 ID 与运行时索引两种边界。
Definition ResourceRef.h:36
Definition BaseNode.h:25
Definition ImageNode.h:36
Definition PanelGroupNode.h:15
PanelGroupCloseNode(PanelGroupNode &group)
Definition PanelGroupNode.cpp:79
const char * TypeName() const override
Definition PanelGroupNode.h:22
EventReply OnMouseDown(MouseMovArgs args) override
Definition PanelGroupNode.cpp:114
void OnVisualStateChanged() override
Definition PanelGroupNode.cpp:106
ImageNode * IconNode
Definition PanelGroupNode.h:18
PanelGroupNode * Group
Definition PanelGroupNode.h:17
Definition PanelGroupNode.h:64
bool SetProperty(const std::string &name, const std::string &value) override
Definition PanelGroupNode.cpp:448
BaseNode * ContentHost() override
Definition PanelGroupNode.h:82
bool SwapPanels(size_t firstIndex, size_t secondIndex)
Definition PanelGroupNode.cpp:384
RectNode * HeaderNode
Definition PanelGroupNode.h:71
RectNode * TabBarNode
Definition PanelGroupNode.h:72
std::vector< PanelGroupTabNode * > Tabs
Definition PanelGroupNode.h:75
RectNode * DragHandleNode
Definition PanelGroupNode.h:70
void UpdateSelectionVisuals()
Definition PanelGroupNode.cpp:455
size_t ActivePanel
Definition PanelGroupNode.h:66
const char * TypeName() const override
Definition PanelGroupNode.h:90
RectNode * ContentSeparatorNode
Definition PanelGroupNode.h:69
bool HasInteractiveGeometry() const
Definition PanelGroupNode.cpp:377
bool ActivatePanel(size_t panelIndex)
Definition PanelGroupNode.cpp:317
PanelGroupCloseNode * CloseButtonNode
Definition PanelGroupNode.h:68
std::unique_ptr< PanelNode > RemovePanel(size_t panelIndex)
Definition PanelGroupNode.cpp:406
BaseNode * AddChild(std::unique_ptr< BaseNode > child) override
Definition PanelGroupNode.cpp:325
bool CloseRequested
Definition PanelGroupNode.h:67
PanelNode * AddPanel(std::unique_ptr< PanelNode > panel)
Definition PanelGroupNode.cpp:335
PanelGroupNode()
Definition PanelGroupNode.cpp:223
std::vector< PanelNode * > Panels
Definition PanelGroupNode.h:74
BaseNode * PagesNode
Definition PanelGroupNode.h:73
Definition PanelGroupNode.h:32
PanelGroupTabNode(PanelGroupNode &group, size_t panelIndex, const std::string &title, const std::string &iconSource)
Definition PanelGroupNode.cpp:123
PanelGroupNode * Group
Definition PanelGroupNode.h:34
bool SetIcon(const std::string &iconSource)
Definition PanelGroupNode.cpp:206
EventReply OnMouseDown(MouseMovArgs args) override
Definition PanelGroupNode.cpp:197
void RefreshVisualState()
Definition PanelGroupNode.cpp:195
TextNode * LabelNode
Definition PanelGroupNode.h:36
void SetTitle(const std::string &title)
Definition PanelGroupNode.cpp:214
size_t PanelIndex
Definition PanelGroupNode.h:38
void OnVisualStateChanged() override
Definition PanelGroupNode.cpp:184
const char * TypeName() const override
Definition PanelGroupNode.h:51
ImageNode * IconNode
Definition PanelGroupNode.h:35
RectNode * SelectionNode
Definition PanelGroupNode.h:37
Definition PanelNode.h:19
Definition RectNode.h:10
Definition TextNode.h:20
Definition Application.h:18
UIIcon
Definition ImageNode.h:10
EventReply
Definition Event.h:13
Definition Event.h:41