OROCHI
 
Loading...
Searching...
No Matches
GxGuiPropertyComboBoxRtti.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12#if GX_DEVELOP
13
14GX_CORE_NAMESPACE_BEGIN()
15
16//===========================================================================
18//===========================================================================
19class GxGuiPropertyComboBoxRtti : public GxGuiPropertyComboBox
20{
21 //-----------------------------------------------------------
23 //-----------------------------------------------------------
25public:
26 GX_RTTI_CLASS(GxGuiPropertyComboBoxRtti, GxGuiPropertyComboBox)
27 // ClassBaseReference継承クラス用禁止宣言
28 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxGuiPropertyComboBoxRtti)
29
30private:
31 class GxComboBoxData;
32
34 //-----------------------------------------------------------
36 //-----------------------------------------------------------
38public:
40 GxGuiPropertyComboBoxRtti( void );
42 GxGuiPropertyComboBoxRtti( const GxProperty& property, GxTypedObject* pOwner, const GxRtti& rtti, const GxRtti& objectRtti, u32 index = 0, NAME_TYPE nameType = NAME_TYPE::LEFT );
43
45 void initializeData(const GxRtti& rtti);
46private:
48 void initializeDataInner(GxPropertyTable& table, const GxRtti* pCurrentRtti, const GxRtti* pRtti, b32 isRecursion);
49
51 //-----------------------------------------------------------
53 //-----------------------------------------------------------
55protected:
57 void menuComboBoxCallback( void* pArgument );
58
60 //-----------------------------------------------------------
62 //-----------------------------------------------------------
64public:
66 void setDefaultValue(void) override;
68 void setAttributeRttiEnable(GxRtti::ATTRIBUTE attribute, b32 enable);
70 void setAttributeRttiDisable(GxRtti::ATTRIBUTE attribute, b32 enable);
71
72protected:
74 b32 isDefaultValue(void) override;
75
77 GX_CSTR getCurrentComboBoxPropertyVirtualName(void) override;
78
80 //-----------------------------------------------------------
82 //-----------------------------------------------------------
84protected:
85 GxString _currentDisplayName;
86 s32 _currentListIndex;
87 u32 _attributeRttiEnable;
88 u32 _attributeRttiDisable;
89
91};
92
93//===========================================================================
95//===========================================================================
96class GxGuiPropertyComboBoxRtti::GxComboBoxData : public GxClassBase
97{
98 //-----------------------------------------------------------
100 //-----------------------------------------------------------
102public:
103 GX_RTTI_CLASS(GxComboBoxData, GxClassBase)
104 // GxClassBase継承の禁止宣言
105 GX_PROHIBIT_CLASS_BASE(GxComboBoxData)
106 // new, delete定義
107 GX_OPERATOR_NEW_DELETE(GxAllocatorList::ALLOCATOR_TYPE::DEVELOP)
108
109
110 //-----------------------------------------------------------
112 //-----------------------------------------------------------
114public:
116 GxComboBoxData( void )
117 : _index(0)
118 , _pRtti(nullptr)
119 {};
121 GxComboBoxData( u32 index, const GxRtti* pRtti )
122 : _index(index)
123 , _pRtti(pRtti)
124 {};
125
127 //-----------------------------------------------------------
129 //-----------------------------------------------------------
131public:
133 constexpr u32 getIndex( void ) const { return _index; }
135 GX_FORCE_INLINE const GxRtti* getSelectRtti( void ) const { return _pRtti; }
136
138 //-----------------------------------------------------------
140 //-----------------------------------------------------------
142protected:
143 u32 _index;
144 const GxRtti* _pRtti;
145
147};
148
149GX_CORE_NAMESPACE_END()
150
151#endif // GX_DEVELOP
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
void GxTypedObject
その他
Definition GxDefine.h:213
オブジェクト基底クラス
Definition GxBase.h:88
プロパティクラス
Definition GxProperty.h:48
プロパティテーブルクラス
Definition GxProperty.h:1641
実行時型情報クラス
Definition GxRtti.h:154
ATTRIBUTE
属性
Definition GxRtti.h:185
文字列型クラス
Definition GxString.h:18
32bitブーリアン
Definition GxDefine.h:173