FLImaging 6.5.8.1
GUIMenuItemProperty.h
1#pragma once
2
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;
24 class CGUIPropertyItemBase;
25 class CGUIPropertyItemViewImageFigure;
26 class CGUIPropertyButton;
27 class CGUIPropertyMessageBox;
28 class CGUIStaticText;
29 class CGUIDialogKernel;
30 class CGUIManager;
31 class CGUIPaneFrameWnd;
32 class CGUIDockablePaneHostFrame;
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
154
167
177 virtual bool DoesFileExist();
178
188 virtual bool Load() override;
189
199 virtual bool IsLoaded() const;
200
214 virtual bool Load(CGUIDialogKernel* pKernel);
215
224 virtual bool Save() const override;
225
239 virtual bool Save(CGUIDialogKernel* pKernel) const;
240
250 virtual bool IsLoading() const;
251
261 virtual void EnableAutoLoad(bool bAutoLoad);
262
272 virtual bool IsAutoLoadEnabled() const;
273
283 virtual void EnableAutoSave(bool bAutoSave);
284
294 virtual bool IsAutoSaveEnabled() const;
295
305 virtual void SetCreateControl(bool bSet = true);
306
316 virtual bool IsCreateControl() const;
317
327 virtual void SetActivateViewOnShowPane(bool bActivate);
328
338 virtual bool DoesActivateViewOnShowPane() const;
339
349 virtual bool OnLButtonDoubleClick();
350
360 virtual bool OnRButtonClick();
361
371 virtual bool ShowPaneWindow();
372
382 virtual bool InitialDockPaneWindow();
383
399 virtual bool AddItem(CGUIPropertyItemBase* pItem, bool bAdjustLayout = true);
400
418 virtual bool InsertItem(CGUIPropertyItemBase* pItem, CGUIPropertyItemBase* pItemBefore, bool bAdjustLayout = true);
419
435 virtual bool RemoveItem(CGUIPropertyItemBase* pItem, bool bAdjustLayout = true);
436
448 virtual const CResult UpdateProperty();
449
461 virtual bool BuildItems(CMFCPropertyGridCtrl* pCtrl);
462
472 virtual int64_t GetItemCount() const;
473
487 virtual int64_t GetItemCountByName(const Base::CFLString<wchar_t>& strName) const;
488
502 virtual CGUIPropertyItemBase* GetItem(int64_t i64Index) const;
503
523 virtual CGUIPropertyItemBase* FindItemByName(const Base::CFLString<wchar_t>& strName, bool bNocase = true, size_t stIndex = 0) const;
524
542 virtual CGUIPropertyItemBase* FindItemByFullPath(const Base::CFLString<wchar_t>& strFullPath, bool bNocase = true) const;
543
555 virtual CGUIPropertyItemBase* FindItemByHash(uint32_t u32Hash) const;
556
575 virtual std::vector<CGUIPropertyItemBase*> FindItemsByPath(const Base::CFLString<wchar_t>& strPath, bool bNocase = true) const;
576
599 virtual const CResult FindItemsByPath(const Base::CFLString<wchar_t>& strPath, std::vector<CGUIPropertyItemBase*>& vctItems, bool bNocase = true) const;
600
612 virtual int64_t GetPropertyItemFigureCount() const;
613
628
642 virtual bool AddButton(CGUIPropertyButton* pButton);
643
661 virtual bool SetShortcut(EKeyType eKeyType, CGUIPropertyButton* pButton);
662
674 std::vector<CGUIPropertyButton*>* GetPropertyButtons() const;
675
691 CGUIPropertyButton* FindPropertyButtonByName(const Base::CFLString<wchar_t>& strBtnName);
692
705 CGUIPropertyButton* FindPropertyButtonByIndex(int64_t i64Index);
706
716 void EnableStatusMessageBox(bool bEnable);
717
728
745
758
770 void SetMessageDisplayMode(EMessageDisplayMode eMessageDisplayMode = EMessageDisplayMode_NoScroll);
771
783 EMessageDisplayMode GetMessageDisplayMode() const;
784
796 virtual bool InitializePropertyPane(bool bLoad = true);
797
813 virtual bool InitializePropertyPaneStandalone(bool bLoad, CWnd* pParentWnd, CGUIDockablePaneHostFrame* pHostFrame = nullptr);
814
826 CGUIPaneProperties* GetPaneProperties() const;
827
843 virtual bool SetMenuItemRegistrationCallback(CGUIMenuItemRegistrationCallback* pFunc, bool bAutoDestroy = true);
844
856 virtual CGUIMenuItemRegistrationCallback* GetRegistrationCallback() const;
857
873 virtual bool SetMenuItemUnregistrationCallback(CGUIMenuItemUnregistrationCallback* pFunc, bool bAutoDestroy = true);
874
886 virtual CGUIMenuItemUnregistrationCallback* GetDestroyInstanceCallback() const;
887
897 virtual bool IsInitialized() const;
898
912 virtual bool DoesSameFullPathExist(const Base::CFLString<wchar_t>& flstrFullPath) const;
913
923 virtual bool CreateProperty();
924
937
951 virtual CGUIMenuItemProperty* GetChildInstanceAsMenuItemProperty(int32_t i32InstanceIdx) const;
952
965
967
980 virtual CGUIMenuItemBase* CreateChildInstance(int32_t i32InstanceIdx = -1) override;
981
995 virtual const CResult DeleteChildInstance(int32_t i32InstanceIndex) override;
997
1014
1030 virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedContextMenu);
1031
1041 void EnableOpenWindow(bool bEnable);
1042
1053
1063 virtual void SetGlobalModel(bool bSet);
1064
1074 virtual bool IsGlobalModel() const;
1075
1085 virtual void Enable(bool bEnable) override;
1086
1102 virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree) override;
1103
1115 virtual const CResult DeletePane();
1116
1128 virtual const CResult ClosePane();
1129
1139 virtual bool IsTerminateAppRequested() const;
1140
1150 virtual void RequestTerminateApp(bool bTerminate = true);
1151
1152 virtual Base::CFLString<wchar_t> GetPaneName();
1153
1154 virtual CGUIPaneBase* GetPane() const override;
1155
1156 virtual void SetDockDone(bool bSet);
1157 virtual bool IsDockDone() const;
1158
1159 /* Create Instance*/
1160 virtual CGUIMenuItemProperty* CreateInstance(int32_t i32InstanceIdx = -1);
1161 virtual CGUIMenuItemProperty* LoadToCreateInstance(int32_t i32InstanceIdx = -1);
1162
1163 virtual void UpdateChildProperty();
1164 virtual bool OnShortKeyDown(UINT uKeyType);
1165 virtual const CResult ActivateSelectedViewOfFirstViewList();
1166
1167 CGUIPropertyMessageBox* GetMessageBox() const;
1168
1169 virtual std::vector<CGUIPropertyItemBase*>& GetItems() const;
1170 virtual std::vector<CGUIPropertyButton*>& GetButtons() const;
1171
1172 protected:
1173 virtual bool InternalLoad();
1174 virtual bool InternalSave() const;
1175
1176 protected:
1177 bool m_bDockDone;
1178 /* Property Items*/
1179 std::vector<CGUIPropertyItemBase*>& m_vctItems;
1180 std::vector<CGUIPropertyItemViewImageFigure*>& m_vctPIViewImageFigure;
1181 std::map<uint32_t, CGUIPropertyItemBase*>& m_mapItems;
1182 std::map<EKeyType, CGUIPropertyButton*>& m_mapBtnShortcuts;
1183
1184 /* Buttons*/
1185 std::vector<CGUIPropertyButton*>& m_vctButtons;
1186
1187 /* Message box*/
1188 CGUIPropertyMessageBox* m_pStaticMessage;
1189 Base::CFLString<wchar_t> m_strMessage;
1190
1191 /* Property Pane*/
1192 CGUIPaneProperties* m_pProperties;
1193 bool m_bInitialized;
1194
1195 /* Create Instance*/
1196 bool m_bCreateControl;
1197
1198 CGUIMenuItemRegistrationCallback* m_pRegistrationCallback;
1199 bool m_bCreateCallbackAutoDestroy;
1200
1201 /* Destroy Instance*/
1202 CGUIMenuItemUnregistrationCallback* m_pDestroyInstanceCallback;
1203 bool m_bDestroyCallbackAutoDestroy;
1204
1205 bool m_bLoaded;
1206 bool m_bLoadingNow;
1207 bool m_bAutoLoad;
1208 bool m_bAutoSave;
1209 bool m_bActivateViewOnShowPane;
1210
1211 bool m_bEnableOpenWindow;
1212 bool m_bGlobalModel;
1213
1214 friend class CGUIPaneProperties;
1215 friend class CGUITabbedPane;
1216 friend class CGUIPropertyItemBase;
1217 friend class CGUIManager;
1218 friend class CGUIPaneMenu;
1219 friend class CGUIManagerPane;
1220 friend class CGUIMainFrame;
1221 friend class CGUIPaneFrameWnd;
1222 friend class CGUIPanePropertiesShell;
1223 friend class CGUIPropertyMenuSNAPView;
1224 friend class CGUIManagerModel;
1225 };
1226 }
1227}
1228
Template type 의 문자열 클래스
Definition INIUtilities.h:20
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1514
Definition GUIDialogKernel.h:51
GUIDockablePaneHostFrame 클래스
Definition GUIDockablePaneHostFrame.h:27
GUI 모델 매니저 클래스로, 모델 데이터와 관련된 작업을 관리하는 클래스입니다. 이 클래스는 시스템 내 모델을 초기화하고, 조작하며, 정보를 가져오는 기능을 제공합니다.
Definition GUIManagerModel.h:38
프로퍼티 창에 연결된 메뉴 아이템 클래스
Definition GUIMenuItemProperty.h:48
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
현재 객체에 연결된 파일 이름을 가져옵니다.
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()
왼쪽 버튼 더블 클릭 이벤트를 처리합니다.
void SetMessageDisplayMode(EMessageDisplayMode eMessageDisplayMode=EMessageDisplayMode_NoScroll)
메시지 표시 모드를 설정합니다.
virtual void RequestTerminateApp(bool bTerminate=true)
프로그램 종료를 요청하거나 취소하는 함수
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 DoesFileExist()
현재 객체에 연결된 파일이 존재하는지 확인합니다.
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
CGUITabbedPane 클래스는 GUI 애플리케이션에서 탭된 패널 컨트롤의 특수 구현입니다. 이 클래스는 CTabbedPane과 Base::CFLBase를 상속하여 탭을 관리하는...
Definition GUITabbedPane.h:29
EAuthorityLevel
권한 레벨
Definition AuthorityManager.h:29
EMenuItemPaneMenuTree
메뉴 트리의 메뉴 아이템
Definition GUIDefinitions.h:8684
EKeyType
키보드 입력값
Definition GUIDefinitions.h:6905