3#include "GUIFixedViewPlacementSet.h"
4#include "DefinitionsGUI.h"
22 class CGUIViewImageObjectFigure;
23 class CGUIChildFrameBase;
24 class CInternalViewManager;
25 class CGUIDialogCreateStencil;
28 typedef struct sFixedViewDeclarationGroups
30 std::vector<CGUIFixedViewDeclaration*> vctImage;
31 std::vector<CGUIFixedViewDeclaration*> vctGraph;
32 std::vector<CGUIFixedViewDeclaration*> vct3D;
33 std::vector<CGUIFixedViewDeclaration*> vct3DPathEditor;
34 std::vector<CGUIFixedViewDeclaration*> vctSNAP;
35 std::vector<CGUIFixedViewDeclaration*> vctDrawing;
36 std::vector<CGUIFixedViewDeclaration*> vctNone;
37 }SFixedViewDeclarationGroups;
39 class FL_EXPORT CGUIManagerView :
public Base::CFLBase
42 CGUIManagerView(
const CGUIManagerView& rh);
45 virtual ~CGUIManagerView();
47 static const CResult CreateView(CGUIViewImageBase* pView, int32_t i32L, int32_t i32T, int32_t i32R, int32_t i32B,
size_t stParentWindowHandle);
48 static const CResult CreateViewImage(CGUIViewImage* pView, int32_t i32L, int32_t i32T, int32_t i32R, int32_t i32B,
size_t stParentWindowHandle);
49 static const CResult CreateViewGraph(CGUIViewGraph* pView, int32_t i32L, int32_t i32T, int32_t i32R, int32_t i32B,
size_t stParentWindowHandle);
50 static const CResult CreateView3D(CGUIView3D* pView, int32_t i32L, int32_t i32T, int32_t i32R, int32_t i32B,
size_t stParentWindowHandle);
51 static const CResult CreateView3DPathEditor(CGUIView3DPathEditor* pView, int32_t i32L, int32_t i32T, int32_t i32R, int32_t i32B,
size_t stParentWindowHandle);
52 static const CResult CreateViewDrawing(CGUIViewDrawing* pView, int32_t i32L, int32_t i32T, int32_t i32R, int32_t i32B,
size_t stParentWindowHandle);
54 static const CResult CloseView(CGUIViewImageBase* pView);
55 static const CResult DestroyView(CGUIViewImageBase* pView);
56 static const CResult DestroyAllViews();
58 static void RemoveViewThread(CUIThread* pThread);
60 static bool IsAvailableView(CGUIViewImageBase* pView);
62 static bool IsUsedUIMultiThread();
63 static void UseUIMultiThread(
bool bUse);
65 static void SetThumbnailDraggingMode(
bool bSet);
66 static bool IsThumbnailDraggingMode();
68 static void SetViewImageThumbnailDraggingSource(CGUIViewImage* pViewSource);
69 static CGUIViewImage* GetViewImageThumbnailDraggingSource();
71 static void SetThumbnailDraggingImageSource(Base::CFLImage* pFliSource, int32_t i32SelectedPageIndex = -1);
72 static void SetThumbnailDraggingImageSource(Base::CFLImage* pFliSource, Base::CFLArray<int32_t>& flaSelectedThumbnailIndex);
73 static const Base::CFLImage* GetThumbnailDraggingImageSource();
74 static void GetSelectedThumbnailIndex(Base::CFLArray<int32_t>& flaSelectedThumbnailIndex);
76 static void ShowHelpDialogViewImage(CGUIViewImage* pView);
77 static void ShowHelpDialogViewGraph(CGUIViewGraph* pView);
78 static void ShowHelpDialogView3D(CGUIView3D* pView);
79 static void ShowHelpDialogViewSNAP(CGUIViewSNAP* pView);
80 static void ShowHelpDialogViewDrawing(CGUIViewDrawing* pView);
81 static void ShowHelpDialogMainFrame(CGUIMainFrame* pMF);
83 static void InitializeClassContainer();
84 static std::string ExtractClassName(
const type_info& rhs);
85 static std::string ExtractClassNameWithNamespace(
const type_info& rhs);
86 static void CommonExtractClassName(std::string& strResult,
size_t stInitialPosition);
88 static bool AddMultiDocTemplate(UINT uIDResource, CRuntimeClass* pDoc, CRuntimeClass* pFrame, CRuntimeClass* pView);
89 static bool AddWindow(CDocument* pDoc, CFrameWnd* pFrame, CView* pView);
91 static bool DeleteWindow(CDocument* pDoc);
92 static bool DeleteWindow(CFrameWnd* pFrame);
93 static bool DeleteWindow(CView* pView);
95 static int64_t GetMultiDocTemplateCount();
97 static CMultiDocTemplate* GetMultiDocTemplate(
size_t stIndex);
98 static CMultiDocTemplate* GetMultiDocTemplate(std::string strMultiDocTemplateName);
100 static std::string GetMultiDocTemplateName(
size_t stIndex);
101 static std::string GetMultiDocTemplateName(CRuntimeClass* pDoc, CRuntimeClass* pFrame, CRuntimeClass* pView);
102 static std::string GetMultiDocTemplateName(CMultiDocTemplate* pMultiDocTemplate);
104 static size_t GetViewCount();
105 static CGUIViewBase* FindViewByIndex(
size_t stIndex);
106 static CGUIViewBase* FindViewByIndex(CRuntimeClass* pRtcView,
size_t stIndex);
107 static CGUIViewBase* FindViewByIndexDerivedFrom(CRuntimeClass* pRtcView,
size_t stIndex);
109 static CGUIViewBase* FindViewByViewNumber(
size_t stViewNumber);
110 static CGUIViewBase* FindViewByViewNumber(
const Base::CFLString<wchar_t>& strTitle);
111 static CGUIViewBase* FindViewByViewNumber(CRuntimeClass* pRtcView,
size_t stViewNumber);
112 static CGUIViewBase* FindViewByViewNumber(CRuntimeClass* pRtcView,
const Base::CFLString<wchar_t>& strTitle);
113 static CGUIViewBase* FindViewByViewNumberDerivedFrom(CRuntimeClass* pRtcView,
size_t stViewNumber);
114 static CGUIViewBase* FindViewByViewNumberDerivedFrom(CRuntimeClass* pRtcView,
const Base::CFLString<wchar_t>& strTitle);
116 static std::vector<CGUIViewBase*> FindView(
const Base::CFLString<wchar_t>& strTitle);
117 static std::vector<CGUIViewBase*> FindView(CRuntimeClass* pRtcView);
118 static std::vector<CGUIViewBase*> FindViewDerivedFrom(CRuntimeClass* pRtcView);
119 static std::vector<CGUIViewBase*> FindView(CRuntimeClass* pRtcView,
const Base::CFLString<wchar_t>& strTitle);
120 static std::vector<CGUIViewBase*> FindViewDerivedFrom(CRuntimeClass* pRtcView,
const Base::CFLString<wchar_t>& strTitle);
121 static std::vector<CGUIViewImage*> FindViewImage();
123 static const CResult FindView(
const Base::CFLString<wchar_t>& strTitle, std::vector<CGUIViewBase*>& vctResult);
124 static const CResult FindView(CRuntimeClass* pRtcView, std::vector<CGUIViewBase*>& vctResult);
125 static const CResult FindViewDerivedFrom(CRuntimeClass* pRtcView, std::vector<CGUIViewBase*>& vctResult);
126 static const CResult FindView(CRuntimeClass* pRtcView,
const Base::CFLString<wchar_t>& strTitle, std::vector<CGUIViewBase*>& vctResult);
127 static const CResult FindViewDerivedFrom(CRuntimeClass* pRtcView,
const Base::CFLString<wchar_t>& strTitle, std::vector<CGUIViewBase*>& vctResult);
128 static const CResult FindViewImage(std::vector<CGUIViewImage*>& vctResult);
130 static bool DoesViewImageExist();
131 static bool DoesViewGraphExist();
132 static bool DoesView3DExist();
133 static bool DoesView3DPathEditorExist();
134 static bool DoesViewDrawingExist();
135 static bool DoesViewSNAPExist();
137 static bool DoesVisibleViewImageExist();
138 static bool DoesVisibleViewGraphExist();
139 static bool DoesVisibleView3DExist();
140 static bool DoesVisibleView3DPathEditorExist();
141 static bool DoesVisibleViewDrawingExist();
142 static bool DoesVisibleViewSNAPExist();
146 static std::vector<CGUIViewBase*> FindViewAnyOf(
const Base::CFLString<wchar_t>& strTitle);
148 static CDocument* FindWindowVDocument(
size_t stIndex);
149 static std::vector<CDocument*> FindWindowVDocument(
const Base::CFLString<wchar_t>& strTitle);
150 static CFrameWnd* FindWindowFrame(
size_t stIndex);
151 static std::vector <CFrameWnd*> FindWindowFrame(
const Base::CFLString<wchar_t>& strTitle);
152 static CView* FindWindowView(
size_t stIndex);
153 static std::vector <CView*>FindWindowView(
const Base::CFLString<wchar_t>& strTitle);
156 static const CResult AddFixedViewDeclaration(CGUIFixedViewDeclaration* pFixedViewDeclaration);
157 static int64_t GetFixedViewDeclarationCount();
158 static int64_t GetFixedViewDeclarationIndex(
const CGUIFixedViewDeclaration* pFVD);
159 static const CResult RemoveFixedViewDeclaration(
size_t stIndex);
181 static const CResult RemoveFixedViewDeclaration(CGUIFixedViewDeclaration* pFixedViewDeclaration);
204 static const CResult RemoveFixedViewDeclarationIfUnused(CGUIFixedViewDeclaration* pFixedViewDeclaration);
229 static const CResult RemoveFixedViewDeclarationSafe(CGUIFixedViewDeclaration* pFixedViewDeclaration);
231 static const CResult ClearFixedViewDeclarationAll();
232 static CGUIFixedViewDeclaration* GetFixedViewDeclaration(int64_t i64Index);
234 static const CResult AddFixedViewPlacementSet(CGUIFixedViewPlacementSet& fvpSet,
bool bAddMenuItem =
true);
235 static const CResult AddFixedViewPlacementSet(CGUIFixedViewPlacementSet* pFvpSet,
bool bAddMenuItem =
true);
236 static const CResult RemoveFixedViewPlacementSet(
size_t stIndex);
237 static int64_t GetFixedViewPlacementSetCount();
238 static CGUIFixedViewPlacementSet* GetFixedViewPlacementSet(
size_t stIndex);
239 static CGUIFixedViewPlacementSet* GetFixedViewPlacementSet(
const Base::CFLString<wchar_t>& strFvpSetName);
240 static int64_t GetFixedViewPlacementSetIndex(
const CGUIFixedViewPlacementSet* pFvpSet);
242 static int64_t GetSelectedFixedViewPlacementSetIndex();
243 static CGUIFixedViewPlacementSet* GetSelectedFixedViewPlacementSet();
245 static bool SelectFixedViewPlacementSet(
const Base::CFLString<wchar_t>& strFvpSetName);
246 static bool SelectFixedViewPlacementSet(
size_t stIndex);
248 static const CResult CreateFixedView(
size_t stIndex,
bool bLoadFixedViewSetting =
true);
249 static bool RelocateFixedView();
274 static const CResult CollectFixedViewDeclarationsByType(SFixedViewDeclarationGroups& sFvdGroups);
276 static bool PreDestroyViewImage();
277 static bool PreDestroyViewGraph();
278 static bool PreDestroyView3D();
279 static bool PreDestroyView3DPathEditor();
280 static bool PreDestroyViewDrawing();
281 static bool PreDestroyViewSNAP();
282 static bool PreDestroyViewImageBase();
284 static void LButtonDownOnNcHitView(
const Base::TPoint<int>& tpScreen);
285 static void LButtonUpOnNcHitView(
const Base::TPoint<int>& tpScreen);
286 static void MouseMoveOnNcHitView(Base::TPoint<int>& tpScreen);
287 static bool InitializeLayoutGrip(CWnd* pWndParent);
288 static void HideLayoutGrip();
289 static void ViewNcHitTest(
const Base::TPoint<int>& tpScreen);
291 static bool IsInitialized();
293 static int64_t GetSNAPViewSerialNumber();
295 DeclareGetClassType();
298 static Foundation::CStencil* GetInternalStencilPtr();
299 static const CResult RemoveMismatchedFixedViewDeclarations(
const CGUIFixedViewPlacementSet* pFVPSet);
302 static bool Initialize();
303 static bool Terminate();
305 static bool CreateFixedView();
306 static bool ShowOnlySelectedFixedViews();
308 static void SetInitialize(
bool bSet);
310 virtual void OnReceiveBroadcast(
const Base::CBroadcastMessage* pMessage)
override;
311 static CGUIManagerView* GetObject();
314 CInternalViewManager* m_pInternal;
316 CGUIViewImage* m_pViewImageThumbnailDraggingSource;
317 Base::CFLImage* m_pFliThumbnailDraggingSource;
318 Base::CFLArray<int32_t> m_flaSelectedThumbnailIdx;
319 bool m_bThumbnailDraggingMode;
321 bool m_bUsedUIMultiThread;
322 std::map<CGUIViewImageBase*, CUIThread*>& m_mapThreads;
324 volatile bool m_bInitialized;
326 CGUIWndGrip* m_pLayoutGripVert;
327 CGUIWndGrip* m_pLayoutGripHorz;
328 Base::TPoint<int> m_tpScreenPrev;
329 Base::TRect<int> m_trScreenVertRect;
330 Base::TRect<int> m_trScreenHorzRect;
331 int32_t m_i32MFOffsetX;
332 int32_t m_i32MFOffsetY;
334 bool m_bHorzRectVisible;
335 bool m_bVertRectVisible;
336 bool m_bLButtonDownOnNcHitView;
338 std::vector<CMultiDocTemplate*>& m_vctMultiDocTemplates;
339 std::map<std::string, CMultiDocTemplate*>& m_mapMultiDocTemplates;
340 std::map<CMultiDocTemplate*, std::string>& m_mapMultiDocTemplatesReverse;
342 std::vector<CGUIFixedViewDeclaration*>& m_vctFixedViewDeclaration;
343 std::vector<CGUIFixedViewPlacementSet*>& m_vctFixedViewPlacementSet;
345 std::vector<CDocument*>& m_vctDoc;
346 std::vector<CFrameWnd*>& m_vctFrame;
347 std::vector<CView*>& m_vctView;
349 std::vector <CGUIChildFrameBase*>& m_vctFrameToResize;
350 std::set <int32_t>& m_setI32FrameX;
351 std::set <int32_t>& m_setI32FrameY;
353 size_t m_stSelectedPlacementSet;
355 friend class CGUIManager;
357 friend class CInternalViewManager;
358 friend class CGUIDialogCreateStencil;
359 friend class CGUIFixedViewPlacementSet;
3D 뷰 클래스
Definition GUIView3D.h:118
3D 경로 편집기 클래스
Definition GUIView3DPathEditor.h:29
도면 뷰 클래스
Definition GUIViewDrawing.h:52
그래프 뷰 클래스
Definition GUIViewGraph.h:45
뷰의 기반 클래스
Definition GUIViewImageBase.h:43
이미지 뷰 클래스
Definition GUIViewImage.h:319
SNAP 뷰 클래스
Definition GUIViewSNAP.h:35
Definition D2DObject.h:12