FLImaging 7.8.25.3
GUIDialogFreeDrawPenAttribute.h
1#pragma once
2#include "GUIDialog.h"
3
4namespace FLImaging
5{
6 namespace GUI
7 {
8 class CGUIManagerViewImageObject;
9 class CGUIManagerViewImageObjectImageFigure;
10 class CGUISheetInterface;
11 class CGUIColorPickerCtrl;
12 class CGUIViewImage;
13
14 class CGUIDialogFreeDrawPenAttribute : public CGUIDialog
15 {
16 DECLARE_DYNAMIC(CGUIDialogFreeDrawPenAttribute)
17 public:
18 CGUIDialogFreeDrawPenAttribute(CWnd* pParent = nullptr); // 표준 생성자입니다.
19 virtual ~CGUIDialogFreeDrawPenAttribute();
20
21 void SetParentView(CGUIViewImage* pView);
22 CGUIViewImage* GetParentView() const;
23
24 void SetManagerObjectFigure(CGUIManagerViewImageObject* pMgr);
25 CGUIManagerViewImageObject* GetManagerObjectFigure() const;
26
27 const CResult FillData();
28 const CResult AdjustLayoutSheet();
29 const CResult UpdateContents(ETeachingMode eTM);
30 const CResult UpdateRadioButtonByLineThickness(float f32LineThickness);
31
32 virtual void OnReceiveBroadcast(const Base::CBroadcastMessage* pMessage) override;
33 static CGUIDialogFreeDrawPenAttribute* CreateModelessDialog(CWnd* pParent = nullptr);
34
35 void SetCurrentClassNum(int32_t i32ClassNumber);
36 void SetCurrentLineThickness(ETeachingMode eTM, float f32LineThickness);
37
38 void UpdateObjectManagerCurrentFreeDrawClass(int32_t i32ClassNumber, const wchar_t* pWcsClassName);
39 void UpdateObjectManagerCurrentLineThickness(ETeachingMode eTM, float f32LineThickness);
40 void UpdateObjectManagerCurrentLineAlpha(ETeachingMode eTM, float f32Val);
41 void UpdateObjectManagerPenType(ETeachingMode eTM);
42 void UpdateEditCtrlClassNum(int32_t i32ClassNumber, bool bInvokeCallback);
43 void UpdateCurrentColorPreview();
44 void UpdateSliderLineThickness(float f32LineThickness, bool bInvokeCallback);
45 void UpdateEditCtrlLineThickness(float f32LineThickness, bool bInvokeCallback);
46 void UpdateEditCtrlLineAlpha(float f32LineAlpha, bool bInvokeCallback);
47 void UpdatePenTypeAndWidthBySelectedClass(int32_t i32ClassNumber);
48 void UpdateSheetLineThickness(int32_t i32ClassNumber, float f32LineThickness);
49 void UpdateSheetPenType(int32_t i32ClassNumber, ETeachingMode eTM);
50 void SelectSheetRow(int32_t i32Row);
51 void ActivateParentViewFreeDrawState();
52
53 CWndCtrlProcedure* MakeProcedureSliderLineThickness();
54 CWndCtrlProcedure* MakeProcedureSliderLineAlpha();
55 CWndCtrlProcedure* MakeProcedureRadioButtonPen();
56 CWndCtrlProcedure* MakeProcedureRadioButtonPolyline();
57 CWndCtrlProcedure* MakeProcedureRadioButtonEraser();
58 CWndCtrlProcedure* MakeProcedureRadioButtonContour();
59 CWndCtrlProcedure* MakeProcedureRadioButtonRaster();
60 CWndCtrlProcedure* MakeProcedureRadioButtonAutoMerge();
61 CWndCtrlProcedure* MakeProcedureRadioButtonIndependent();
62 CWndCtrlProcedure* MakeProcedureRadioButtonLineThickness();
63 CWndCtrlProcedure* MakeProcedureEditCtrlLineThickness();
64 CWndCtrlProcedure* MakeProcedureEditCtrlClassNumber();
65
66 protected:
67 // 대화 상자 데이터입니다.
68 #ifdef AFX_DESIGN_TIME
69 enum {
70 IDD = IDD_DIALOG_FREEDRAW_ATTR
71 };
72 #endif
73
74 enum ECol
75 {
76 ECol_No = 0,
77 ECol_Color,
78 ECol_ClassName,
79 ECol_PenWidth,
80 ECol_PenType,
81
82 ECol_Count,
83 };
84
85 protected:
86 CGUIViewImage* m_pParentView;
87 CGUIManagerViewImageObject* m_pMgrObjFigure;
88 CGUISheetInterface* m_pSheetInterface;
89 CGUIColorPickerCtrl* m_pColorPreview;
90 std::vector<CWnd*>& m_vctChildWnd;
91
92 int32_t m_i32MinWRadioContour;
93 int32_t m_i32MinWRadioRaster;
94 float m_f32MinWRadioContourRatio;
95 float m_f32MinWRadioRasterRatio;
96
97 int32_t m_i32MinWRadioAutoMerge;
98 int32_t m_i32MinWRadioIndependent;
99 float m_f32MinWRadioAutoMergeRatio;
100 float m_f32MinWRadioIndependentRatio;
101
102 int32_t m_i32MinWStaticClassNo;
103 int32_t m_i32MinWEditClassNo;
104 int32_t m_i32MinWColorPreview;
105 int32_t m_i32MinWStaticAlpha;
106 int32_t m_i32MinWSliderAlpha;
107 int32_t m_i32MinWEditAlpha;
108
109 float m_f32MinWStaticClassNoRatio;
110 float m_f32MinWEditClassNoRatio;
111 float m_f32MinWColorPreviewRatio;
112 float m_f32MinWStaticAlphaRatio;
113 float m_f32MinWSliderAlphaRatio;
114 float m_f32MinWEditAlphaRatio;
115
116 int32_t m_i32MinWRadioPenWidth3;
117 int32_t m_i32MinWRadioPenWidth5;
118 int32_t m_i32MinWRadioPenWidth10;
119 int32_t m_i32MinWRadioPenWidth50;
120 int32_t m_i32MinWRadioPenWidth100;
121 int32_t m_i32MinWSliderPenWidth;
122 int32_t m_i32MinWEditPenWidth;
123
124 float m_f32MinWRadioPenWidth3;
125 float m_f32MinWRadioPenWidth5;
126 float m_f32MinWRadioPenWidth10;
127 float m_f32MinWRadioPenWidth50;
128 float m_f32MinWRadioPenWidth100;
129 float m_f32MinWSliderPenWidth;
130 float m_f32MinWEditPenWidth;
131
132 int32_t m_i32MinWGroupBoxOutputMode;
133 int32_t m_i32MinWGroupBoxMergeMode;
134 int32_t m_i32MinWGroupBoxCurrClr;
135 int32_t m_i32MinWGroupBoxPenWidth;
136
137 CWndCtrlProcedure* m_pRadioBtnLineWidthProc;
138
139 public:
140 virtual BOOL OnInitDialog() override;
141 virtual void OnCancel() override;
142 DECLARE_MESSAGE_MAP()
143 afx_msg void OnSize(UINT nType, int cx, int cy);
144 afx_msg void OnNMSheetSelChanged(NMHDR* pNMHDR, LRESULT* pResult);
145 afx_msg void OnNMClick(NMHDR* pNMHDR, LRESULT* pResult);
146 afx_msg void OnEndSheetInPlaceEdit(NMHDR* pNMHDR, LRESULT* pResult);
147 virtual BOOL PreTranslateMessage(MSG* pMsg);
148 afx_msg void OnSetFocus(CWnd* pOldWnd);
149 };
150 }
151}
A file of dialog class.
Definition GUIDialog.h:72
A class of image view.
Definition GUIViewImage.h:360
Definition D2DObject.h:12
ETeachingMode
Teaching mode.
Definition DefinitionsGUI.h:9056