OROCHI
 
Loading...
Searching...
No Matches
GxGuiPropertyListClassBase.h
Go to the documentation of this file.
1//===========================================================================
10//===========================================================================
11#pragma once
12
13#if GX_DEVELOP
14
15GX_CORE_NAMESPACE_BEGIN()
16
17//===========================================================================
19//===========================================================================
20class GxGuiPropertyListClassBase : public GxGuiFormExpand
21{
22 //-----------------------------------------------------------
24 //-----------------------------------------------------------
26public:
27 GX_RTTI_CLASS(GxGuiPropertyListClassBase, GxGuiFormExpand)
28 // 基底継承クラス用禁止宣言
29 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxGuiPropertyListClassBase)
30
31
32 typedef void (GxClassBaseRoot::* ADD_LIST_CALLBACK)( GxClassBaseRoot* pValue );
33
35 static const u32 LIST_GUI_START_NUM;
36
38 //-----------------------------------------------------------
40 //-----------------------------------------------------------
42public:
44 GxGuiPropertyListClassBase( void );
46 GxGuiPropertyListClassBase( const GxProperty& propertyData, GxTypedObject* pOwner, const GxRtti& rtti, const GxRtti& objectRtti, ADD_LIST_CALLBACK addListCallback, u32 index = 0, b32 allowDuplicateRtti = true, b32 useComboBoxRtti = true );
47
49 b32 initialize( void ) override;
50
52 void cleanup( void ) override;
53
55 //-----------------------------------------------------------
57 //-----------------------------------------------------------
59public:
61 void update( void ) override;
62
63protected:
65 void onSize( const GxSize& size ) override;
67 void updateGuiList( void );
68
70 void eventAddButtonClick( void );
72 void eventRemoveButtonClick( void );
73
75 void setPropertyComboBoxRtti( const void* const pValue );
77 void getPropertyComboBoxRtti( void* const pValue );
78
79private:
81 GxGuiBase* getListGuiTop( void );
83 void updateRegionComboBoxRtti( void );
84
86 //-----------------------------------------------------------
88 //-----------------------------------------------------------
90public:
92 GxListClassBase* getList( void );
93
95 //-----------------------------------------------------------
97 //-----------------------------------------------------------
99protected:
100 GxTypedObject* _pOwner;
101 GxProperty _property;
102 const GxRtti* _pOwnerRtti;
103 u32 _index;
104
105 ADD_LIST_CALLBACK _addListCallback;
106
107 s32 _activeObjectIndex;
108
109 const GxRtti* _pObjectRtti;
110 GxArrayClassBase* _pObjectList;
111
112 GxGuiButton* _pGuiButtonAdd;
113 GxGuiButton* _pGuiButtonRemove;
114
115 GxGuiPropertyComboBoxRtti* _pGuiComboBox;
116
117 b32 _allowDuplicateRtti;
118 b32 _useComboBoxRtti;
119
121};
122GX_CORE_NAMESPACE_END()
123
124#endif // GX_DEVELOP
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
void GxTypedObject
その他
Definition GxDefine.h:213
配列クラス
Definition GxArrayClassBase.h:18
基底クラス
Definition GxBase.h:51
GxClassBase用連結リストクラス
Definition GxListClassBase.h:18
プロパティクラス
Definition GxProperty.h:48
実行時型情報クラス
Definition GxRtti.h:154
サイズ
Definition GxStruct.h:730
32bitブーリアン
Definition GxDefine.h:173