dl
dl_ui_button_scale.h
浏览该文件的文档.
1
12#pragma once
13
14#ifndef DL_DISABLE_RENDER
16#include "render/dl_sprite.h"
17#include "render/dl_text.h"
18#include "ui/dl_ui_panel.h"
19
20namespace dl::UI
21{
22class Panel;
24class ButtonScale : public Button
25{
26public:
32 static ButtonScale* Create(Panel* panel, float min = 1.0f, float max = 1.2f, float dt = 1.0f);
33
34 virtual ButtonScale* Clone() override;
35
36 virtual bool IsPickup() override
37 {
38 return _panel->IsPickup();
39 }
40 virtual void SetOrder(float order) override
41 {
42 _panel->SetOrder(Math::OffsetOrder(order, 0, 0, 0));
43 }
44 virtual float GetOrder() override
45 {
46 return _panel->GetOrder();
47 }
48 virtual Position GetSize() override { return toPosition(_panel->GetSize()); }
49 virtual Position GetAnchor() override { return {}; }
50 virtual void RenderDebug() override {}
51
53private:
54 ButtonScale() : _cur{ 1.0f }
55 {}
56
57 void _init()
58 {
59 _panel->SetAutoRun(false);
60 _panel->SetAutoCoor(false);
61 _update_coor();
63 }
64 void _update_coor()
65 {
66 _panel->GetCoorRef()->SetParent(_coor);
67 }
68 Panel* _panel;
69 float _min;
70 float _max;
71 float _dt;
72 float _cur;
73
74 virtual void UpdateChild(State state_pre, State state) override;
75};
76
77}
78
79#endif
void SetParent(Coor *coor)
virtual Position GetAnchor() override
static ButtonScale * Create(Panel *panel, float min=1.0f, float max=1.2f, float dt=1.0f)
缩放按钮
virtual float GetOrder() override
virtual bool IsPickup() override
virtual void SetOrder(float order) override
virtual ButtonScale * Clone() override
必须实现的函数
virtual Position GetSize() override
virtual void RenderDebug() override
@ FORCE
强行设置全局
void SetOrderMode(OrderMode mode)
设置order模式
void SetAutoCoor(bool auto_coor)
设置是否自动调整位置
void SetAutoRun(bool auto_run)
设置是否自动执行
2d绘图元素
文本绘制
UI系统之按钮基类
ui之panel
constexpr float OffsetOrder(float order, int u=1, int v=0, int w=0)
偏移order
Position2 Position
constexpr Array< Position::value_type, N > toPosition(const Array< T, N > &a)
转换到Position,已知长度