1//************************************ bs::framework - Copyright 2018 Marko Pintera **************************************//
2//*********** Licensed under the MIT license. See LICENSE.md for full terms. This notice is not to be removed. ***********//
3#pragma once
4
5#include "BsPrerequisites.h"
6#include "Reflection/BsRTTIType.h"
7#include "GUI/BsGUIElementStyle.h"
8
9namespace bs
10{
11 /** @cond RTTI */
12 /** @addtogroup RTTI-Impl-Engine
13 * @{
14 */
15
16 class BS_EXPORT GUIElementStyleRTTI : public RTTIType <GUIElementStyle, IReflectable, GUIElementStyleRTTI>
17 {
18 private:
19 BS_BEGIN_RTTI_MEMBERS
20 BS_RTTI_MEMBER_REFL(font, 0)
21 BS_RTTI_MEMBER_PLAIN(fontSize, 1)
22 BS_RTTI_MEMBER_PLAIN(textHorzAlign, 2)
23 BS_RTTI_MEMBER_PLAIN(textVertAlign, 3)
24 BS_RTTI_MEMBER_PLAIN(imagePosition, 4)
25 BS_RTTI_MEMBER_PLAIN(wordWrap, 5)
26
27 BS_RTTI_MEMBER_REFL_NAMED(normalTex, normal.texture, 6)
28 BS_RTTI_MEMBER_PLAIN_NAMED(normalTextColor, normal.textColor, 7)
29 BS_RTTI_MEMBER_REFL_NAMED(hoverTex, hover.texture, 8)
30 BS_RTTI_MEMBER_PLAIN_NAMED(hoverTextColor, hover.textColor, 9)
31 BS_RTTI_MEMBER_REFL_NAMED(activeTex, active.texture, 10)
32 BS_RTTI_MEMBER_PLAIN_NAMED(activeTextColor, active.textColor, 11)
33 BS_RTTI_MEMBER_REFL_NAMED(focusedTex, focused.texture, 12)
34 BS_RTTI_MEMBER_PLAIN_NAMED(focusedTextColor, focused.textColor, 13)
35
36 BS_RTTI_MEMBER_REFL_NAMED(normalOnTex, normalOn.texture, 14)
37 BS_RTTI_MEMBER_PLAIN_NAMED(normalOnTextColor, normalOn.textColor, 15)
38 BS_RTTI_MEMBER_REFL_NAMED(hoverOnTex, hoverOn.texture, 16)
39 BS_RTTI_MEMBER_PLAIN_NAMED(hoverOnTextColor, hoverOn.textColor, 17)
40 BS_RTTI_MEMBER_REFL_NAMED(activeOnTex, activeOn.texture, 18)
41 BS_RTTI_MEMBER_PLAIN_NAMED(activeOnTextColor, activeOn.textColor, 19)
42 BS_RTTI_MEMBER_REFL_NAMED(focusedOnTex, focusedOn.texture, 20)
43 BS_RTTI_MEMBER_PLAIN_NAMED(focusedOnTextColor, focusedOn.textColor, 21)
44
45 BS_RTTI_MEMBER_PLAIN(border, 22)
46 BS_RTTI_MEMBER_PLAIN(margins, 23)
47 BS_RTTI_MEMBER_PLAIN(contentOffset, 24)
48 BS_RTTI_MEMBER_PLAIN(padding, 25)
49
50 BS_RTTI_MEMBER_PLAIN(width, 26)
51 BS_RTTI_MEMBER_PLAIN(height, 27)
52 BS_RTTI_MEMBER_PLAIN(minWidth, 28)
53 BS_RTTI_MEMBER_PLAIN(maxWidth, 29)
54 BS_RTTI_MEMBER_PLAIN(minHeight, 30)
55 BS_RTTI_MEMBER_PLAIN(maxHeight, 31)
56 BS_RTTI_MEMBER_PLAIN(fixedWidth, 32)
57 BS_RTTI_MEMBER_PLAIN(fixedHeight, 33)
58
59 BS_RTTI_MEMBER_PLAIN(subStyles, 34)
60
61 BS_RTTI_MEMBER_REFL_NAMED(focusedHoverTex, focusedHover.texture, 35)
62 BS_RTTI_MEMBER_PLAIN_NAMED(focusedHoverTextColor, focusedHover.textColor, 36)
63 BS_RTTI_MEMBER_REFL_NAMED(focusedHoverOnTex, focusedHoverOn.texture, 37)
64 BS_RTTI_MEMBER_PLAIN_NAMED(focusedHoverOnTextColor, focusedHoverOn.textColor, 38)
65 BS_END_RTTI_MEMBERS
66
67 public:
68 const String& getRTTIName() override
69 {
70 static String name = "GUIElementStyle";
71 return name;
72 }
73
74 UINT32 getRTTIId() override
75 {
76 return TID_GUIElementStyle;
77 }
78
79 SPtr<IReflectable> newRTTIObject() override
80 {
81 return bs_shared_ptr_new<GUIElementStyle>();
82 }
83 };
84
85 /** @} */
86 /** @endcond */
87}
88