FLImaging 7.4.28.2
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(int32_t i32LineThickness);
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, int32_t i32LineThickness);
37
38 void UpdateObjectManagerCurrentFreeDrawClass(int32_t i32ClassNumber, const wchar_t* pWcsClassName);
39 void UpdateObjectManagerCurrentLineThickness(ETeachingMode eTM, int32_t i32LineThickness);
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(int32_t i32LineThickness, bool bInvokeCallback);
45 void UpdateEditCtrlLineThickness(int32_t i32LineThickness, bool bInvokeCallback);
46 void UpdateEditCtrlLineAlpha(float f32LineAlpha, bool bInvokeCallback);
47 void UpdatePenTypeAndWidthBySelectedClass(int32_t i32ClassNumber);
48 void UpdateSheetLineThickness(int32_t i32ClassNumber, int32_t i32LineThickness);
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* MakeProcedureRadioButtonAutoMerge();
59 CWndCtrlProcedure* MakeProcedureRadioButtonIndependent();
60 CWndCtrlProcedure* MakeProcedureRadioButtonLineThickness();
61 CWndCtrlProcedure* MakeProcedureEditCtrlLineThickness();
62 CWndCtrlProcedure* MakeProcedureEditCtrlClassNumber();
63
64 protected:
65 // 대화 상자 데이터입니다.
66 #ifdef AFX_DESIGN_TIME
67 enum {
68 IDD = IDD_DIALOG_FREEDRAW_ATTR
69 };
70 #endif
71
72 enum ECol
73 {
74 ECol_No = 0,
75 ECol_Color,
76 ECol_ClassName,
77 ECol_PenWidth,
78 ECol_PenType,
79
80 ECol_Count,
81 };
82
83 protected:
84 CGUIViewImage* m_pParentView;
85 CGUIManagerViewImageObject* m_pMgrObjFigure;
86 CGUISheetInterface* m_pSheetInterface;
87 CGUIColorPickerCtrl* m_pColorPreview;
88 std::vector<CWnd*>& m_vctChildWnd;
89
90 int32_t m_i32MinWRadioAutoMerge;
91 int32_t m_i32MinWRadioIndependent;
92
93 float m_f32MinWRadioAutoMergeRatio;
94 float m_f32MinWRadioIndependentRatio;
95
96 int32_t m_i32MinWStaticClassNo;
97 int32_t m_i32MinWEditClassNo;
98 int32_t m_i32MinWColorPreview;
99 int32_t m_i32MinWStaticAlpha;
100 int32_t m_i32MinWSliderAlpha;
101 int32_t m_i32MinWEditAlpha;
102
103 float m_f32MinWStaticClassNoRatio;
104 float m_f32MinWEditClassNoRatio;
105 float m_f32MinWColorPreviewRatio;
106 float m_f32MinWStaticAlphaRatio;
107 float m_f32MinWSliderAlphaRatio;
108 float m_f32MinWEditAlphaRatio;
109
110 int32_t m_i32MinWRadioPenWidth3;
111 int32_t m_i32MinWRadioPenWidth5;
112 int32_t m_i32MinWRadioPenWidth10;
113 int32_t m_i32MinWRadioPenWidth50;
114 int32_t m_i32MinWRadioPenWidth100;
115 int32_t m_i32MinWSliderPenWidth;
116 int32_t m_i32MinWEditPenWidth;
117
118 float m_f32MinWRadioPenWidth3;
119 float m_f32MinWRadioPenWidth5;
120 float m_f32MinWRadioPenWidth10;
121 float m_f32MinWRadioPenWidth50;
122 float m_f32MinWRadioPenWidth100;
123 float m_f32MinWSliderPenWidth;
124 float m_f32MinWEditPenWidth;
125
126 int32_t m_i32MinWGroupBoxDrawMode;
127 int32_t m_i32MinWGroupBoxCurrClr;
128 int32_t m_i32MinWGroupBoxPenWidth;
129
130 CWndCtrlProcedure* m_pRadioBtnLineWidthProc;
131
132 public:
133 virtual BOOL OnInitDialog() override;
134 virtual void OnCancel() override;
135 DECLARE_MESSAGE_MAP()
136 afx_msg void OnSize(UINT nType, int cx, int cy);
137 afx_msg void OnNMSheetSelChanged(NMHDR* pNMHDR, LRESULT* pResult);
138 afx_msg void OnNMClick(NMHDR* pNMHDR, LRESULT* pResult);
139 afx_msg void OnEndSheetInPlaceEdit(NMHDR* pNMHDR, LRESULT* pResult);
140 virtual BOOL PreTranslateMessage(MSG* pMsg);
141 afx_msg void OnSetFocus(CWnd* pOldWnd);
142 };
143 }
144}
다이얼로그 클래스
Definition GUIDialog.h:72
이미지 뷰 클래스
Definition GUIViewImage.h:319
Definition D2DObject.h:12
ETeachingMode
뷰의 티칭 모드
Definition DefinitionsGUI.h:5888