FLImaging 6.5.8.1
GUILayoutBase.h
1#pragma once
2
3#include <vector>
4#include "GUIWndCtrlBase.h"
5#include "GUIEditCtrl.h"
6#include "GUIEditBase.h"
7#include "GUIDefinitions.h"
8#include "GUIGroupBox.h"
9
10// CGUIDialog 대화 상자
11namespace FLImaging
12{
13 namespace GUI
14 {
15 class CGUILayoutBase;
16 class CGUIBoxLayout;
17 class CGUIGridLayout;
18 class CGUIDialog;
19 class CGUIDialogFixedViewPlacementSet;
20 class CGUIDialogCreateImage;
21 class CGUIDialogGraphLoadCSV;
22 class CGUIGroupBox;
23 class CGUIDialogLayoutElement;
24 class CGUISheetInterface;
25
26 class FL_EXPORT CGUILayoutBase : public Base::CFLBase
27 {
28 friend class CGUIDialog;
29 friend class CGUIDialogKernel;
30 friend class CGUIDialogCreateImage;
31 friend class CGUIDialogGraphLoadCSV;
32
33 public:
34 CGUILayoutBase();
35 CGUILayoutBase(const CGUILayoutBase& rhs);
36 virtual ~CGUILayoutBase();
37
38 virtual bool IsEmpty();
39
40 virtual void SetSize(int32_t i32Width, int32_t i32Height);
41 virtual void SetWidth(int32_t i32Width);
42 virtual void SetHeight(int32_t i32Height);
43 virtual void GetSize(int32_t& i32Width, int32_t& i32Height)const;
44 virtual int32_t GetWidth()const;
45 virtual int32_t GetHeight()const;
46
47 virtual void SetIntervalSpacing(int32_t i32InternalSpacing);
48 virtual int32_t GetIntervalSpacing() const;
49
50 virtual bool SetVisible(bool bShow);
51 virtual bool IsVisible() const;
52
53 virtual bool SetFocusWnd(int32_t i32Idx);
54
55 virtual CWnd* GetCtrl(int32_t i32Idx);
56 virtual CGUILayoutBase* GetLayout(int32_t i32Idx);
57 virtual CGUISheetInterface* GetSheetInterface(int32_t i32Idx);
58
59 virtual bool SetCtrlValue(int32_t i32Idx, Base::CFLString<wchar_t> strEdit, bool bInvalidate = false, bool bExecuteCallback = true);
60 virtual bool SetCtrlValue(int32_t i32Idx, double f64Val, bool bInvalidate = false, bool bExecuteCallback = true);
61 virtual bool SetCtrlValue(int32_t i32Idx, int32_t i32Val, bool bInvalidate = false, bool bExecuteCallback = true);
62 virtual bool SetCtrlValue(int32_t i32Idx, int64_t i64Val, bool bInvalidate = false, bool bExecuteCallback = true);
63 virtual Base::CFLString<wchar_t> GetCtrlValue(int32_t i32Idx) const;
64 virtual Base::CFLString<wchar_t> GetCtrlValueFromWindow(int32_t i32Idx) const;
65
66 virtual bool SetWndCtrlProcedure(int32_t i32Idx, FLImaging::GUI::CWndCtrlProcedure* pFunc);
67
68 virtual void SetCtrlEnable(int32_t i32Idx, bool bEnable);
69 virtual bool IsCtrlEnabled(int32_t i32Idx) const;
70
71 virtual bool SetCtrlVisible(int32_t i32Idx, bool bShow);
72 virtual bool IsCtrlVisible(int32_t i32Idx) const;
73
74 virtual const CResult SetCtrlAlignment(int32_t i32Idx, EGUIAlignment eAlignment);
75 virtual EGUIAlignment GetCtrlAlignment(int32_t i32Idx) const;
76
77 virtual bool AddComboBoxItem(int32_t i32ComboBoxIdx, Base::CFLString<wchar_t> strItem);
78 virtual bool AddComboBoxItemRange(int32_t i32ComboBoxIdx, int32_t i32Min, int32_t i32Max);
79
80 virtual bool SetSliderRange(int32_t i32SliderIdx, int32_t i32Min, int32_t i32Max);
81 virtual bool SetSliderRange(int32_t i32SliderIdx, double f64Min, double f64Max);
82 virtual bool SetSliderUnit(int32_t i32SliderIdx, int32_t i32Unit);
83 virtual bool SetSliderUnit(int32_t i32SliderIdx, double f64Unit);
84 virtual bool SetSliderDecimalPlace(int32_t i32SliderIdx, uint8_t u8DecimalPlace);
85
86 // 이 레이아웃을 다이얼로그의 최대 너비 계산 시 제외하도록 설정하는 함수 (orientation = vertical 일 경우)
87 virtual void SetWidthCalculationExcluded(bool bExcluded);
88
89 // 이 레이아웃이 다이얼로그의 최대 너비 계산 시 제외되었는지 확인하는 함수 (orientation = vertical 일 경우)
90 bool IsWidthCalculationExcluded() const;
91
92 // 이 레이아웃을 다이얼로그의 최대 높이 계산 시 제외하도록 설정하는 함수 (orientation = horizontal 일 경우)
93 virtual void SetHeightCalculationExcluded(bool bExcluded);
94
95 // 이 레이아웃이 다이얼로그의 최대 높이 계산 시 제외되었는지 확인하는 함수 (orientation = horizontal 일 경우)
96 bool IsHeightCalculationExcluded() const;
97
98 virtual bool SaveCtrlValue();
99 DeclareGetClassType();
100
101 protected:
102
103 virtual bool CreateChildWnd(CGUIDialog* pParent, CDC* pDC);
104 virtual bool InternalCreateCtrl(int32_t i32Index, EControl eControl, Base::CFLString<wchar_t> strValue, CWnd* pWndCtrl);
105 virtual bool InternalCreateGroupBox(CGUIDialog* pParent);
106 virtual bool InternalCreateColorPickerCtrl(int32_t i32Index, CGUIDialog* pParent);
107 virtual bool InternalCreateStaticText(int32_t i32Index, CGUIDialog* pParent);
108 virtual bool InternalCreateEditCtrl(int32_t i32Index, CGUIDialog* pParent);
109 virtual bool InternalCreatePassword(int32_t i32Index, CGUIDialog* pParent);
110 virtual bool InternalCreateComboBox(int32_t i32Index, CGUIDialog* pParent);
111 virtual bool InternalCreateComboBoxEditable(int32_t i32Index, CGUIDialog* pParent);
112 virtual bool InternalCreateCheckBox(int32_t i32Index, CGUIDialog* pParent);
113 virtual bool InternalCreateListCtrl(int32_t i32Index, CGUIDialog* pParent);
114 virtual bool InternalCreateListCtrlMassive(int32_t i32Index, CGUIDialog* pParent);
115 virtual bool InternalCreateButton(int32_t i32Index, CGUIDialog* pParent);
116 virtual bool InternalCreateSlider(int32_t i32Index, CGUIDialog* pParent);
117 virtual bool InternalCreateSliderFloatingPoint(int32_t i32Index, CGUIDialog* pParent);
118 virtual bool InternalCreateProgressCtrl(int32_t i32Index, CGUIDialog* pParent);
119 virtual bool InternalCreateProgressCtrlFloatingPoint(int32_t i32Index, CGUIDialog* pParent);
120 virtual bool InternalCreateSheetInterface(int32_t i32Index, CWnd* pParent);
121 virtual bool InternalSetParent(CGUIDialog* pParent, CGUIDialogLayoutElement* pChildWnd);
122
123 virtual CSize GetGroupBoxTextExtent() const;
124 virtual CSize GetTextExtent(const Base::CFLString<wchar_t>& str, CDC* pDC, const CSize* pSizeDefault = nullptr) const;
125 virtual CSize GetMaxUnitTextExtent(CSize csMinimumExtent)const;
126 virtual bool InternalSetLayoutSize(int32_t i32Width, int32_t i32Height);
127 virtual bool CalcUnitTextExtent();
128 virtual bool CalcLayoutSize();
129
130 CGUIDialogLayoutElement* GetElement(int32_t i32Index) const;
131
132 public:
133 bool m_bShow;
134 bool m_bGroupBox;
135 bool m_bSetWidth;
136 bool m_bSetHeight;
137 bool m_bWidthCalculationExcluded;
138 bool m_bHeightCalculationExcluded;
139
140 CGUIGroupBox* m_pGroupBox;
141 Base::CFLString<wchar_t> m_strGroupBoxName;
142 uint32_t m_u32GroupBoxResourceId;
143
144 CSize m_csUnitSize;
145
146 int32_t m_i32L;
147 int32_t m_i32T;
148 int32_t m_i32W;
149 int32_t m_i32H;
150 int32_t m_i32WSet;
151 int32_t m_i32HSet;
152 int32_t m_i32IntervalSpacing;
153
154 protected:
155 CGUIDialog* m_pParent;
156 CGUILayoutBase* m_pParentLayout;
157
158 std::vector<CGUIDialogLayoutElement*>& m_vctElement;
159
160 int32_t m_i32VisibleCtrlCnt;
161 int32_t m_i32VisibleSpaceCnt;
162
163 friend class CGUIDialogFixedViewPlacementSet;
164 friend class CGUIGridLayout;
165 friend class CGUIBoxLayout;
166 friend class CGUIDialogProgress;
167 friend class CGUIDialogHelp;
168 friend class CGUIDialogImagePageList;
169 };
170 }
171}
EGUIAlignment
Alignment information.
Definition GUIDefinitions.h:9222