YSTest: button.h 源文件

YSTest PreAlpha_b500_20140530 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 文件列表
- 文件成员

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
button.h
浏览该文件的文档.
1 /*
2 © 2010-2014 FrankHB.
3
4 This file is part of the YSLib project, and may only be used,
5 modified, and distributed under the terms of the YSLib project
6 license, LICENSE.TXT. By continuing to use, modify, or distribute
7 this file you indicate that you have read the license and
8 understand and accept it fully.
9 */
10
28 #ifndef YSL_INC_UI_button_h_
29 #define YSL_INC_UI_button_h_ 1
30
31 #include "YModules.h"
32 #include YFM_YSLib_UI_YControl
33 #include YFM_YSLib_UI_Label
34 #include YFM_YSLib_UI_YStyle
35
36 namespace YSLib
37 {
38
39 namespace UI
40 {
41
46 class YF_API Thumb : public Control
47 {
48 public:
53 enum StyleItem : Styles::StyleItem
54 {
55 ThumbBackground,
56 EndStyle
57 };
58
59 protected:
64 CursorState csCurrent;
65
66 private:
68 Drawing::Hue hue = 180;
69
70 public:
75 explicit
76 Thumb(const Rect& = {}, Drawing::Hue = 180);
77
78 protected:
83 explicit
84 Thumb(const Rect&, ystdex::raw_tag);
85
86 public:
87 DefDeMoveCtor(Thumb)
88
89
93 DefPred(const ynothrow, Pressed, csCurrent == CursorState::Pressed)
94
96 DefGetter(const ynothrow, CursorState, CursorState, csCurrent)
98 DefGetter(const ynothrow, Hue, Hue, hue)
99 };
100
108 YF_API void
109 DecorateAsCloseButton(Thumb&);
110
111
116 class YF_API Button : public Thumb, protected MLabel
117 {
118 public:
119 using MLabel::Font;
120 using MLabel::Margin;
121 using MLabel::HorizontalAlignment;
122 using MLabel::VerticalAlignment;
123 using MLabel::Text;
124 /*
125 YImage BackgroundImage; //!< 背景图像。
126 YImage Image; //!< 前景图像。
127 */
128
133 explicit
134 Button(const Rect& = {}, const Drawing::Font& = {},
135 TextAlignment = TextAlignment::Center);
140 Button(const Rect&, Drawing::Hue, const Drawing::Font& = {},
141 TextAlignment = TextAlignment::Center);
142 DefDeMoveCtor(Button)
143
144
148 void
149 Refresh(PaintEventArgs&&) override;
150 };
151
152 } // namespace UI;
153
154 } // namespace YSLib;
155
156 #endif
157
YSLib::UI::Styles::StyleItem
size_t StyleItem
标识样式渲染项的类型。
Definition: ystyle.h:250
YSLib::UI::Refresh
void Refresh(PaintEventArgs &&) override
刷新：按指定参数绘制界面并更新状态。
YModules.h
DefPred
#define DefPred(_q, _n,...)
Definition: YBaseMacro.h:172
YSLib::UI::MLabel::Font
Drawing::Font Font
字体。
Definition: label.h:61
YSLib::UI::PaintEventArgs
部件绘制参数。
Definition: ywgtevt.h:276
YF_API
#define YF_API
Definition: Platform.h:64
YSLib::UI::Button
按钮。
Definition: button.h:116
YSLib::UI::Thumb
基本按钮。
Definition: button.h:46
DefGetter
#define DefGetter(_q, _t, _n,...)
Definition: YBaseMacro.h:180
YSLib::UI::Control
控件。
Definition: ycontrol.h:275
YSLib::UI::Thumb::ThumbBackground
Definition: button.h:55
YSLib::UI::MLabel::Text
String Text
标签文本。
Definition: label.h:76
YSLib::UI::CursorState
CursorState
指针设备光标相对于控件的状态。
Definition: ycontrol.h:345
YSLib::UI::CursorState::Pressed
YSLib::UI::Thumb::csCurrent
CursorState csCurrent
指针设备光标状态。
Definition: button.h:64
ynothrow
#define ynothrow
YSLib 无异常抛出保证：若支持 noexcept 关键字， 指定特定的 noexcept 异常规范。
Definition: ydef.h:514
YSLib::Drawing::Rect
屏幕标准矩形：表示屏幕矩形区域。
Definition: ygdibase.h:416
YSLib::UI::MLabel::HorizontalAlignment
TextAlignment HorizontalAlignment
文本水平和竖直对齐属性。
Definition: label.h:68
YSLib::UI::MLabel::Margin
Drawing::Padding Margin
文本和容器的间距。
Definition: label.h:62
YSLib::UI::TextAlignment
TextAlignment
Definition: label.h:44
YSLib::UI::BorderArea::Center
YSLib::UI::DefDeMoveCtor
Selected const shared_ptr< ListType > const pair< Color, Color > & DefDeMoveCtor(TextList) DefPredMem(const ynothrow
ystdex::empty_base
空基类模板。
Definition: ydef.h:658
YSLib::UI::MLabel
标签模块。
Definition: label.h:58
YSLib::Drawing::Font
字体：字模，包含字型、样式和大小。
Definition: Font.h:546
YSLib::UI::DecorateAsCloseButton
void DecorateAsCloseButton(Thumb &tmb)
Definition: button.cpp:127
YSLib::UI::Thumb::StyleItem
StyleItem
视觉样式项目。
Definition: button.h:53
YSLib::UI::MLabel::VerticalAlignment
TextAlignment VerticalAlignment
Definition: label.h:68