OROCHI
 
Loading...
Searching...
No Matches
GxToolBase.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//===========================================================================
20//===========================================================================
21class GxToolBase : public GxGuiWindow
22{
23 //-------------------------------------------------------------
25 //-------------------------------------------------------------
27public:
28 // RTTI定義
29 GX_RTTI_ABSTRACT_CLASS_ICON(GxToolBase, GxGuiWindow, GxRtti::ICON_TYPE::TOOL_VIEWER)
30 // ClassBaseReference継承クラス用禁止宣言
32 // new, delete定義
33 GX_OPERATOR_NEW_DELETE(GxAllocatorList::ALLOCATOR_TYPE::DEVELOP)
34
35
36 enum TOOL_ATTRIBUTE
37 {
38 TOOL_ATTRIBUTE_PROHIBIT_MULTI_CREATE = (1 << 0),
39 };
40
42 struct GxToolColor
43 {
44 //-------------------------------------------------------------
46 //-------------------------------------------------------------
48
50 static constexpr u32 GRADATION_MAX = 5;
51
53 //-------------------------------------------------------------
55 //-------------------------------------------------------------
57
59 GxToolColor(const GxColor& baseColor, const GxColor& selectedColor, const GxColor& stringColor);
60
62 //-------------------------------------------------------------
64 //-------------------------------------------------------------
66
67 GxColor _selected;
68 GxColor _gradation[GRADATION_MAX];
69 GxColor _string;
70
72 };
73
75 //-------------------------------------------------------------
77 //-------------------------------------------------------------
79
81 GxToolBase(void);
82
84 GxToolBase( const u32 toolAttribute );
85
87 b32 initialize(void) override;
88
90 //-------------------------------------------------------------
92 //-------------------------------------------------------------
94
96 void cleanup(void) override;
97
99 virtual void exit( void );
100
102 b32 close(void) override;
103
104protected:
106 void onKeyDown(GxKeyboard::KEY key) override;
107
108public:
110 GX_FORCE_INLINE virtual void onReload(gx::core::GxGuiBase* /*pReloadGui*/, GxResBase* /*pReloadResource*/) {}
111
113 GX_FORCE_INLINE virtual void onReloadBegin(gx::core::GxGuiBase* /*pReloadGui*/, GxResBase* /*pReloadResource*/) {}
114
116 GX_FORCE_INLINE void setCallBackNotifyCleanup(const GxCallback::GxHandlerBase& handle) { _handleNotifyCleanup = handle; }
117
119 virtual void setMenuBar(void);
120
122 void addMenuFileProperty(GxPropertyTable& table);
123
125 GX_FORCE_INLINE virtual void addMenuFilePropertyExtra(GxPropertyTable& /*table*/) {}
126
128 GX_FORCE_INLINE virtual void addMenuOwnProperty(GxPropertyTable& /*table*/) {}
129
131 void addMenuHelpProperty(GxPropertyTable& table);
132
134 GX_FORCE_INLINE virtual void addMenuHelpPropertyExtra(GxPropertyTable& /*table*/) {}
135
137 virtual void setViewBar(GxPropertyTable& customTable);
138
140 GX_FORCE_INLINE virtual void onViewMaxExpand(void) {}
141
143 GX_FORCE_INLINE virtual void onViewMinExpand(void) {}
144
146 GX_FORCE_INLINE virtual b32 isAutoCreateEnable(void) const { return true; }
147
149 void openOnlineHelp(void);
150
152 //-------------------------------------------------------------
154 //-------------------------------------------------------------
156public:
158 GX_FORCE_INLINE static const GxToolColor& getToolColor(void) { return _toolColor; }
160 GX_FORCE_INLINE static void setToolColor(const GxToolColor& color) { _toolColor = color; }
162 GX_FORCE_INLINE b32 isToolAttribute( TOOL_ATTRIBUTE attribute ) const { return (attribute & _toolAttribute) ? true : false; }
164 void setToolAttribute(TOOL_ATTRIBUTE attribute, b32 enable);
165
167 //-------------------------------------------------------------
169 //-------------------------------------------------------------
171private:
172 u32 _toolAttribute;
173 static GxToolColor _toolColor;
174 GxCallback::GxHandlerBase _handleNotifyCleanup;
175
177};
178
179GX_CORE_NAMESPACE_END()
180
181#endif // GX_DEVELOP
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
ハンドラ基本クラス
Definition GxCallback.h:27
プロパティテーブルクラス
Definition GxProperty.h:1641
リソース基底クラス
Definition GxResBase.h:23
@ TOOL_VIEWER
ビューワー
Definition GxColor.h:21
32bitブーリアン
Definition GxDefine.h:173