FLImaging 6.10.23.2
GUIMenuItemProperty.h
1#pragma once
2
10
11#include "GUIMenuItemBase.h"
12#include "GUIPropertyMessageBox.h"
13#include "GUIStaticText.h"
14#include "DefinitionsGUI.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, const CGUIPropertyItemBase* pItemBefore, bool bAdjustLayout = true);
474
490 virtual bool RemoveItem(CGUIPropertyItemBase* pItem, bool bAdjustLayout = true);
491
503 virtual const CResult UpdateProperty();
504
517
529 virtual bool BuildItems(CMFCPropertyGridCtrl* pCtrl);
530
540 virtual int64_t GetItemCount() const;
541
555 virtual int64_t GetItemCountByName(const Base::CFLString<wchar_t>& strName) const;
556
570 virtual CGUIPropertyItemBase* GetItem(int64_t i64Index) const;
571
591 virtual CGUIPropertyItemBase* FindItemByName(const Base::CFLString<wchar_t>& strName, bool bNocase = true, size_t stIndex = 0) const;
592
610 virtual CGUIPropertyItemBase* FindItemByFullPath(const Base::CFLString<wchar_t>& strFullPath, bool bNocase = true) const;
611
623 virtual CGUIPropertyItemBase* FindItemByHash(uint32_t u32Hash) const;
624
643 virtual std::vector<CGUIPropertyItemBase*> FindItemsByPath(const Base::CFLString<wchar_t>& strPath, bool bNocase = true) const;
644
667 virtual const CResult FindItemsByPath(const Base::CFLString<wchar_t>& strPath, std::vector<CGUIPropertyItemBase*>& vctItems, bool bNocase = true) const;
668
680 virtual int64_t GetPropertyItemFigureCount() const;
681
696
710 virtual bool AddButton(CGUIPropertyButton* pButton);
711
729 virtual bool SetShortcut(EKeyType eKeyType, CGUIPropertyButton* pButton);
730
742 std::vector<CGUIPropertyButton*>* GetPropertyButtons() const;
743
759 CGUIPropertyButton* FindPropertyButtonByName(const Base::CFLString<wchar_t>& strBtnName);
760
773 CGUIPropertyButton* FindPropertyButtonByIndex(int64_t i64Index);
774
784 void EnableStatusMessageBox(bool bEnable);
785
796
813
826
838 void SetMessageDisplayMode(EMessageDisplayMode eMessageDisplayMode = EMessageDisplayMode_NoScroll);
839
851 EMessageDisplayMode GetMessageDisplayMode() const;
852
864 virtual bool InitializePropertyPane(bool bLoad = true);
865
881 virtual bool InitializePropertyPaneStandalone(bool bLoad, CWnd* pParentWnd, CGUIDockablePaneHostFrame* pHostFrame = nullptr);
882
894 CGUIPaneProperties* GetPaneProperties() const;
895
911 virtual bool SetMenuItemRegistrationCallback(CGUIMenuItemRegistrationCallback* pFunc, bool bAutoDestroy = true);
912
924 virtual CGUIMenuItemRegistrationCallback* GetRegistrationCallback() const;
925
941 virtual bool SetMenuItemUnregistrationCallback(CGUIMenuItemUnregistrationCallback* pFunc, bool bAutoDestroy = true);
942
954 virtual CGUIMenuItemUnregistrationCallback* GetDestroyInstanceCallback() const;
955
965 virtual bool IsInitialized() const;
966
980 virtual bool DoesSameFullPathExist(const Base::CFLString<wchar_t>& flstrFullPath) const;
981
991 virtual bool CreateProperty();
992
1005
1019 virtual CGUIMenuItemProperty* GetChildInstanceAsMenuItemProperty(int32_t i32InstanceIdx) const;
1020
1033
1035
1048 virtual CGUIMenuItemBase* CreateChildInstance(int32_t i32InstanceIdx = -1) override;
1049
1063 virtual const CResult DeleteChildInstance(int32_t i32InstanceIndex) override;
1065
1081 virtual Base::CFLString<wchar_t> GetItemValue(CGUIPropertyItemBase* pItem) const;
1082
1098 virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedContextMenu);
1099
1109 void EnableOpenWindow(bool bEnable);
1110
1121
1131 virtual void SetGlobalModel(bool bSet);
1132
1142 virtual bool IsGlobalModel() const;
1143
1153 virtual void Enable(bool bEnable) override;
1154
1170 virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree) override;
1171
1183 virtual const CResult DeletePane();
1184
1196 virtual const CResult ClosePane();
1197
1207 virtual bool IsTerminateAppRequested() const;
1208
1218 virtual void RequestTerminateApp(bool bTerminate = true);
1219
1220 virtual Base::CFLString<wchar_t> GetPaneName();
1221
1222 virtual CGUIPaneBase* GetPane() const override;
1223
1224 virtual void SetDockDone(bool bSet);
1225 virtual bool IsDockDone() const;
1226
1227 /* Create Instance*/
1228 virtual CGUIMenuItemProperty* CreateInstance(int32_t i32InstanceIdx = -1);
1229 virtual CGUIMenuItemProperty* LoadToCreateInstance(int32_t i32InstanceIdx = -1);
1230
1231 virtual void UpdateChildProperty();
1232 virtual bool OnShortKeyDown(UINT uKeyType);
1233 virtual const CResult ActivateSelectedViewOfFirstViewList();
1234
1235 CGUIPropertyMessageBox* GetMessageBox() const;
1236
1237 virtual std::vector<CGUIPropertyItemBase*>& GetItems() const;
1238 virtual std::vector<CGUIPropertyButton*>& GetButtons() const;
1239
1240 virtual bool IsItemExist(const CGUIPropertyItemBase* pItem) const;
1241
1242 protected:
1243 virtual bool InternalLoad();
1244 virtual bool InternalSave() const;
1245
1246 virtual bool IsSNAPNodeProperty() const;
1247
1248 protected:
1249 bool m_bDockDone;
1250 /* Property Items*/
1251 std::vector<CGUIPropertyItemBase*>& m_vctItems;
1252 std::vector<CGUIPropertyItemViewImageFigure*>& m_vctPIViewImageFigure;
1253 std::map<uint32_t, CGUIPropertyItemBase*>& m_mapItems;
1254 std::map<EKeyType, CGUIPropertyButton*>& m_mapBtnShortcuts;
1255
1256 /* Buttons*/
1257 std::vector<CGUIPropertyButton*>& m_vctButtons;
1258
1259 /* Message box*/
1260 CGUIPropertyMessageBox* m_pStaticMessage;
1261 Base::CFLString<wchar_t> m_strMessage;
1262
1263 /* Property Pane*/
1264 CGUIPaneProperties* m_pProperties;
1265 bool m_bInitialized;
1266
1267 /* Create Instance*/
1268 bool m_bCreateControl;
1269
1270 CGUIMenuItemRegistrationCallback* m_pRegistrationCallback;
1271 bool m_bCreateCallbackAutoDestroy;
1272
1273 /* Destroy Instance*/
1274 CGUIMenuItemUnregistrationCallback* m_pDestroyInstanceCallback;
1275 bool m_bDestroyCallbackAutoDestroy;
1276
1277 bool m_bLoaded;
1278 bool m_bLoadingNow;
1279 bool m_bAutoLoad;
1280 bool m_bAutoSave;
1281 bool m_bActivateViewOnShowPane;
1282
1283 bool m_bEnableOpenWindow;
1284 bool m_bGlobalModel;
1285
1286 friend class CGUIPaneProperties;
1287 friend class CGUITabbedPane;
1288 friend class CGUIPropertyItemBase;
1289 friend class CGUIManager;
1290 friend class CGUIPaneMenu;
1291 friend class CGUIManagerPane;
1292 friend class CGUIMainFrame;
1293 friend class CGUIPaneFrameWnd;
1294 friend class CGUIPanePropertiesShell;
1295 friend class CGUIPropertyMenuSNAPView;
1296 friend class CGUIManagerModel;
1297 };
1298 }
1299}
1300
Template type 의 문자열 클래스
Definition FLString.h:34
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1631
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 const CResult UpdatePropertyAsync()
프로퍼티 그리드 화면을 갱신합니다. GetPaneProperties()->GetPropertyGridCtrl()->AdjustLayoutAsync(); 를 호출한 것과 동일한 동작을...
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 파일)을 제거합니다. 설정 파일 경로는 CGUIMenuItemProperty::GetFileName()를 호출하여 얻어 올 수 있습니다.
void SetMessageDisplayMode(EMessageDisplayMode eMessageDisplayMode=EMessageDisplayMode_NoScroll)
메시지 표시 모드를 설정합니다.
virtual void RequestTerminateApp(bool bTerminate=true)
프로그램 종료를 요청하거나 취소하는 함수
virtual bool DoesFileExist() const
현재 객체에 연결된 설정 파일이 존재하는지 확인합니다. 설정 파일 경로는 CGUIMenuItemProperty::GetFileName()를 호출하여 얻어 올 수 있습니다.
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
인스턴스 삭제 콜백 함수를 가져옵니다.
virtual bool InsertItem(CGUIPropertyItemBase *pItem, const CGUIPropertyItemBase *pItemBefore, bool bAdjustLayout=true)
아이템을 지정된 위치에 삽입하는 함수로, 이미 pItem 이 존재할 경우 삽입하지 않습니다.
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:345
UI 상의 프로퍼티 창에서 Figure 설정 시 사용되는 클래스
Definition GUIPropertyItemViewImageFigure.h:31
EAuthorityLevel
권한 레벨
Definition AuthorityManager.h:29
Definition D2DObject.h:12
EKeyType
키보드 입력값
Definition DefinitionsGUI.h:7269
EMenuItemPaneMenuTree
메뉴 트리의 메뉴 아이템
Definition DefinitionsGUI.h:9064