FLImaging 6.6.27.1
GUIMenuItemProperty.h
1#pragma once
2
10
11#include "GUIMenuItemBase.h"
12#include "GUIPropertyMessageBox.h"
13#include "GUIStaticText.h"
14#include "GUIDefinitions.h"
15#include <map>
16
18namespace FLImaging
19{
21 namespace GUI
22 {
23 class CGUIPaneProperties;
26 class CGUIPropertyButton;
27 class CGUIPropertyMessageBox;
28 class CGUIStaticText;
29 class CGUIDialogKernel;
30 class CGUIManager;
31 class CGUIPaneFrameWnd;
33
34 typedef std::function<const CResult(int32_t)> CGUIMenuItemRegistrationCallback;
35 #define MakeMenuItemRegistrationCallback [=](int32_t i32Index) -> const CResult
36
37 typedef std::function<const CResult(int32_t)> CGUIMenuItemUnregistrationCallback;
38 #define MakeMenuItemUnregistrationCallback [=](int32_t i32Index) -> const CResult
39
47 class FL_EXPORT CGUIMenuItemProperty : public CGUIMenuItemBase
48 {
49 public:
58
69
80
89
101 virtual const CResult PreDestroy() override;
102
110 virtual void Clear();
111
125 virtual const CResult Assign(const CGUIMenuItemProperty& rhs);
126
140 virtual const CResult Assign(const CGUIMenuItemProperty* pRhs);
141
176
211
221 virtual bool DoesFileExist() const;
222
232 virtual const CResult RemoveSettingFile() const;
233
243 virtual bool Load() override;
244
254 virtual bool IsLoaded() const;
255
269 virtual bool Load(CGUIDialogKernel* pKernel);
270
279 virtual bool Save() const override;
280
294 virtual bool Save(CGUIDialogKernel* pKernel) const;
295
305 virtual bool IsLoading() const;
306
316 virtual void EnableAutoLoad(bool bAutoLoad);
317
327 virtual bool IsAutoLoadEnabled() const;
328
338 virtual void EnableAutoSave(bool bAutoSave);
339
349 virtual bool IsAutoSaveEnabled() const;
350
360 virtual void SetCreateControl(bool bSet = true);
361
371 virtual bool IsCreateControl() const;
372
382 virtual void SetActivateViewOnShowPane(bool bActivate);
383
393 virtual bool DoesActivateViewOnShowPane() const;
394
404 virtual bool OnLButtonDoubleClick();
405
415 virtual bool OnRButtonClick();
416
426 virtual bool ShowPaneWindow();
427
437 virtual bool InitialDockPaneWindow();
438
454 virtual bool AddItem(CGUIPropertyItemBase* pItem, bool bAdjustLayout = true);
455
473 virtual bool InsertItem(CGUIPropertyItemBase* pItem, CGUIPropertyItemBase* pItemBefore, bool bAdjustLayout = true);
474
490 virtual bool RemoveItem(CGUIPropertyItemBase* pItem, bool bAdjustLayout = true);
491
503 virtual const CResult UpdateProperty();
504
516 virtual bool BuildItems(CMFCPropertyGridCtrl* pCtrl);
517
527 virtual int64_t GetItemCount() const;
528
542 virtual int64_t GetItemCountByName(const Base::CFLString<wchar_t>& strName) const;
543
557 virtual CGUIPropertyItemBase* GetItem(int64_t i64Index) const;
558
578 virtual CGUIPropertyItemBase* FindItemByName(const Base::CFLString<wchar_t>& strName, bool bNocase = true, size_t stIndex = 0) const;
579
597 virtual CGUIPropertyItemBase* FindItemByFullPath(const Base::CFLString<wchar_t>& strFullPath, bool bNocase = true) const;
598
610 virtual CGUIPropertyItemBase* FindItemByHash(uint32_t u32Hash) const;
611
630 virtual std::vector<CGUIPropertyItemBase*> FindItemsByPath(const Base::CFLString<wchar_t>& strPath, bool bNocase = true) const;
631
654 virtual const CResult FindItemsByPath(const Base::CFLString<wchar_t>& strPath, std::vector<CGUIPropertyItemBase*>& vctItems, bool bNocase = true) const;
655
667 virtual int64_t GetPropertyItemFigureCount() const;
668
683
697 virtual bool AddButton(CGUIPropertyButton* pButton);
698
716 virtual bool SetShortcut(EKeyType eKeyType, CGUIPropertyButton* pButton);
717
729 std::vector<CGUIPropertyButton*>* GetPropertyButtons() const;
730
746 CGUIPropertyButton* FindPropertyButtonByName(const Base::CFLString<wchar_t>& strBtnName);
747
760 CGUIPropertyButton* FindPropertyButtonByIndex(int64_t i64Index);
761
771 void EnableStatusMessageBox(bool bEnable);
772
783
800
813
825 void SetMessageDisplayMode(EMessageDisplayMode eMessageDisplayMode = EMessageDisplayMode_NoScroll);
826
838 EMessageDisplayMode GetMessageDisplayMode() const;
839
851 virtual bool InitializePropertyPane(bool bLoad = true);
852
868 virtual bool InitializePropertyPaneStandalone(bool bLoad, CWnd* pParentWnd, CGUIDockablePaneHostFrame* pHostFrame = nullptr);
869
881 CGUIPaneProperties* GetPaneProperties() const;
882
898 virtual bool SetMenuItemRegistrationCallback(CGUIMenuItemRegistrationCallback* pFunc, bool bAutoDestroy = true);
899
911 virtual CGUIMenuItemRegistrationCallback* GetRegistrationCallback() const;
912
928 virtual bool SetMenuItemUnregistrationCallback(CGUIMenuItemUnregistrationCallback* pFunc, bool bAutoDestroy = true);
929
941 virtual CGUIMenuItemUnregistrationCallback* GetDestroyInstanceCallback() const;
942
952 virtual bool IsInitialized() const;
953
967 virtual bool DoesSameFullPathExist(const Base::CFLString<wchar_t>& flstrFullPath) const;
968
978 virtual bool CreateProperty();
979
992
1006 virtual CGUIMenuItemProperty* GetChildInstanceAsMenuItemProperty(int32_t i32InstanceIdx) const;
1007
1020
1022
1035 virtual CGUIMenuItemBase* CreateChildInstance(int32_t i32InstanceIdx = -1) override;
1036
1050 virtual const CResult DeleteChildInstance(int32_t i32InstanceIndex) override;
1052
1068 virtual Base::CFLString<wchar_t> GetItemValue(CGUIPropertyItemBase* pItem) const;
1069
1085 virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedContextMenu);
1086
1096 void EnableOpenWindow(bool bEnable);
1097
1108
1118 virtual void SetGlobalModel(bool bSet);
1119
1129 virtual bool IsGlobalModel() const;
1130
1140 virtual void Enable(bool bEnable) override;
1141
1157 virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree) override;
1158
1170 virtual const CResult DeletePane();
1171
1183 virtual const CResult ClosePane();
1184
1194 virtual bool IsTerminateAppRequested() const;
1195
1205 virtual void RequestTerminateApp(bool bTerminate = true);
1206
1207 virtual Base::CFLString<wchar_t> GetPaneName();
1208
1209 virtual CGUIPaneBase* GetPane() const override;
1210
1211 virtual void SetDockDone(bool bSet);
1212 virtual bool IsDockDone() const;
1213
1214 /* Create Instance*/
1215 virtual CGUIMenuItemProperty* CreateInstance(int32_t i32InstanceIdx = -1);
1216 virtual CGUIMenuItemProperty* LoadToCreateInstance(int32_t i32InstanceIdx = -1);
1217
1218 virtual void UpdateChildProperty();
1219 virtual bool OnShortKeyDown(UINT uKeyType);
1220 virtual const CResult ActivateSelectedViewOfFirstViewList();
1221
1222 CGUIPropertyMessageBox* GetMessageBox() const;
1223
1224 virtual std::vector<CGUIPropertyItemBase*>& GetItems() const;
1225 virtual std::vector<CGUIPropertyButton*>& GetButtons() const;
1226
1227 virtual bool IsItemExist(const CGUIPropertyItemBase* pItem) const;
1228
1229 protected:
1230 virtual bool InternalLoad();
1231 virtual bool InternalSave() const;
1232
1233 protected:
1234 bool m_bDockDone;
1235 /* Property Items*/
1236 std::vector<CGUIPropertyItemBase*>& m_vctItems;
1237 std::vector<CGUIPropertyItemViewImageFigure*>& m_vctPIViewImageFigure;
1238 std::map<uint32_t, CGUIPropertyItemBase*>& m_mapItems;
1239 std::map<EKeyType, CGUIPropertyButton*>& m_mapBtnShortcuts;
1240
1241 /* Buttons*/
1242 std::vector<CGUIPropertyButton*>& m_vctButtons;
1243
1244 /* Message box*/
1245 CGUIPropertyMessageBox* m_pStaticMessage;
1246 Base::CFLString<wchar_t> m_strMessage;
1247
1248 /* Property Pane*/
1249 CGUIPaneProperties* m_pProperties;
1250 bool m_bInitialized;
1251
1252 /* Create Instance*/
1253 bool m_bCreateControl;
1254
1255 CGUIMenuItemRegistrationCallback* m_pRegistrationCallback;
1256 bool m_bCreateCallbackAutoDestroy;
1257
1258 /* Destroy Instance*/
1259 CGUIMenuItemUnregistrationCallback* m_pDestroyInstanceCallback;
1260 bool m_bDestroyCallbackAutoDestroy;
1261
1262 bool m_bLoaded;
1263 bool m_bLoadingNow;
1264 bool m_bAutoLoad;
1265 bool m_bAutoSave;
1266 bool m_bActivateViewOnShowPane;
1267
1268 bool m_bEnableOpenWindow;
1269 bool m_bGlobalModel;
1270
1271 friend class CGUIPaneProperties;
1272 friend class CGUITabbedPane;
1273 friend class CGUIPropertyItemBase;
1274 friend class CGUIManager;
1275 friend class CGUIPaneMenu;
1276 friend class CGUIManagerPane;
1277 friend class CGUIMainFrame;
1278 friend class CGUIPaneFrameWnd;
1279 friend class CGUIPanePropertiesShell;
1280 friend class CGUIPropertyMenuSNAPView;
1281 friend class CGUIManagerModel;
1282 };
1283 }
1284}
1285
Template type 의 문자열 클래스
Definition FLString.h:34
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1596
Definition GUIDialogKernel.h:51
GUIDockablePaneHostFrame 클래스
Definition GUIDockablePaneHostFrame.h:27
virtual Base::CFLString< wchar_t > GetItemValue(CGUIPropertyItemBase *pItem) const
항목의 값을 가져옵니다.
virtual CGUIPropertyItemBase * GetItem(int64_t i64Index) const
지정된 인덱스의 항목을 가져옵니다.
virtual int64_t GetPropertyItemFigureCount() const
CGUIPropertyItemViewImageFigure 개수를 얻어 옵니다.
virtual bool IsAutoLoadEnabled() const
프로퍼티 아이템들에 대해 자동 로드 기능이 활성화되어 있는지 확인합니다.
bool IsEnabledOpenWindow() const
창 열기 기능이 활성화되어 있는지 확인합니다.
virtual void Clear()
추가된 프로퍼티 아이템들을 모두 클리어합니다.
virtual const CResult Assign(const CGUIMenuItemProperty *pRhs)
포인터를 사용하여 다른 CGUIMenuItemProperty 객체로부터 속성을 할당합니다. 프로퍼티 아이템을 복사하려면 ConfigureMenu() 함수를 호출해야 합니다.
EMessageDisplayMode GetMessageDisplayMode() const
현재 메시지 표시 모드를 가져옵니다.
virtual bool AddItem(CGUIPropertyItemBase *pItem, bool bAdjustLayout=true)
프로퍼티 아이템을 CGUIPropertyGridCtrl 의 맨 끝에 추가하는 함수입니다.
virtual bool IsTerminateAppRequested() const
프로그램 종료 요청이 들어왔는지 여부를 반환하는 함수
virtual CGUIPropertyItemBase * FindItemByHash(uint32_t u32Hash) const
해시 값으로 항목을 찾습니다.
virtual void EnableAutoLoad(bool bAutoLoad)
프로퍼티 아이템들의 자동 로드 기능을 활성화 또는 비활성화합니다.
CGUIPropertyButton * FindPropertyButtonByName(const Base::CFLString< wchar_t > &strBtnName)
파라미터로 전달한 버튼 이름과 일치하는 CGUIPropertyButton 객체 포인터를 얻어 옵니다.
virtual const CResult UpdateProperty()
프로퍼티 그리드 화면을 갱신합니다. GetPaneProperties()->GetPropertyGridCtrl()->AdjustLayout(); 를 호출한 것과 동일한 동작을 합니다.
virtual bool OnRButtonClick()
오른쪽 버튼 클릭 이벤트를 처리합니다.
virtual bool Load() override
파일에서 프로퍼티 아이템의 값을 로드합니다.
virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedContextMenu)
팝업 메뉴 항목을 선택합니다.
void EnableStatusMessageBox(bool bEnable)
상태 메시지 상자를 활성화 또는 비활성화합니다.
virtual int64_t GetItemCount() const
프로퍼티 아이템 개수를 얻어 옵니다.
virtual const CResult Assign(const CGUIMenuItemProperty &rhs)
다른 CGUIMenuItemProperty 객체로부터 속성을 할당합니다. 프로퍼티 아이템을 복사하려면 ConfigureMenu() 함수를 호출해야 합니다.
virtual const CResult DeletePane()
속성 창을 삭제합니다.
virtual bool InitializePropertyPane(bool bLoad=true)
속성 창을 초기화합니다.
virtual bool RemoveItem(CGUIPropertyItemBase *pItem, bool bAdjustLayout=true)
프로퍼티 아이템을 제거하는 함수입니다.
virtual bool AddButton(CGUIPropertyButton *pButton)
CGUIPropertyButton 객체를 추가합니다.
virtual bool IsCreateControl() const
프로퍼티 그리드 컨트롤 생성 여부 플래그를 반환합니다.
virtual bool Load(CGUIDialogKernel *pKernel)
지정된 커널 다이얼로그에 커널 값을 로드합니다.
virtual CGUIPropertyItemViewImageFigure * GetPropertyItemFigure(int32_t i32Index) const
지정한 인덱스의 CGUIPropertyItemViewImageFigure 포인터를 얻어 옵니다.
void EnableOpenWindow(bool bEnable)
창 열기 기능을 활성화 또는 비활성화합니다.
virtual bool IsAutoSaveEnabled() const
프로퍼티 아이템들에 대해 자동 저장이 활성화되어 있는지 확인합니다.
CGUIMenuItemProperty()
CGUIMenuItemProperty의 기본 생성자입니다.
virtual void Enable(bool bEnable) override
메뉴 항목을 활성화 또는 비활성화합니다.
bool IsStatusMessageBoxEnabled() const
상태 메시지 상자가 활성화되어 있는지 확인합니다.
virtual CGUIMenuItemProperty * GetParentMultiInstanceMenuItemProperty() const
현재 객체가 자식 인스턴스일 경우, 부모 객체 포인터를 리턴합니다.
virtual bool Save(CGUIDialogKernel *pKernel) const
커널 다이얼로그의 값을 저장합니다.
virtual void SetGlobalModel(bool bSet)
글로벌 모델 플래그를 설정합니다.
virtual std::vector< CGUIPropertyItemBase * > FindItemsByPath(const Base::CFLString< wchar_t > &strPath, bool bNocase=true) const
Path 가 일치하는 아이템들을 얻어 옵니다.
virtual const CResult DeleteChildInstance(int32_t i32InstanceIndex) override
자식 인스턴스를 삭제합니다. 이 함수는 this가 다중 인스턴스 생성이 가능한 부모 아이템일 경우에만 동작합니다.
virtual void SetActivateViewOnShowPane(bool bActivate)
창을 표시할 때 뷰를 활성화할지 여부를 설정합니다.
virtual int64_t GetItemCountByName(const Base::CFLString< wchar_t > &strName) const
이름으로 항목의 수를 가져옵니다.
virtual const CResult FindItemsByPath(const Base::CFLString< wchar_t > &strPath, std::vector< CGUIPropertyItemBase * > &vctItems, bool bNocase=true) const
Path 가 일치하는 아이템들을 얻어 옵니다.
virtual bool BuildItems(CMFCPropertyGridCtrl *pCtrl)
프로퍼티 윈도우 초기화 작업을 수행하고 프로퍼티 창에 아이템을 추가하는 함수입니다.
const CResult SetStatusMessage(const Base::CFLString< wchar_t > &strMessage)
표시할 상태 메시지를 설정합니다.
virtual void SetCreateControl(bool bSet=true)
프로퍼티 그리드 컨트롤 생성 여부 플래그를 설정합니다.
virtual bool InsertItem(CGUIPropertyItemBase *pItem, CGUIPropertyItemBase *pItemBefore, bool bAdjustLayout=true)
아이템을 지정된 위치에 삽입하는 함수로, 이미 pItem 이 존재할 경우 삽입하지 않습니다.
virtual bool SetShortcut(EKeyType eKeyType, CGUIPropertyButton *pButton)
CGUIPropertyButton 클릭 동작을 수행할 단축키를 지정합니다.
virtual Base::CFLString< wchar_t > GetFileName() const
현재 객체에 연결된 INI 파일 경로를 리턴합니다.
virtual CGUIMenuItemBase * CreateChildInstance(int32_t i32InstanceIdx=-1) override
this가 다중 인스턴스 생성 가능한 부모일 경우, 새로운 자식 인스턴스를 생성합니다. i32InstanceIdx가 -1로 설정된 경우, 인스턴스는 자동으로 할당된 인덱스로 생성됩니...
CGUIMenuItemProperty(const CGUIMenuItemProperty *pRhs)
포인터를 사용한 CGUIMenuItemProperty의 복사 생성자입니다.
virtual bool ShowPaneWindow()
창을 표시합니다.
virtual Base::CFLString< wchar_t > GetChildInstanceIndexAsString() const
자식 인스턴스 번호를 가져옵니다. 쉼표로 구분한 문자열을 리턴합니다. 예를 들어 자식 인스턴스의 번호가 [1], [4], [5] 일 경우"1,4,5" 를 리턴합니다.
virtual ~CGUIMenuItemProperty()
CGUIMenuItemProperty의 소멸자입니다.
virtual bool DoesSameFullPathExist(const Base::CFLString< wchar_t > &flstrFullPath) const
동일한 전체 경로를 가진 항목이 존재하는지 확인합니다.
CGUIPropertyButton * FindPropertyButtonByIndex(int64_t i64Index)
파라미터로 전달한 인덱스에 해당하는 CGUIPropertyButton 객체 포인터를 얻어 옵니다.
virtual bool IsInitialized() const
메뉴 항목이 초기화되었는지 확인합니다.
virtual CGUIPropertyItemBase * FindItemByName(const Base::CFLString< wchar_t > &strName, bool bNocase=true, size_t stIndex=0) const
이름으로 항목을 찾습니다.
virtual Base::CFLString< wchar_t > GetDirPath() const
현재 객체에 연결된 디렉터리 경로를 가져옵니다.
virtual bool OnLButtonDoubleClick()
왼쪽 버튼 더블 클릭 이벤트를 처리합니다.
virtual const CResult RemoveSettingFile() const
이 객체에 연결된 설정 파일(예: .ini 파일)을 제거합니다.
void SetMessageDisplayMode(EMessageDisplayMode eMessageDisplayMode=EMessageDisplayMode_NoScroll)
메시지 표시 모드를 설정합니다.
virtual void RequestTerminateApp(bool bTerminate=true)
프로그램 종료를 요청하거나 취소하는 함수
virtual bool DoesFileExist() const
현재 객체에 연결된 파일이 존재하는지 확인합니다.
CGUIPaneProperties * GetPaneProperties() const
창 속성을 가져옵니다.
virtual bool IsGlobalModel() const
글로벌 모델 여부를 리턴합니다.
virtual const CResult ClosePane()
속성 창을 닫습니다.
std::vector< CGUIPropertyButton * > * GetPropertyButtons() const
추가한 CGUIPropertyButton 이 담긴 벡터 포인터를 얻어 옵니다.
virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree) override
컨텍스트 메뉴의 최소 권한 수준을 설정합니다.
virtual bool DoesActivateViewOnShowPane() const
창을 표시할 때 뷰가 활성화되는지 확인합니다.
virtual CGUIMenuItemProperty * GetChildInstanceAsMenuItemProperty(int32_t i32InstanceIdx) const
자식 인스턴스를 인덱스로 가져옵니다.
virtual bool SetMenuItemRegistrationCallback(CGUIMenuItemRegistrationCallback *pFunc, bool bAutoDestroy=true)
메뉴 항목 등록 콜백을 설정합니다.
virtual bool IsLoaded() const
파일에서 프로퍼티 아이템의 값이 로드되었는지 확인합니다.
virtual bool IsLoading() const
현재 로드 중인지 확인합니다.
virtual CGUIPropertyItemBase * FindItemByFullPath(const Base::CFLString< wchar_t > &strFullPath, bool bNocase=true) const
전체 경로로 항목을 찾습니다.
CGUIMenuItemProperty(const CGUIMenuItemProperty &rhs)
CGUIMenuItemProperty의 복사 생성자입니다.
virtual bool Save() const override
파일에 프로퍼티 아이템의 값을 저장합니다.
virtual bool CreateProperty()
속성을 생성합니다.
virtual bool SetMenuItemUnregistrationCallback(CGUIMenuItemUnregistrationCallback *pFunc, bool bAutoDestroy=true)
메뉴 항목 등록 해제 콜백을 설정합니다.
virtual bool InitializePropertyPaneStandalone(bool bLoad, CWnd *pParentWnd, CGUIDockablePaneHostFrame *pHostFrame=nullptr)
독립 실행형(단독 DLL 실행 환경에서 실행될 경우) 속성 창을 초기화합니다.
virtual CGUIMenuItemUnregistrationCallback * GetDestroyInstanceCallback() const
인스턴스 삭제 콜백 함수를 가져옵니다.
Base::CFLString< wchar_t > GetStatusMessage() const
현재 상태 메시지를 가져옵니다.
virtual const CResult PreDestroy() override
객체가 파괴되기 전에 정리 작업을 수행합니다.
virtual bool InitialDockPaneWindow()
Pane 창을 처음으로 도킹합니다.
virtual void EnableAutoSave(bool bAutoSave)
프로퍼티 아이템들의 자동 저장 기능을 활성화 또는 비활성화합니다. 활성화 되어 있는 경우, 프로퍼티 아이템들의 값에 변경이 발생할 때마다 저장이 됩니다.
virtual CGUIMenuItemRegistrationCallback * GetRegistrationCallback() const
등록 콜백 함수를 가져옵니다.
프로퍼티 아이템 베이스 클래스
Definition GUIPropertyItemBase.h:37
UI 상의 프로퍼티 창에서 Figure 설정 시 사용되는 클래스
Definition GUIPropertyItemViewImageFigure.h:31
EAuthorityLevel
권한 레벨
Definition AuthorityManager.h:29
Definition D2DObject.h:12
EMenuItemPaneMenuTree
메뉴 트리의 메뉴 아이템
Definition GUIDefinitions.h:8963
EKeyType
키보드 입력값
Definition GUIDefinitions.h:7184