FLImaging 6.5.8.1
GUIManagerModel.h
1#pragma once
2
11#include <functional>
12#include <map>
13
15namespace FLImaging
16{
18 namespace GUI
19 {
20 class CGUIMenuItemBase;
21 class CGUIFixedViewPlacementSet;
22
23 typedef std::function< CGUIMenuItemBase* (Base::CFLString<wchar_t> strPath, Base::CFLString<wchar_t> strName)> CCreateMenuItemProcedure;
24#define MakeMenuItemProcedure [=](Base::CFLString<wchar_t> strPath, Base::CFLString<wchar_t> strName) -> CGUIMenuItemBase*
25
26 typedef std::function< FLImaging::CResult()> CLoadSubMenuProcedure;
27#define MakeLoadSubMenuProcedure [=]() -> FLImaging::CResult
28
37 class FL_EXPORT CGUIManagerModel : public Base::CFLBase
38 {
46
56
57 public:
67
68 public:
69
82 static const CResult Initialize();
83
92 static bool IsInitialized();
93
105
114 static int64_t GetCurrentModelIndex();
115
132 static const CResult AddModel(const Base::CFLString<wchar_t>& strName);
133
148 static const CResult DeleteModel(int64_t i64Index);
149
166 static const CResult DeleteModel(const Base::CFLString<wchar_t>& strName);
167
183 static const CResult ChangeModel(int64_t i64Index, bool bWriteFileSystem = true);
184
202 static const CResult ChangeModel(const Base::CFLString<wchar_t>& strName, bool bWriteFileSystem = true);
203
220 static const CResult DuplicateModel(int64_t i64DstIndex, int64_t i64SrcIndex);
221
240 static const CResult DuplicateModel(const Base::CFLString<wchar_t>& strDstName, const Base::CFLString<wchar_t>& strSrcName);
241
260 static const CResult RenameModel(int64_t i64Index, const Base::CFLString<wchar_t>& strNewName);
261
280 static const CResult RenameModel(const Base::CFLString<wchar_t>& strOldName, const Base::CFLString<wchar_t>& strNewName);
281
293
305
317 static void SetModelRootPath(const Base::CFLString<wchar_t>& strPath);
318
330
343
358 static const CResult WriteLastUsedModel(const Base::CFLString<wchar_t>& strModelName);
359
369
378 static bool IsLoadingModel();
379
390 static std::vector<Base::CFLString<wchar_t>> GetModelList();
391
400 static int64_t GetModelCount();
401
402
423 static const CResult AddSubMenuList(const Base::CFLString<wchar_t>& strSubMenuName, CCreateMenuItemProcedure* pCreateMenuItemProcedure);
424
447 static const CResult CreateSubMenuItem(const Base::CFLString<wchar_t>& strPath, const Base::CFLString<wchar_t>& strName, const Base::CFLString<wchar_t>& strSubMenuName, bool bWriteFileSystem = true);
448
471 static const CResult CopySubMenuItem(const Base::CFLString<wchar_t>& strPath, const Base::CFLString<wchar_t>& strDstName, const Base::CFLString<wchar_t>& strSrcName, bool bWriteFileSystem = true);
472
491 static const CResult DeleteSubMenuItem(CGUIMenuItemBase* pMenuItem, bool bDeleteFile = true);
492
505 static const CResult LoadSubMenuItem();
506
523 static const CResult AddLoadSubMenuItemProcedure(CLoadSubMenuProcedure* pLoadSubMenuItemProcedure);
524
547 static const CResult RenameSubMenuItem(const Base::CFLString<wchar_t>& strPath, const Base::CFLString<wchar_t>& strName, const Base::CFLString<wchar_t>& strNewName, bool bWriteFileSystem = true);
548
567 static CGUIMenuItemBase* FindSubMenuItem(const Base::CFLString<wchar_t>& strPath, const Base::CFLString<wchar_t>& strName);
568
586
587
588
589 DeclareGetClassType();
590
591 protected:
592 static CGUIManagerModel* GetObject();
593
594 Base::CFLString<wchar_t> DeleteAllModelFile(Base::CFLString<wchar_t> strModelName);
595 Base::CFLString<wchar_t> CopyAllModelFile(Base::CFLString<wchar_t> strDstModelName, Base::CFLString<wchar_t> strSrcModelName);
596 Base::CFLString<wchar_t> RenameModelDir(Base::CFLString<wchar_t> strOldModelName, Base::CFLString<wchar_t> strNewModelName);
597 Base::CFLString<wchar_t> m_strModelRootPath;
598
599 std::vector<Base::CFLString<wchar_t>>& m_vctModel;
600
601 int64_t m_i64CurrentModelIndex;
602 bool m_bInitialized;
603 bool m_bSetModelRootPath;
604 bool m_bNowLoadLastUsedModel;
605 bool m_bNowLoadingModel;
606
607 //SubMenuItem
608 std::map<Base::CFLString<wchar_t>, CCreateMenuItemProcedure*>& m_mapCreateSubItem;
609 std::vector<CLoadSubMenuProcedure*>& m_vctLoadSubMenuItemProcedure;
610 std::vector <CGUIMenuItemBase*>& m_vctSubMenuItem;
611 };
612 }
613}
614
FLImaging의 최상위 기저 클래스
Definition FLBase.h:36
Template type 의 문자열 클래스
Definition INIUtilities.h:20
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1514
GUI 모델 매니저 클래스로, 모델 데이터와 관련된 작업을 관리하는 클래스입니다. 이 클래스는 시스템 내 모델을 초기화하고, 조작하며, 정보를 가져오는 기능을 제공합니다.
Definition GUIManagerModel.h:38
static Base::CFLString< wchar_t > GetCurrentModel()
현재 모델 이름을 가져옵니다.
static const CResult DeleteSubMenuItem(CGUIMenuItemBase *pMenuItem, bool bDeleteFile=true)
서브메뉴 항목을 삭제합니다. 지정된 서브메뉴 항목을 삭제하고, 선택적으로 관련 파일도 삭제합니다.
static const CResult Initialize()
GUI 모델 관리자를 초기화합니다. GUI 모델 관리자를 초기화하는 데 필요한 단계를 수행합니다.
static const CResult ChangeModel(int64_t i64Index, bool bWriteFileSystem=true)
현재 모델을 지정된 인덱스의 모델로 변경합니다.
static void SetModelRootPath(const Base::CFLString< wchar_t > &strPath)
모델 폴더들을 저장 및 로드할 경로를 지정합니다. 빈 문자열 지정 시 기본 경로에서 설정 파일이 저장되고 로드됩니다.
static const CResult WriteLastUsedModel(const Base::CFLString< wchar_t > &strModelName)
가장 최근에 사용된 모델 이름을 LastUsedModel.ini 파일에 저장합니다.
static Base::CFLString< wchar_t > GetModelRootPath()
모델 폴더들을 저장 및 로드할 경로를 얻어 옵니다.
static const CResult DeleteModel(int64_t i64Index)
인덱스로 모델을 삭제합니다. 지정된 인덱스에 있는 모델을 삭제합니다.
static bool IsInitialized()
GUI 모델 관리자가 초기화되었는지 확인합니다.
static int64_t GetCurrentModelIndex()
현재 모델의 인덱스를 가져옵니다.
static const CResult RenameSubMenuItem(const Base::CFLString< wchar_t > &strPath, const Base::CFLString< wchar_t > &strName, const Base::CFLString< wchar_t > &strNewName, bool bWriteFileSystem=true)
서브메뉴 항목의 이름을 변경합니다. 지정된 경로에 있는 서브메뉴 항목의 이름을 새 이름으로 변경합니다.
static const CResult AddLoadSubMenuItemProcedure(CLoadSubMenuProcedure *pLoadSubMenuItemProcedure)
서브메뉴 항목을 로드하는 절차를 추가합니다. 서브메뉴 항목을 로드할 때 사용할 절차를 추가합니다.
static bool IsLoadingLastUsedModel()
최근에 사용된 모델이 현재 로드 중인지 확인합니다.
static const CResult RenameModel(int64_t i64Index, const Base::CFLString< wchar_t > &strNewName)
인덱스로 모델의 이름을 변경합니다. 지정된 인덱스에 있는 모델의 이름을 새 이름으로 변경합니다.
static const CResult LoadSubMenuItem()
서브메뉴 항목을 로드합니다. 사용 가능한 모든 서브메뉴 항목을 로드합니다.
static const CResult ChangeModel(const Base::CFLString< wchar_t > &strName, bool bWriteFileSystem=true)
지정된 이름의 모델로 현재 모델을 변경합니다.
static const CResult RenameModel(const Base::CFLString< wchar_t > &strOldName, const Base::CFLString< wchar_t > &strNewName)
이름으로 모델의 이름을 변경합니다. 기존 이름으로 지정된 모델의 이름을 새 이름으로 변경합니다.
static const CResult DuplicateModel(int64_t i64DstIndex, int64_t i64SrcIndex)
모델을 복제합니다. 소스 인덱스로 지정된 모델을 복제하여 대상 인덱스로 지정된 모델에 저장합니다.
static const CResult DuplicateModel(const Base::CFLString< wchar_t > &strDstName, const Base::CFLString< wchar_t > &strSrcName)
모델을 복제합니다. 소스 이름으로 지정된 모델을 복제하여 대상 이름으로 지정된 모델에 저장합니다.
static const CResult AddModel(const Base::CFLString< wchar_t > &strName)
새 모델을 추가합니다. 지정된 이름의 모델을 GUI 모델 관리자에 추가합니다.
static Base::CFLString< wchar_t > GetCurrentModelFullPath()
현재 모델의 전체 경로를 가져옵니다.
static const CResult DeleteModel(const Base::CFLString< wchar_t > &strName)
이름으로 모델을 삭제합니다. 지정된 이름의 모델을 삭제합니다.
static int64_t GetModelCount()
모든 모델의 개수를 가져옵니다.
static const CResult AddSubMenuList(const Base::CFLString< wchar_t > &strSubMenuName, CCreateMenuItemProcedure *pCreateMenuItemProcedure)
새로운 서브메뉴 리스트를 추가합니다. 지정된 이름과 메뉴 항목을 생성하는 절차로 서브메뉴 리스트를 추가합니다.
static CGUIMenuItemBase * FindSubMenuItem(const Base::CFLString< wchar_t > &strPath, const Base::CFLString< wchar_t > &strName)
서브메뉴 항목을 찾습니다. 지정된 경로에서 주어진 이름의 서브메뉴 항목을 찾습니다.
static std::vector< Base::CFLString< wchar_t > > GetModelList()
모든 모델의 목록을 가져옵니다.
static const CResult LoadLastUsedModel()
가장 최근에 사용했던 모델을 다시 불러 옵니다. CGUIManagerModel::Initialize() 함수 호출 후에 호출합니다.
static const CResult CopySubMenuItem(const Base::CFLString< wchar_t > &strPath, const Base::CFLString< wchar_t > &strDstName, const Base::CFLString< wchar_t > &strSrcName, bool bWriteFileSystem=true)
서브메뉴 항목을 복사합니다. 지정된 경로에서 소스 이름의 서브메뉴 항목을 대상 이름으로 복사합니다.
static bool IsLoadingModel()
모델이 현재 로드 중인지 확인합니다.
virtual ~CGUIManagerModel()
CGUIManagerModel의 소멸자. CGUIManagerModel 인스턴스에서 사용된 모든 리소스를 정리합니다.
static Base::CFLString< wchar_t > GetDefaultModelFullPath()
기본 모델의 전체 경로를 가져옵니다.
static const CResult CreateSubMenuItem(const Base::CFLString< wchar_t > &strPath, const Base::CFLString< wchar_t > &strName, const Base::CFLString< wchar_t > &strSubMenuName, bool bWriteFileSystem=true)
새로운 서브메뉴 항목을 생성합니다. 지정된 경로와 이름으로 주어진 서브메뉴에 서브메뉴 항목을 생성합니다.
static Base::CFLString< wchar_t > FindSubMenuName(const Base::CFLString< wchar_t > &strPath, const Base::CFLString< wchar_t > &strName)
서브메뉴의 이름을 찾습니다. 지정된 경로에서 주어진 이름의 서브메뉴 이름을 찾습니다.