14GX_CORE_NAMESPACE_BEGIN()
20class GxGuiDockingWindow : public GxGuiWindow
32 class GxGuiDockingGuide;
41 GxGuiDockingWindow(
void) {}
44 GxGuiDockingWindow(
b32 useCloseWindowButton,
b32 useMinWindowButton,
b32 useMaxWindowButton,
b32 isOutsideWindow);
46 b32 initialize(
void)
override;
55 void update(
void)
override;
57 void setDockingMode(DOCKING_MODE mode);
59 constexpr DOCKING_MODE getDockingMode(
void)
const {
return _dockingMode; }
61 void addSplitter(GxGuiDockingWindow* pWindow, DOCKING_MODE mode, s32 splitOffset = -1);
63 void removeSplitter(
void);
66 void addWindow(GxToolBase* pTool,
b32 isCurrent =
true);
68 void removeWindow(GxToolBase* pTool);
70 void eventCloseTab(
void* pTool);
74 void controlWindow(
void)
override;
77 void closeAll (
void)
override;
79 void eventClose(
void);
82 void onMouseDown(
const GxPoint2& position, u32 button)
override;
84 void onMouseUp(
const GxPoint2& position, u32 button)
override;
86 void onMouseEnter(
void)
override;
88 void onMouseLeave(
void)
override;
92 DOCKING_MODE getDockingModeFromGuide(
void)
const override;
95 void createDockingGuide(
void);
98 void clearDockingGuide(
void);
107 static GxGuiDockingWindow* getDockingWindow(GxToolBase* pTool);
109 GxToolBase* getTool(u32 index = 0)
const;
111 constexpr GxGuiTab* getTab(
void)
const {
return _pTab; }
114 GX_FORCE_INLINE
b32 isNormalWindow(
void)
const override {
return Super::isNormalWindow() && _dockingMode == DOCKING_MODE::OFF; }
118 static GX_HANDLE getDockingIcon(DOCKING_MODE mode);
127 GxGuiDockingGuide* _pGuiDockingGuide[
static_cast<u32
>(DOCKING_MODE::MAX)];
129 DOCKING_MODE _dockingMode;
137class GxGuiDockingWindow::GxGuiDockingGuide :
public GxGuiBase
144 GX_RTTI_CLASS(GxGuiDockingGuide, GxGuiBase)
149 static constexpr s32 DISTANCE_IN = 48;
151 static constexpr s32 DISTANCE_OUT = 48;
160 GxGuiDockingGuide(
void);
163 b32 initialize(
void)
override;
172 void setDockingMode(DOCKING_MODE type,
b32 isCentor, s32 num);
175 constexpr DOCKING_MODE getDockingMode(
void)
const {
return _dockingMode; }
178 constexpr void setDockingIcon(
GX_HANDLE hIcon) { _handleDockingIcon = hIcon; }
181 GX_FORCE_INLINE
b32 isSelect(
void)
const {
return _isSelect; }
184 static GxGuiGraphics::ICON_DOCKING_TYPE getDockingIcon(DOCKING_MODE mode);
193 void onDraw(
void)
override;
196 GX_FORCE_INLINE
void onMouseEnter(
void)
override { Super::onMouseEnter(); _isSelect =
true; }
199 GX_FORCE_INLINE
void onMouseLeave(
void)
override { Super::onMouseLeave(); _isSelect =
false; }
202 void setRegion(
const GxRect& rect,
b32 force =
false)
override;
211 DOCKING_MODE _dockingMode;
218GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
u32 GX_HANDLE
ハンドル
Definition GxDefine.h:214
座標
Definition GxStruct.h:867
矩形
Definition GxStruct.h:951
32bitブーリアン
Definition GxDefine.h:173