OROCHI
 
Loading...
Searching...
No Matches
GxToolHitFlagPreset.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12#if GX_EDITOR
13
15
16//===========================================================================
18//===========================================================================
19class GxToolHitFlagPreset : public GxToolResourceEditBase
20{
21 //-----------------------------------------------------------
23 //-----------------------------------------------------------
25public:
26 // RTTI宣言
27 GX_RTTI_CLASS_NAME_ICON(GxToolHitFlagPreset, GxToolResourceEditBase, "ヒットフラグ編集", GxRtti::ICON_TYPE::PHYSICS)
28 // ClassBaseReference継承クラス用禁止宣言
29 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxToolHitFlagPreset);
30
32 enum
33 {
34 FORM_POSITION_X = 100,
35 FORM_POSITION_Y = 50,
36 FORM_WIDTH = 500,
37 FORM_HEIGHT = 450,
38 BUTTON_OFFSET_Y = 0,
39 BUTTON_WIDTH = 40,
40 BUTTON_HEIGHT = 40,
41 INFO_FORM_WIDTH = 100,
42 INFO_FORM_HEIGHT = 100,
43 INFO_SPLIT_POSITION_X = 280,
44 INFO_SPLIT_POSITION_Y = 160,
45 };
46
48 static constexpr u32 _flagCount = GxMath::VALUE_32;
49
50 class GxFormUnitInformation;
51 class GxFormHitFlagPresetData;
52
54 //-----------------------------------------------------------
56 //-----------------------------------------------------------
58
60 GxToolHitFlagPreset(void);
61
63 b32 initialize(void) override;
64
66 //-----------------------------------------------------------
68 //-----------------------------------------------------------
70
72 void setFormCollisionObject( GxGuiFormProperty* pForm );
73
75 void setResource(GxResBase* pRes) override;
76
78 GX_FORCE_INLINE virtual const GxRtti& getCreateModelRtti(void) { return GxUnitModel::GX_RTTI; }
79
80private:
82 void save(void) override;
83
85 //-----------------------------------------------------------
87 //-----------------------------------------------------------
89protected:
91 constexpr GxGuiTab* getGuiTab( void ) const { return _pTab; }
93 void setHitFlagList( const GX_FLAG flgList[_flagCount] );
94
96 //-----------------------------------------------------------
98 //-----------------------------------------------------------
100private:
101 GxFormHitFlagPresetData* _pFormHitFlag;
102 GxGuiSplitter* _pSplitter;
103 GxGuiTab* _pTab;
104
105protected:
106 static GX_FLAG _flagList[_flagCount];
107
109};
110
111//===========================================================================
113//===========================================================================
114class GxToolHitFlagPreset::GxFormUnitInformation : public GxGuiForm
115{
116 //-----------------------------------------------------------
118 //-----------------------------------------------------------
120public:
121 // RTTI定義
122 GX_RTTI_CLASS(GxToolHitFlagPreset::GxFormUnitInformation, GxGuiForm)
123 // ClassBaseReference継承クラス用禁止宣言
124 GX_PROHIBIT_CLASS_BASE_REFERENCE( GxFormUnitInformation );
125
127 static constexpr u32 SELECT_COLOR_R = 0x00;
129 static constexpr u32 SELECT_COLOR_G = 0x00;
131 static constexpr u32 SELECT_COLOR_B = 0xff;
132
134 //-----------------------------------------------------------
136 //-----------------------------------------------------------
138
140 GxFormUnitInformation( GxToolHitFlagPreset* pTool );
141
143 b32 initialize( void ) override;
144
145private:
147 GxFormUnitInformation( void ){}
148
150 //-----------------------------------------------------------
152 //-----------------------------------------------------------
154public:
156 virtual void setPopupMenu(const GxPoint2& position);
157
159 //-----------------------------------------------------------
161 //-----------------------------------------------------------
163protected:
165 void onSize(const GxSize& size) override;
166
168 void onClick(const GxPoint2& position, u32 button) override;
169
171 //-----------------------------------------------------------
173 //-----------------------------------------------------------
175private:
176 GxGuiFormProperty* _pFormUnitProperty;
177 GxToolHitFlagPreset* _pTool;
178
180};
181
182//===========================================================================
184//===========================================================================
185class GxToolHitFlagPreset::GxFormHitFlagPresetData : public GxGuiForm
186{
187 //-----------------------------------------------------------
189 //-----------------------------------------------------------
191public:
192 // RTTI定義
193 GX_RTTI_CLASS(GxToolHitFlagPreset::GxFormHitFlagPresetData, GxGuiForm);
194 // ClassBaseReference継承クラス用禁止宣言
195 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxFormHitFlagPresetData);
196
198 //-----------------------------------------------------------
200 //-----------------------------------------------------------
202
204 GxFormHitFlagPresetData( GxToolHitFlagPreset* pTool );
205
207 b32 initialize( void ) override;
208
209private:
211 GxFormHitFlagPresetData( void ){}
212
214 //-----------------------------------------------------------
216 //-----------------------------------------------------------
218public:
220 void onToolResourceReset( void );
221
223 virtual void createCollisionObject(void);
224
226 virtual void deleteCollisionObject(void);
227
229 virtual void copyCollisionObject(void);
230
231protected:
233 void update(void) override;
234
236 void onSize(const GxSize& size) override;
237
239 void onClick(const GxPoint2& position, u32 button) override;
240
242 virtual void setPopupMenu(const GxPoint2& position);
243
245 virtual void createHitFlagPropertyTable( GxResHitFlagPreset::GxResHitFlagPresetData& data, GxPropertyTable& table );
246
248 //-----------------------------------------------------------
250 //-----------------------------------------------------------
252private:
253 GxGuiPropertyTable* _pTableObject;
254 GxGuiFormProperty* _pFormHitFlagPreset;
255 GxResHitFlagPreset::GxResHitFlagPresetData* _pCurrentObjectData;
256 GxToolHitFlagPreset* _pTool;
257
259};
260
261GX_PHYSICS_NAMESPACE_END()
262#endif // GX_EDITOR
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
#define GX_PHYSICS_NAMESPACE_BEGIN()
ネームスペースマクロ
Definition GxPhysics.h:28
static constexpr u32 VALUE_32
32
Definition GxMath.h:124
プロパティテーブルクラス
Definition GxProperty.h:1641
リソース基底クラス
Definition GxResBase.h:23
Definition GxResHitFlagPreset.h:95
実行時型情報クラス
Definition GxRtti.h:154
GUI用フラグ型
Definition GxDefine.h:203
座標
Definition GxStruct.h:867
サイズ
Definition GxStruct.h:730
32bitブーリアン
Definition GxDefine.h:173