2#include "DefinitionsGUI.h"
10 typedef std::function<void(int32_t, int32_t)> CFLSheetProcedure;
11 #define MakeFLSheetProcedure [=](int32_t i32RowIndex, int32_t i32ColumnIndex) -> void
13 typedef std::function<void(int32_t, int32_t)> CFLSheetButtonClickProcedure;
14 #define MakeFLSheetButtonClickProcedure [=](int32_t i32RowIndex, int32_t i32ColumnIndex) -> void
16 class FL_EXPORT CGUISheetInterface
21 ETextAlignMask_Left = 0x00000000,
22 ETextAlignMask_Top = 0x00000000,
23 ETextAlignMask_HCenter = 0x00000001,
24 ETextAlignMask_Right = 0x00000002,
25 ETextAlignMask_VCenter = 0x00000004,
26 ETextAlignMask_Bottom = 0x00000008,
31 ETextAlign_Left_Top = ETextAlignMask_Left | ETextAlignMask_Top,
32 ETextAlign_Left_Center = ETextAlignMask_Left | ETextAlignMask_VCenter,
33 ETextAlign_Left_Bottom = ETextAlignMask_Left | ETextAlignMask_Bottom,
35 ETextAlign_Center_Top = ETextAlignMask_HCenter | ETextAlignMask_Top,
36 ETextAlign_Center_Center = ETextAlignMask_HCenter | ETextAlignMask_VCenter,
37 ETextAlign_Center_Bottom = ETextAlignMask_HCenter | ETextAlignMask_Bottom,
39 ETextAlign_Right_Top = ETextAlignMask_Right | ETextAlignMask_Top,
40 ETextAlign_Right_Center = ETextAlignMask_Right | ETextAlignMask_VCenter,
41 ETextAlign_Right_Bottom = ETextAlignMask_Right | ETextAlignMask_Bottom,
46 virtual ~CGUISheetInterface();
48 virtual const CResult CreateSheet(CRect rect, CWnd* pParent);
49 virtual const CResult
Clear();
51 virtual void MoveSheet(CRect rect);
52 virtual void Show(
bool bShow);
53 virtual bool IsVisible()
const;
55 virtual void EnableSortByHeaderClick(
bool bEnable);
56 virtual bool IsSortByHeaderClickEnabled()
const;
58 virtual const CResult SetHeader(
const Base::CFLArray<Base::CFLString<wchar_t>>& flaHeader);
59 virtual Base::CFLArray<Base::CFLString<wchar_t>> GetHeader()
const;
61 virtual const CResult ClearData();
62 virtual const CResult SetData(
const Base::CFLArray<Base::CFLArray<Base::CFLString<wchar_t>>>& flaData);
64 virtual const CResult AppendData(
const Base::CFLArray<Base::CFLArray<Base::CFLString<wchar_t>>>& flaData);
65 virtual const CResult AppendData(
const Base::CFLArray<Base::CFLString<wchar_t>>& flaData);
66 virtual const CResult SetDataAt(int32_t i32Row,
const Base::CFLArray<Base::CFLString<wchar_t>>& flaData);
68 virtual Base::CFLString<wchar_t> GetData(int64_t i64Row, int64_t i64Col)
const;
70 virtual const CResult ClearSelectedCell();
71 virtual const CResult SelectCell(int64_t i64Row, int64_t i64Col);
72 virtual const CResult SelectRows(Base::CFLArray<int64_t> flaRows);
73 virtual Base::CFLArray<int64_t> GetSelectedRows();
75 virtual void SetSingleRowSelection(
bool bSet);
76 virtual bool GetSingleRowSelection()
const;
78 virtual void SetEditable(
bool bEditable =
true);
79 virtual bool IsEditable()
const;
81 virtual void SetEditableOnlyFocusedCell(
bool bSet =
false);
82 virtual bool IsEditableOnlyFocusedCell()
const;
84 virtual CFLSheet* GetSheetPtr()
const;
85 virtual const Base::CFLBase* GetSheetBasePtr()
const;
86 virtual Base::CFLArray<Base::CFLString<wchar_t>>* GetHeaderPtr();
87 virtual Base::CFLArray<Base::CFLArray<Base::CFLString<wchar_t>>>* GetDataPtr();
91 virtual void UpdateSheetData();
93 virtual int32_t GetRowHeight(int32_t i32Row)
const;
94 virtual bool SetRowHeight(int32_t i32Row, int32_t i32Height);
95 virtual int32_t GetColumnWidth(int32_t i32Col)
const;
96 virtual bool SetColumnWidth(int32_t i32Col, int32_t i32Width);
98 virtual float GetRowHeightRatio(int32_t i32Row)
const;
99 virtual bool SetRowHeightRatio(int32_t i32Row,
float f32Height,
bool bUpdate =
false);
100 virtual float GetColumnWidthRatio(int32_t i32Col)
const;
101 virtual bool SetColumnWidthRatio(int32_t i32Col,
float f32Width,
bool bUpdate =
false);
103 virtual void AddNumericSortColumn(int64_t i64Column);
104 virtual void RemoveNumericSortColumn(int64_t i64Column);
105 virtual void ClearNumericSortColumn();
107 virtual void SetListMode(
bool bListMode =
false);
108 virtual bool IsListMode()
const;
110 virtual bool SetFixedRowCount(int32_t i32FixedRow = 1);
111 virtual int32_t GetFixedRowCount()
const;
112 virtual bool SetFixedColumnCount(int32_t i32FixedColumn = 1);
113 virtual int32_t GetFixedColumnCount()
const;
115 virtual ETextAlign GetCellTextAlign(int32_t i32Row, int32_t i32Col)
const;
116 virtual const CResult SetCellTextAlign(int32_t i32Row, int32_t i32Col, ETextAlign eAlign);
117 virtual const CResult SetRowTextAlign(int32_t i32Row, ETextAlign eAlign);
118 virtual const CResult SetColumnTextAlign(int32_t i32Col, ETextAlign eAlign);
119 virtual const CResult SetTextAlign(ETextAlign eAlign);
122 virtual const CResult SetCellStatus(int32_t i32Row, int32_t i32Col, EFLSheetCellStatus eStatus);
123 virtual const CResult SetRowCellStatus(int32_t i32Row, EFLSheetCellStatus eStatus);
124 virtual const CResult SetColumnCellStatus(int32_t i32Col, EFLSheetCellStatus eStatus);
126 virtual const CResult SetCellEditable(int32_t i32Row, int32_t i32Col,
bool bEditable);
127 virtual bool IsCellEditable(int32_t i32Row, int32_t i32Col)
const;
130 virtual const CResult SetCellType(int32_t i32Row, int32_t i32Col, EFLSheetCellType eType);
131 virtual const CResult SetRowCellType(int32_t i32Row, EFLSheetCellType eType);
132 virtual const CResult SetColumnCellType(int32_t i32Col, EFLSheetCellType eType);
134 virtual const CResult CopyRange(int32_t i32StartRow, int32_t i32StartCol, int32_t i32EndRow, int32_t i32EndCol);
135 virtual const CResult CopyRow(int32_t i32StartRow, int32_t i32EndRow);
136 virtual const CResult CopyColumn(int32_t i32StartCol, int32_t i32EndCol);
137 virtual const CResult
CopyAll();
139 virtual const CResult SetCellControlTypeEdit(int32_t i32Row, int32_t i32Col);
140 virtual const CResult SetCellControlTypeCheckBox(int32_t i32Row, int32_t i32Col,
bool bDisplayValue =
true, Base::CFLString<wchar_t> flsTrueValue = L
"", Base::CFLString<wchar_t> flsFalseValue = L
"");
142 virtual const CResult SetCellText(int32_t i32Row, int32_t i32Col,
const Base::CFLString<wchar_t>& flsText);
143 virtual Base::CFLString<wchar_t> GetCellText(int32_t i32Row, int32_t i32Col);
144 virtual const CResult SetCellCheck(int32_t i32Row, int32_t i32Col,
bool bCheck);
145 virtual bool GetCellCheck(int32_t i32Row, int32_t i32Col);
146 virtual const CResult SetCellCheckTrueFalseValue(int32_t i32Row, int32_t i32Col,
const Base::CFLString<wchar_t>& strTrue,
const Base::CFLString<wchar_t>& strFalse);
148 virtual const CResult AddComboBoxString(int32_t i32Row, int32_t i32Col,
const Base::CFLString<wchar_t>& str);
150 virtual const CResult ClearSpan();
151 virtual const CResult AddSpan(int32_t i32StartRow, int32_t i32StartCol, int32_t i32EndRow, int32_t i32EndCol);
152 virtual const CResult DeleteSpan(int32_t i32Row, int32_t i32Col);
154 virtual int32_t GetRowCount()
const;
155 virtual int32_t GetColumnCount()
const;
156 virtual void SetBreakRButtonUp(
bool bSet);
157 virtual void Refresh();
158 virtual BOOL DeleteRow(int32_t i32Row);
160 virtual const CResult ClearCellChangedProcedure();
161 virtual const CResult AddCellChangedProcedure(CFLSheetProcedure procCellChanged);
162 virtual CFLSheetProcedure GetCellChangedProcedure(int32_t i32Index)
const;
163 virtual const CResult RemoveCellChangedProcedure(int32_t i32Index);
165 virtual const CResult ClearButtonCellClickProcedure();
166 virtual const CResult SetButtonCellClickProcedure(int32_t i32Row, int32_t i32Col,
const CFLSheetButtonClickProcedure& procButtonClick);
167 virtual const CResult SetButtonCellClickProcedure(int32_t i32Row, int32_t i32Col,
const CFLSheetButtonClickProcedure* pProcButtonClick,
bool bAutoDestroy =
true);
168 virtual const CFLSheetButtonClickProcedure* GetButtonCellClickProcedure(int32_t i32Row, int32_t i32Col)
const;
169 virtual const CResult RemoveButtonCellClickProcedure(int32_t i32Row, int32_t i32Col);
171 virtual const CResult ClearSortPriority();
172 virtual const CResult SetSortPriority(
const Base::CFLArray<int32_t>& flaSortPriorityRowIndex);
173 virtual const Base::CFLArray<int32_t> GetSortPriority()
const;
175 virtual const CResult EnableColumnHeaderIfHeaderDataExists(
bool bEnable);
176 virtual bool IsColumnHeaderIfHeaderDataExistsEnabled()
const;
178 virtual const CResult EnableColumnHeaderIfHeaderDataEmpty(
bool bEnable);
179 virtual bool IsColumnHeaderIfHeaderDataEmptyEnabled()
const;
181 virtual const CResult SetExtraData(int32_t i32Row, int32_t i32Col,
void* pExtraData);
182 virtual void* GetExtraData(int32_t i32Row, int32_t i32Col)
const;
185 virtual const CResult InternalClearSheet();
186 virtual const CResult InternalSetData(
const Base::CFLArray<Base::CFLArray<Base::CFLString<wchar_t>>>& flaData);
187 virtual const CResult InternalInsertData(
const Base::CFLArray<Base::CFLArray<Base::CFLString<wchar_t>>>& flaData, int32_t i32Row);
188 virtual const CResult InternalAppendData(
const Base::CFLArray<Base::CFLArray<Base::CFLString<wchar_t>>>& flaData);
189 virtual const CResult InternalAppendData(
const Base::CFLArray<Base::CFLString<wchar_t>>& flaData);
191 virtual const CResult InternalSetDataAt(int32_t i32Row,
const Base::CFLArray<Base::CFLString<wchar_t>>& flaData);
193 virtual const CResult InternalAssignData(
const Base::CFLArray<Base::CFLArray<Base::CFLString<wchar_t>>>& flaData);
195 virtual const CResult InternalAlignData();
197 virtual const CResult InternalSetData(int32_t i32Row, int32_t i32Col,
const Base::CFLString<wchar_t>& flsData);
200 CFLSheet* m_pFlSheet;
201 Base::CFLArray<Base::CFLString<wchar_t>> m_flaHeader;
202 Base::CFLArray<Base::CFLArray<Base::CFLString<wchar_t>>> m_flaData;
203 std::map<int32_t, int32_t>& m_mapColWidth;
204 std::map<int32_t, int32_t>& m_mapRowHeight;
205 std::map<int32_t, float>& m_mapColWidthRatio;
206 std::map<int32_t, float>& m_mapRowHeightRatio;
210 bool m_bSortByHeaderClick;
211 mutable bool m_bEditable;
212 mutable bool m_bEditableOnlyFocusedCell;
213 mutable bool m_bListMode;
215 bool m_bColumnHeaderIfHeaderDataExists =
true;
216 bool m_bColumnHeaderIfHeaderDataEmpty =
false;
218 friend class CGUILayoutBase;
219 friend class CFLSheet;
Definition D2DObject.h:12
ESizeMode
Specifies how a UI element's size is determined.
Definition DefinitionsGUI.h:13004
EFLSheetCellStatus
Definition DefinitionsGUI.h:12236
EFLSheetCellType
Definition DefinitionsGUI.h:12334
@ Show
Show figure.
Definition DefinitionsGUIView3D.h:2962
@ Clear
Clear all the figure objects.
Definition DefinitionsGUI.h:2194
@ CopyAll
Menu item that copies all of the figures stored in the image.
Definition DefinitionsGUI.h:1520