dl
dl_ui_button_normal.h
浏览该文件的文档.
1
12#pragma once
13
14#ifndef DL_DISABLE_RENDER
16#include "render/dl_sprite.h"
17#include "render/dl_text.h"
18
19namespace dl::UI
20{
21
23class ButtonNormal : public Button
24{
25public:
33 static ButtonNormal* Create(std::string_view bg)
34 {
35 ButtonNormal* ret = new ButtonNormal;
36 ret->_create(mul_spr);
38 return ret;
39 }
40
41 ButtonNormal* Clone();
48 void AddText(gcText txt, const std::vector<Color>& mul_col, const std::vector<Position>& mul_offset);
49
50 void SetString(std::string_view str);
51
52
53 virtual bool IsPickup() override
54 {
55 return _spr[GetState()]->IsPickup();
56 }
57 virtual void SetOrder(float order) override
58 {
59 for(auto& spr : _spr)
60 spr->SetOrder(Math::OffsetOrder(order, 0, 0, 0));
61 for (auto& spr : _sprDisable)
62 spr->SetOrder(Math::OffsetOrder(order, 0, 0, 0));
63 if(_txtData)
64 _txtData->_txt->SetOrder(Math::OffsetOrder(order, 0, 0, -1));
65 }
66 virtual Position GetSize() override { return _spr[GetState()]->GetSize(); }
67 virtual Position GetAnchor() override { return _spr[GetState()]->GetAnchor(); }
68
70 {
71 delete _txtData;
72 }
73private:
74 ButtonNormal() :_txtData{ nullptr } {}
75
76 void _create(const std::vector<gcSprite>& mul_spr);
77
78 Sprite9* _bg;
79
80 void RenderChild(State state_pre, State state)
81 {
82 Button::RenderChild(state_pre, state);
83 _spr[state]->Render();
84 }
85
86 void _update_coor()
87 {
88 for (auto& iter : _spr)
89 {
90 iter->SetCoor(_coor);
91 }
92 _sprDisable[0]->SetCoor(_coor);
93 _sprDisable[1]->SetCoor(_coor);
94 }
95};
96
97}
98
99#endif
九图精灵
virtual void RenderChild(State state_pre, State state)
virtual Position GetAnchor() override
void SetString(std::string_view str)
static ButtonNormal * Create(std::string_view bg)
精灵组成的按钮
virtual Position GetSize() override
virtual bool IsPickup() override
ButtonNormal * Clone()
必须实现的函数
virtual void SetOrder(float order) override
void AddText(gcText txt, const std::vector< Color > &mul_col, const std::vector< Position > &mul_offset)
添加文本属性
2d绘图元素
文本绘制
UI系统之按钮基类
constexpr float OffsetOrder(float order, int u=1, int v=0, int w=0)
偏移order
Position2 Position
constexpr float Z_DEFAULT_UI
GC< Text > gcText