OROCHI
 
Loading...
Searching...
No Matches
GxGuiPropertyUnitGrouping.h
Go to the documentation of this file.
1//===========================================================================
11//===========================================================================
12#pragma once
13
14#if GX_DEVELOP
15
16GX_CORE_NAMESPACE_BEGIN()
17
18// 前方宣言
19class GxGuiPropertyComboBoxEnum;
20class GxGuiSplitter;
21
22//===========================================================================
24//===========================================================================
25class GxGuiPropertyUnitGrouping : public GxGuiProperty
26{
27 //-----------------------------------------------------------
29 //-----------------------------------------------------------
31public:
32 // RTTI定義
33 GX_RTTI_CLASS(GxGuiPropertyUnitGrouping, GxGuiProperty)
34 // ClassBaseReference継承クラス用禁止宣言
35 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxGuiPropertyUnitGrouping)
36
37
38 static constexpr u32 TYPE_MAX = 64;
39
41 //-----------------------------------------------------------
43 //-----------------------------------------------------------
45
47 GxGuiPropertyUnitGrouping(const GxProperty& property, GxTypedObject* pOwner, const GxRtti& rtti, const GxRtti** ppCategoryRtti, u32 categoryCount, b32 ignoreAbstract = false, u32 index = 0, NAME_TYPE nameType = NAME_TYPE::NONE );
48
50 void cleanup( void ) override;
51
53 b32 initialize( void ) override;
54
55private:
57 GxGuiPropertyUnitGrouping(void) : _ppRttiCategory(nullptr), _pCategoryGui(nullptr), _pTypeGui(nullptr), _pCategoryList(nullptr), _pTypeList(nullptr), _pTypeCount(nullptr){}
58
60 //-----------------------------------------------------------
62 //-----------------------------------------------------------
64public:
66 void setCategoryFromType( u32 type );
67
69 constexpr u32 getCategory( void ) const { return _category; }
70
72 constexpr void setTypeCountMax( u32 count ) { _typeCountMax = count; }
73
75 //-----------------------------------------------------------
77 //-----------------------------------------------------------
79protected:
81 void createEnumTable( const u32 categoryIndex, u32& typeCount, GxRtti* pRtti );
82
84 void update( void ) override;
85
87 void onSize( const GxSize& size ) override;
88
90 GxSize getUseRegionSize( void ) const override;
91
93 //-----------------------------------------------------------
95 //-----------------------------------------------------------
97protected:
98 const GxRtti** _ppRttiCategory;
99 u32 _categoryCount;
100
101 GxGuiPropertyComboBoxEnum* _pCategoryGui;
102 GxGuiPropertyComboBoxEnum* _pTypeGui;
103 GX_ENUM* _pCategoryList;
104 GX_ENUM* _pTypeList;
105 u32* _pTypeCount;
106 u32 _typeCountMax;
107
108 u32 _category;
109 u32 _categoryOld;
110 b32 _ignoreAbstract;
111
113};
114
115GX_CORE_NAMESPACE_END()
116
117#endif // GX_DEVELOP
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
void GxTypedObject
その他
Definition GxDefine.h:213
プロパティクラス
Definition GxProperty.h:48
実行時型情報クラス
Definition GxRtti.h:154
GUI用
Definition GxDefine.h:194
サイズ
Definition GxStruct.h:730
32bitブーリアン
Definition GxDefine.h:173