10#include "GUIPaneCode.h"
11#include "GUIPaneProperties.h"
12#include "GUIPaneExampleSNAP.h"
13#include "GUIPaneColorTable.h"
14#include "GUIPaneViewGraph.h"
15#include "GUIPaneSheet.h"
16#include "GUIMenuBar.h"
17#include "DefinitionsGUI.h"
28 class FL_EXPORT CGUIMainFrame :
public CMDIFrameWndEx,
public Base::CFLBase
30 DECLARE_DYNAMIC(CGUIMainFrame)
33 CGUIMainFrame() noexcept;
34 CGUIMainFrame(const CGUIMainFrame& rh);
46 virtual
bool IsResizable() const;
57 virtual
void SetResizable(
bool bResizable = true);
70 virtual
void SetBackgroundImagePadding(int32_t i32PaddingX, int32_t i32PaddingY);
83 virtual
void GetBackgroundImagePadding(int32_t& i32PaddingX, int32_t& i32PaddingY) const;
96 virtual
void SetBackgroundImageIntervalSpacing(int32_t i32IntervalSpacingX, int32_t i32IntervalSpacingY);
109 virtual
void GetBackgroundImageIntervalSpacing(int32_t& i32IntervalSpacingX, int32_t& i32IntervalSpacingY) const;
120 virtual
void SetBackgroundColor(COLORREF clr);
131 virtual COLORREF GetBackgroundColor() const;
142 virtual
void SetBackgroundImage(const
wchar_t* pWcsImagePath);
155 virtual
void SetBackgroundImageLayout(EBackgroundImageLayout eMode = EBackgroundImageLayout_Tile);
168 virtual EBackgroundImageLayout GetBackgroundImageLayout() const;
179 virtual
void SetAppIcon(const
wchar_t* pWcsIconPath);
190 virtual
void SetMenuBarLogoImage(const
wchar_t* pWcsMenuBarLogoImagePath);
205 void EnableMenuBarButtons(
bool bMinimize = true,
bool bMaximize = true,
bool bClose = true);
216 void EnableMinimizeButton(
bool bEnable = true);
227 void EnableMaximizeButton(
bool bEnable = true);
238 void EnableCloseButton(
bool bEnable = true);
251 bool IsMinimizeButtonEnabled() const;
264 bool IsMaximizeButtonEnabled() const;
277 bool IsCloseButtonEnabled() const;
290 CGUIMenuBar* GetMenuBar();
303 CGUIPaneMenu* GetPaneMenu();
316 CGUIPaneExampleSNAP* GetPaneExampleSNAP();
329 CGUIPaneLog* GetPaneLog();
342 CGUIPaneCode* GetPaneCode();
355 CGUIPaneColorTable* GetPaneColorTable();
368 CGUIPaneViewGraph* GetPaneViewGraph();
381 CGUIPaneSheet* GetPaneSheet();
394 CGUIViewGraph* GetGraphViewInPane();
397 virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
398 virtual BOOL LoadFrame(UINT nIDResource, DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, CWnd* pParentWnd =
nullptr, CCreateContext* pContext =
nullptr);
401 CGUIPaneProperties* GetLastPaneProperties();
402 bool SetLastPaneProperties(CGUIPaneProperties* pPane);
404 virtual Base::CFLString<
wchar_t> GetTextInformationAbout() const;
405 virtual
void SetTextInformationAbout(const Base::CFLString<
wchar_t>& str);
406 virtual
void InitializeTextInformationAbout();
408 const CResult AddPane(CGUIPaneBase* pPane);
409 const CResult DeletePane(CGUIPaneBase* pPane);
411 void SetAppTheme(UINT nAppTheme);
413 void OnAppLook(UINT
id);
415 void SetViewBaseLastFocused(CGUIViewImageBase* pView);
416 CGUIViewImageBase* GetViewBaseLastFocused();
418 void SetMenuItemPropertyForActivateView(CGUIMenuItemProperty* pMIPActivateView);
420 bool IsSetRecalcLayout();
421 void SetRecalcLayout(
bool bSet);
422 void RecalcPaneSize();
423 std::vector<CGUIPaneProperties*>* GetVectorPaneProperties();
424 std::vector<CGUIPaneBase*>* GetVectorPanes();
426 const CResult ClearScreenSegmentationMode();
428 virtual
bool IsTerminateAppRequested() const;
429 virtual
void RequestTerminateApp(
bool bTerminate = true);
431 bool SwitchTabs(
bool bForwardDirection);
434 virtual ~CGUIMainFrame();
436 virtual void AssertValid()
const;
437 virtual void Dump(CDumpContext& dc)
const;
440 DeclareGetClassType();
445 CGUIMenuBar m_wndMenuBar;
446 CGUIPaneMenu m_wndPaneMenu;
447 CGUIPaneExampleSNAP m_wndPaneExampleSNAP;
448 CGUIPaneLog m_wndPaneLog;
449 CGUIPaneCode m_wndPaneCode;
450 CGUIPaneViewGraph m_wndPaneViewGraph;
451 CGUIPaneSheet m_wndPaneSheet;
452 CGUIPaneColorTable m_wndPaneColorTable;
454 CGUIViewImageBase* m_pViewBaseLastFocused;
455 CGUIPaneProperties* m_pLastPaneProperties;
456 CGUIMenuItemProperty* m_pMIPActivateView;
458 EScreenSegmentationMode m_eScreenSegmentationMode;
459 CRect m_rtSegmentationPrevWindow;
460 int32_t m_i32SegmentationPrevShowCmd;
462 std::vector<CGUIPaneBase*>& m_vctPPaneBase;
463 std::vector<CGUIPaneProperties*>& m_vctPPaneProperties;
466 CBitmap* m_pBmpBackground;
467 Base::TPoint<int32_t> m_tpBackgroundPicSize;
468 Base::TPoint<int32_t> m_tpBackgroundPadding;
469 Base::TPoint<int32_t> m_tpBackgroundIntervalSpacing;
470 COLORREF m_clrBackground;
472 Base::CFLString<wchar_t> m_strBackgroundImagePath;
473 bool m_bBackgroundImageDirty;
474 Base::CFLString<wchar_t> m_strAppIconPath;
475 bool m_bAppIconDirty;
478 Base::CFLString<wchar_t> m_strMenuBarLogoImagePath;
479 bool m_bMenuBarLogoImageDirty;
482 virtual bool IsCloseEnabled()
const;
483 virtual void SetCloseEnabled(
bool bEnable);
485 virtual void InitializeBackgroundImageConfigurations();
486 virtual const CResult InternalLoadBackgroundImage();
488 virtual void OnReceiveBroadcast(
const Base::CBroadcastMessage* pMessage)
override;
489 afx_msg
int OnCreate(LPCREATESTRUCT lpCreateStruct);
490 afx_msg LRESULT OnAfxWmPressCloseButton(WPARAM wParam, LPARAM lParam);
491 void OnUpdateAppLook(CCmdUI* pCmdUI);
493 const CPoint GetMinWindowSize()
const;
495 HMENU GetWindowMenuPopup(HMENU hMenuBar);
496 virtual void GetMessageString(UINT nID, Base::CFLString<wchar_t>& rMessage)
const;
498 bool MoveInsideMonitor();
500 static int32_t GetResizingPosition(
const CPoint& point, CWnd* pWnd,
float f32AddTolerance = 0.f);
501 static wchar_t* GetResizingMouseCursor(int32_t i32ResizingPosition);
503 const CResult RunPropertyShortKeyDown(UINT uiKey);
504 CDockingManager* GetDockingManagerPointer();
507 volatile bool m_bTerminateApp;
510 bool m_bAppTitleDirty;
512 bool m_bCloseMsgActivated;
513 mutable bool m_bResizable;
515 Foundation::CFLPoint<int32_t> m_pointPrev;
516 int32_t m_i32PaneWidth;
517 int32_t m_i32PaneHeight;
518 int32_t m_i32WidthLimit;
519 int32_t m_i32HeightLimit;
521 CRect m_rtResizingOrgWindow;
522 CRect m_rtMaximizedWindow;
524 Base::CFLString<wchar_t> m_strInformationAbout;
525 Base::EOperatingSystemType m_eOperatingSystemType;
527 friend class CGUIManagerView;
528 friend class CGUIManagerPane;
529 friend class CGUIManager;
530 friend class CGUIMenuBar;
531 friend class CGUIMainFrameTabCtrl;
532 friend class CGUIMenuItemProperty;
533 friend class CGUIViewImageLoaderImageBase;
534 friend class CGUIViewImageLoaderImageRaw;
535 friend class CGUIViewImageSaverImage;
536 friend class CGUIView3DLoaderBase;
538 DECLARE_MESSAGE_MAP()
540 afx_msg
void OnFileNew();
541 afx_msg
void OnUpdateFileNew(CCmdUI* pCmdUI);
543 afx_msg
void OnFileOpen();
544 afx_msg
void OnUpdateFileOpen(CCmdUI* pCmdUI);
546 afx_msg
void OnCheckForUpdates();
547 afx_msg
void OnUpdateCheckForUpdates(CCmdUI* pCmdUI);
549 afx_msg
void OnInformationAbout();
550 afx_msg
void OnUpdateInformationAbout(CCmdUI* pCmdUI);
552 afx_msg
void OnInformationHelp();
553 afx_msg
void OnInformationLicenseFeatures();
555 afx_msg
void OnFindMenu();
556 afx_msg
void OnUpdateSetFindMenu(CCmdUI* pCmdUI);
558 afx_msg
void OnSetMenuFont();
559 afx_msg
void OnUpdateSetMenuFont(CCmdUI* pCmdUI);
561 afx_msg
void OnSetPropertyFont();
562 afx_msg
void OnUpdateSetPropertyFont(CCmdUI* pCmdUI);
564 afx_msg
void OnSetLogFont();
565 afx_msg
void OnUpdateSetLogFont(CCmdUI* pCmdUI);
567 afx_msg
void OnSetCodeFont();
568 afx_msg
void OnUpdateSetCodeFont(CCmdUI* pCmdUI);
570 afx_msg
void OnSetDefaultFont();
571 afx_msg
void OnUpdateSetDefaultFont(CCmdUI* pCmdUI);
573 afx_msg
void OnSetExampleSNAPFont();
574 afx_msg
void OnUpdateSetExampleSNAPFont(CCmdUI* pCmdUI);
576 afx_msg
void OnPaneMenu();
577 afx_msg
void OnUpdatePaneMenu(CCmdUI* pCmdUI);
579 afx_msg
void OnPaneExampleSNAP();
580 afx_msg
void OnUpdatePaneExampleSNAP(CCmdUI* pCmdUI);
582 afx_msg
void OnPaneLog();
583 afx_msg
void OnUpdatePaneLog(CCmdUI* pCmdUI);
585 afx_msg
void OnPaneCode();
586 afx_msg
void OnUpdatePaneCode(CCmdUI* pCmdUI);
588 afx_msg
void OnPaneColorTable();
589 afx_msg
void OnUpdatePaneColorTable(CCmdUI* pCmdUI);
591 afx_msg
void OnPaneViewGraph();
592 afx_msg
void OnUpdatePaneViewGraph(CCmdUI* pCmdUI);
594 afx_msg
void OnPaneSheet();
595 afx_msg
void OnUpdatePaneSheet(CCmdUI* pCmdUI);
597 afx_msg
void OnUpdateGenerateExampleCode(CCmdUI* pCmdUI);
598 afx_msg
void OnGenerateExampleCode();
600 afx_msg
void OnUpdateMenuUser(CCmdUI* pCmdUI);
601 afx_msg
void OnMenuUser(UINT uID);
603 afx_msg
void OnUpdateSetTheme(CCmdUI* pCmdUI);
604 afx_msg
void OnSetTheme(UINT uID);
606 afx_msg
void OnSysCommand(UINT nID, LPARAM lParam);
607 void GetClientArea(CRect& rtArea);
608 BOOL OnEraseMDIClientBackground(CDC* pDC);
609 virtual BOOL OnCloseDockingPane(CDockablePane* pWnd);
610 virtual BOOL OnCloseMiniFrame(CPaneFrameWnd* pWnd);
611 virtual
void AdjustDockingLayout(HDWP hdwp = NULL);
612 virtual
void RecalcLayout(BOOL bNotify = TRUE);
613 afx_msg
void OnClose();
614 afx_msg UINT OnPowerBroadcast(UINT nPowerEvent, LPARAM nEventData);
615 afx_msg
void OnFileSave();
616 afx_msg
void OnUpdateFileSave(CCmdUI* pCmdUI);
617 afx_msg
void OnFileSaveAs();
618 afx_msg
void OnUpdateFileClose(CCmdUI* pCmdUI);
619 afx_msg
void OnAppExit();
620 afx_msg
void OnUpdateAppExit(CCmdUI* pCmdUI);
621 afx_msg LRESULT OnThemeChanged();
622 afx_msg
void OnSysColorChange();
623 afx_msg
void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
624 afx_msg LRESULT OnMessageRunOnMainThread(WPARAM wParam, LPARAM lParam);
625 afx_msg LRESULT OnMessageRunOnMainThreadPost(WPARAM wParam, LPARAM lParam);
626 afx_msg LRESULT OnMessageAppTitleChanged(WPARAM wParam, LPARAM lParam);
627 virtual BOOL PreTranslateMessage(MSG* pMsg);
628 afx_msg
void OnTimer(UINT_PTR nIDEvent);
629 afx_msg
void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp);
630 afx_msg BOOL OnNcActivate(BOOL bActive);
631 afx_msg BOOL OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct);
632 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
633 afx_msg
void OnNcPaint();
634 afx_msg
void OnDestroy();
635 virtual BOOL OnSetMenu(HMENU hmenu) override;
뷰의 기반 클래스
Definition GUIViewImageBase.h:43
Definition D2DObject.h:12
EBackgroundImageLayout
배경 이미지의 배치 방식에 대한 열거형
Definition DefinitionsGUI.h:12066