FLImaging 7.10.21.1
GUIDialogImageFigureAnnotation.h
1#pragma once
2#include "GUIDialog.h"
3#include <unordered_set>
4
5namespace FLImaging
6{
7 namespace GUI
8 {
9 class CGUISheetInterface;
10 class CGUIViewImage;
11 class CGUIManagerViewImageObject;
12 class CGUIManagerViewImageObjectImageFigure;
13 class CGUIViewImageObjectImageFigure;
14
15 class CGUIDialogImageFigureAnnotation : public CGUIDialog
16 {
17 DECLARE_DYNAMIC(CGUIDialogImageFigureAnnotation)
18 friend class CGUIViewImage;
19 public:
20 CGUIDialogImageFigureAnnotation(CWnd* pParent = nullptr); // 표준 생성자입니다.
21 virtual ~CGUIDialogImageFigureAnnotation();
22
23 void SetParentView(CGUIViewImage* pView);
24 CGUIViewImage* GetParentView() const;
25
26 void SetManagerObjectFigure(CGUIManagerViewImageObject* pMgr);
27 CGUIManagerViewImageObject* GetManagerObjectFigure() const;
28
29 void SetManagerImageFigure(CGUIManagerViewImageObjectImageFigure* pMgr);
30 CGUIManagerViewImageObjectImageFigure* GetManagerImageFigure() const;
31
32 const CResult FillData(const Base::CFLString<wchar_t>& strClassName);
33 const CResult InitialFillData();
34 const CResult AdjustLayoutSheet();
35
36 const CResult OnImageInfoChanged();
37 const CResult OnImageFigureChanged();
38 const CResult OnImageFigureLayerVisibleStatusChanged();
39 const CResult OnImageFigureClassVisibleStatusChanged(const Base::CFLString<wchar_t>& strClassName, bool bShow);
40
41 virtual void OnReceiveBroadcast(const Base::CBroadcastMessage* pMessage) override;
42 static CGUIDialogImageFigureAnnotation* CreateModelessDialog(CWnd* pParent = nullptr);
43
44 protected:
45 virtual BOOL PreTranslateMessage(MSG* pMsg);
46 void InternalGetSelectedPages(Base::CFLArray<int32_t>& flaPages) const;
47 EViewImageTargetPage GetSelectedTargetPage() const;
48 void BuildRow(CGUIViewImageObjectImageFigure* pImgFig, int32_t i32Page, bool bFigureLayerVisible, Base::CFLArray<Base::CFLArray<Base::CFLString<wchar_t>>>& flaData);
49 const CResult FillSheet(const Base::CFLString<wchar_t>& strClassName, const std::vector<CGUIViewImageObjectImageFigure*>& vctImgFigures);
50 void FillClassComboBox();
51
52 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
53 // 대화 상자 데이터입니다.
54 #ifdef AFX_DESIGN_TIME
55 enum {
56 IDD = IDD_DIALOG_IMGVIEW_ANNOTATION
57 };
58 #endif
59
60 enum ECol
61 {
62 ECol_Page = 0,
63 ECol_Index,
64 ECol_Show,
65 ECol_Color,
66 ECol_Name,
67 ECol_FigureString,
68
69 ECol_Count,
70 };
71
72 enum EAnnotationDirty : uint32_t
73 {
74 EAnnotationDirty_None = 0x00,
75 EAnnotationDirty_Rows = 0x01, // 도형 변경 -> 페이지 포함 여부 검사 후 갱신
76 EAnnotationDirty_Force = 0x02, // 무조건 갱신
77 };
78
79 protected:
80 CGUIViewImage* m_pParentView;
81 CGUIManagerViewImageObject* m_pMgrObjFigure;
82 CGUIManagerViewImageObjectImageFigure* m_pMgrImgFigure;
83 CGUISheetInterface* m_pSheetInterface;
84 std::vector<CWnd*>& m_vctChildWnd;
85 std::unordered_set<std::wstring>& m_setClassNames;
86 Base::CFLString<wchar_t> m_strSelectedClass;
87 bool m_bPageMoveFromOnNMSheetSelChanged;
88 uint32_t m_u32Dirty;
89 bool m_bUpdatePosted;
90
91 public:
92 virtual BOOL OnInitDialog() override;
93 virtual void OnCancel() override;
94 DECLARE_MESSAGE_MAP()
95 afx_msg void OnBnClickedButtonApply();
96 afx_msg void OnBnClickedButtonDelete();
97 afx_msg void OnSize(UINT nType, int cx, int cy);
98 afx_msg void OnCbnSelchangeComboPage();
99 afx_msg void OnCbnSelchangeComboClass();
100 afx_msg void OnEnKillfocusEditPage();
101 afx_msg void OnNMSheetSelChanged(NMHDR* pNMHDR, LRESULT* pResult);
102 afx_msg void OnNMClick(NMHDR* pNMHDR, LRESULT* pResult);
103 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
104 LRESULT OnUpdateContents(WPARAM wParam, LPARAM lParam);
105 void RequestUpdate(uint32_t u32Dirty);
106 };
107 }
108}
A file of dialog class.
Definition GUIDialog.h:72
A class of image view.
Definition FLImagingGUI/GUIViewImage.h:361
Definition D2DObject.h:12
EViewImageTargetPage
Definition FLImagingGUI/DefinitionsGUI.h:15190