FLImaging 7.8.25.3
GUIPaneBase.h
1#pragma once
2#include "DefinitionsGUI.h"
3
4namespace FLImaging
5{
6 namespace GUI
7 {
8 class CGUIMenuItemBase;
10 class CGUIControlResizeHelper;
11
12 class FL_EXPORT CGUIPaneBase : public CDockablePane, public Base::CFLBase
13 {
14 public:
15 typedef struct sStateData
16 {
17 CRect rtRect;
18 CRect rtRectRecentFloat;
19 CRect rtRectRecentDocked;
20 DWORD dwCurrentAlignment;
21 DWORD dwRecentFrameAlignment;
22 bool bFloating;
23 bool bAutoHideMode;
24 bool bVisible;
25 int32_t i32RecentRowIndex;
26 int32_t i32MRUWidth;
27 int32_t i32ParentMiniFrameSerialNum;
28 int32_t i32ParentTabbedPaneSerialNum;
29 int64_t i64PaneDividerNum;
30 }
31 SStateData;
32
33 public:
34 DECLARE_MESSAGE_MAP()
35
36 public:
37 CGUIPaneBase();
38 virtual ~CGUIPaneBase();
39
40 virtual bool SetName(Base::CFLString<wchar_t> strName);
41 virtual bool GetName(Base::CFLString<wchar_t>& strName) const;
42
43 virtual bool SetResourceID(uint32_t u32ID);
44 virtual uint32_t GetResourceID() const;
45
46 virtual bool SwitchTabs(bool bForwardDirection);
47
48 virtual void SetPaneType(EPaneType eParentPaneType);
49 virtual EPaneType GetPaneType() const;
50
51 virtual bool HasEverBeenDeployed() const;
52 virtual void SetEverBeenDeployed(bool bSet);
53
54 virtual BOOL IsAutoHideMode() const;
55
56 virtual bool ClosePane();
57 virtual void UndockPane(BOOL bDelay = FALSE) override;
58
59 void SetPrepareToFloat(bool bSet);
60 bool IsPreparedToFloat() const;
61
62 void SetReadyToFloat(bool bSet);
63 bool IsReadyToFloat() const;
64
65 virtual BOOL DockToFrameWindow(DWORD dwAlignment, LPCRECT lpRect = NULL, DWORD dwDockFlags = DT_DOCK_LAST, CBasePane* pRelativeBar = NULL, int nRelativeIndex = -1, BOOL bOuterEdge = FALSE) override;
66 virtual BOOL DockToWindow(CDockablePane* pTargetWindow, DWORD dwAlignment, LPCRECT lpRect = NULL) override;
67 virtual BOOL FloatPane(CRect rectFloat, AFX_DOCK_METHOD dockMethod = DM_UNKNOWN, bool bShow = true) override;
68
69 virtual CDockablePane* AttachToTabWnd(CDockablePane* pTabControlBarAttachTo, AFX_DOCK_METHOD dockMethod, BOOL bSetActive = TRUE, CDockablePane** ppTabbedControlBar = NULL) override;
70 virtual CTabbedPane* CreateTabbedPane() override;
71 virtual CPaneFrameWnd* CreateDefaultMiniframe(CRect rectInitial) override;
72 //virtual CDockingManager* GetDockingManager() const { return m_pDockManager; }
73
74 virtual void DrawCaption(CDC* pDC, CRect rectCaption)override;
75
76 static const CResult Read(CGUIPaneBase* pWnd, const Base::CFLString<wchar_t>& strFilePath, const Base::CFLString<wchar_t>& strSectionName);
77 static const CResult Write(CGUIPaneBase* pWnd, const Base::CFLString<wchar_t>& strFilePath);
78
79 virtual bool IsLoadComplete() const;
80 virtual void MarkLoadComplete(bool bComplete);
81
82 virtual bool IsSaveComplete() const;
83 virtual void MarkSaveComplete(bool bComplete);
84
85 virtual bool CanSave() const;
86 virtual const SStateData& GetStateData() const;
87
88 virtual CMFCAutoHideBar* SetAutoHideMode(BOOL bMode, DWORD dwAlignment, CMFCAutoHideBar* pCurrAutoHideBar = NULL, BOOL bUseTimer = TRUE)override;
89
90 virtual bool IsStandalone() const;
91 virtual void SetStandalone(bool bStandalone);
92
93 virtual void SetMenuItem(CGUIMenuItemBase* pMenuItem);
94 virtual CGUIMenuItemBase* GetMenuItem() const;
95
96 // 조건에 따라 Destroy 또는 Close 동작을 수행
97 // 연결된 menu item 이 multi instance child 일 경우 destroy, 아닐 경우 close
98 virtual const CResult ProcessPaneTermination();
99
100 virtual CGUIDockablePaneHostFrame* GetHostFrame() const;
101
102 virtual const CResult EnableRelativeResizingControls(bool bEnable);
103 virtual bool IsRelativeResizingControlsEnabled() const;
104
105 virtual const CGUIControlResizeHelper* GetControlResizeHelper() const;
106
107 protected:
108 virtual void OnPressCloseButton() override;
109
110 public:
111 volatile bool m_bTerminateApp;
112 volatile bool m_bPreClose;
113 bool m_bEverBeenDeployed;
114 bool m_bStandalone;
115
116 protected:
117 Base::CFLString<wchar_t> m_strName;
118 EPaneType m_ePaneType;
119
120 bool m_bSaveDone;
121 bool m_bLoadDone;
122 SStateData m_sStateData;
123 uint32_t m_u32ResourceID;
124 CGUIMenuItemBase* m_pMenuItem;
125
126 CPoint m_ptDragStart;
127 CRect m_rtOrgWindow;
128 CGUIDockablePaneHostFrame* m_pParentHostFrame;
129
130 CGUIControlResizeHelper* m_pControlResizeHelper;
131
132 friend class CGUITabbedPane;
133 friend class CGUIPaneFrameWnd;
134 friend class CGUIManager;
135 friend class CGUIManagerPane;
136 friend class CGUIMenuItemAttributePane;
137
138 public:
139
140 DeclareGetClassType();
141 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
142 afx_msg void OnDestroy();
143 afx_msg void OnClose();
144 afx_msg void OnSetFocus(CWnd* pOldWnd);
145 afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
146 afx_msg void OnMouseMove(UINT nFlags, CPoint point);
147 afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
148 afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
149};
150 }
151}
152
GUIDockablePaneHostFrame class.
Definition GUIDockablePaneHostFrame.h:27
Definition D2DObject.h:12