2#include "GUIDefinitions.h"
8 class CGUIMenuItemBase;
9 class CGUIDockablePaneHostFrame;
11 class FL_EXPORT CGUIPaneBase :
public CDockablePane,
public Base::CFLBase
14 typedef struct sStateData
17 CRect rtRectRecentFloat;
18 CRect rtRectRecentDocked;
19 DWORD dwCurrentAlignment;
20 DWORD dwRecentFrameAlignment;
24 int32_t i32RecentRowIndex;
26 int32_t i32ParentMiniFrameSerialNum;
27 int32_t i32ParentTabbedPaneSerialNum;
28 int64_t i64PaneDividerNum;
37 virtual ~CGUIPaneBase();
39 virtual
bool SetName(Base::CFLString<
wchar_t> strName);
40 virtual
bool GetName(Base::CFLString<
wchar_t>& strName) const;
42 virtual
bool SetResourceID(uint32_t u32ID);
43 virtual uint32_t GetResourceID() const;
45 virtual
bool SwitchTabs(
bool bForwardDirection);
47 virtual
void SetPaneType(EPaneType eParentPaneType);
48 virtual EPaneType GetPaneType() const;
50 virtual
bool HasEverBeenDeployed() const;
51 virtual
void SetEverBeenDeployed(
bool bSet);
53 virtual BOOL IsAutoHideMode() const;
55 virtual
bool ClosePane();
56 virtual
void UndockPane(BOOL bDelay = FALSE) override;
58 void SetPrepareToFloat(
bool bSet);
59 bool IsPreparedToFloat() const;
61 void SetReadyToFloat(
bool bSet);
62 bool IsReadyToFloat() const;
64 virtual BOOL DockToFrameWindow(DWORD dwAlignment, LPCRECT lpRect = NULL, DWORD dwDockFlags = DT_DOCK_LAST, CBasePane* pRelativeBar = NULL,
int nRelativeIndex = -1, BOOL bOuterEdge = FALSE) override;
65 virtual BOOL DockToWindow(CDockablePane* pTargetWindow, DWORD dwAlignment, LPCRECT lpRect = NULL) override;
66 virtual BOOL FloatPane(CRect rectFloat, AFX_DOCK_METHOD dockMethod = DM_UNKNOWN,
bool bShow = true) override;
68 virtual CDockablePane* AttachToTabWnd(CDockablePane* pTabControlBarAttachTo, AFX_DOCK_METHOD dockMethod, BOOL bSetActive = TRUE, CDockablePane** ppTabbedControlBar = NULL) override;
69 virtual CTabbedPane* CreateTabbedPane() override;
70 virtual CPaneFrameWnd* CreateDefaultMiniframe(CRect rectInitial) override;
73 virtual
void DrawCaption(CDC* pDC, CRect rectCaption)override;
75 static const CResult Read(CGUIPaneBase* pWnd, const Base::CFLString<
wchar_t>& strFilePath, const Base::CFLString<
wchar_t>& strSectionName);
76 static const CResult Write(CGUIPaneBase* pWnd, const Base::CFLString<
wchar_t>& strFilePath);
78 virtual
bool IsLoadComplete() const;
79 virtual
void MarkLoadComplete(
bool bComplete);
81 virtual
bool IsSaveComplete() const;
82 virtual
void MarkSaveComplete(
bool bComplete);
84 virtual
bool CanSave() const;
85 virtual const SStateData& GetStateData() const;
87 virtual CMFCAutoHideBar* SetAutoHideMode(BOOL bMode, DWORD dwAlignment, CMFCAutoHideBar* pCurrAutoHideBar = NULL, BOOL bUseTimer = TRUE)override;
89 virtual
bool IsStandalone() const;
90 virtual
void SetStandalone(
bool bStandalone);
92 virtual
void SetMenuItem(CGUIMenuItemBase* pMenuItem);
93 virtual CGUIMenuItemBase* GetMenuItem() const;
97 virtual const CResult ProcessPaneTermination();
99 virtual CGUIDockablePaneHostFrame* GetHostFrame() const;
102 virtual
void OnPressCloseButton() override;
105 volatile
bool m_bTerminateApp;
106 volatile
bool m_bPreClose;
107 bool m_bEverBeenDeployed;
111 Base::CFLString<
wchar_t> m_strName;
112 EPaneType m_ePaneType;
116 SStateData m_sStateData;
117 uint32_t m_u32ResourceID;
118 CGUIMenuItemBase* m_pMenuItem;
120 CPoint m_ptDragStart;
122 CGUIDockablePaneHostFrame* m_pParentHostFrame;
124 friend class CGUITabbedPane;
125 friend class CGUIPaneFrameWnd;
126 friend class CGUIManager;
127 friend class CGUIMenuItemAttributePane;
131 DeclareGetClassType();
132 afx_msg
int OnCreate(LPCREATESTRUCT lpCreateStruct);
133 afx_msg
void OnDestroy();
134 afx_msg
void OnClose();
135 afx_msg
void OnSetFocus(CWnd* pOldWnd);
136 afx_msg
void OnLButtonUp(UINT nFlags, CPoint point);
137 afx_msg
void OnMouseMove(UINT nFlags, CPoint point);
138 afx_msg
void OnLButtonDown(UINT nFlags, CPoint point);
139 afx_msg
void OnShowWindow(BOOL bShow, UINT nStatus);