FLImaging 7.3.19.2
GUIManagerMainFrameMenuBar.h
1#pragma once
2#include "DefinitionsGUI.h"
3#include "GUIPopupMenuItemUserDefined.h"
4#include <unordered_map>
5
6namespace FLImaging
7{
8 namespace GUI
9 {
10 class CGUIMenuBarUserDefinedInfo;
12 class CGUIMenuBar;
13
14 class FL_EXPORT CGUIManagerMainFrameMenuBar : public Base::CFLBase
15 {
16 public:
17 CGUIManagerMainFrameMenuBar();
18 virtual ~CGUIManagerMainFrameMenuBar();
19
20 public:
32 static CGUIMenuBar* GetMenuBar();
33
51 static const CResult GetValidCommandIdOfUserDefinedMenuItem(uint32_t& u32CommandId);
52
78 static CGUIPopupMenuItemUserDefined* AddUserDefinedMenuItem(
79 const Base::CFLString<wchar_t>& strName,
80 const Base::CFLString<wchar_t>& strPath,
81 CPopupMenuItemUserDefinedCallback* pCallback,
82 bool bAutoDestroyCallback = true,
83 bool bEnabled = true,
84 bool bChecked = false,
85 int32_t i32InsertPos = -1);
86
102 static CGUIPopupMenuItemUserDefined* AddUserDefinedMenuItemSeparator(
103 const Base::CFLString<wchar_t>& strPath,
104 int32_t i32InsertPos = -1);
105
106
120 static CGUIPopupMenuItemUserDefined* AddUserDefinedMenuItem(const CGUIPopupMenuItemUserDefined& udmi);
121
135 static const CResult RemoveMenuItem(const Base::CFLString<wchar_t>& flsMenuName);
136
148 static const CResult RemoveUserDefinedMenuItem(CGUIPopupMenuItemUserDefined* pItem);
149
161 static CGUIPopupMenuItemUserDefined* GetUserDefinedMenuItem(uint32_t u32CommandId);
162
176 static CGUIPopupMenuItemUserDefined* GetUserDefinedMenuItem(const Base::CFLString<wchar_t>& strName, const Base::CFLString<wchar_t>& strParentPath);
177
189 static CPopupMenuItemUserDefinedCallback* GetUserDefinedMenuItemCallback(uint32_t u32CommandId);
190
210 static void PushBackUserDefinedInfo(const Base::CFLString<wchar_t>& strInfo,
211 COLORREF clrBackground = RGB(80, 80, 80),
212 COLORREF clrText = RGB(255, 255, 255),
213 bool bShow = true,
214 EGUIAlignment eAlign = EGUIAlignment_CENTER_CENTER,
215 EGUIStringTrimming eStringTrimming = EGUIStringTrimming_EllipsisCharacter);
216
226 static void PushBackUserDefinedInfo(const CGUIMenuBarUserDefinedInfo& refUDI);
227
247 static void PushFrontUserDefinedInfo(const Base::CFLString<wchar_t>& strInfo,
248 COLORREF clrBackground = RGB(80, 80, 80),
249 COLORREF clrText = RGB(255, 255, 255),
250 bool bShow = true,
251 EGUIAlignment eAlign = EGUIAlignment_CENTER_CENTER,
252 EGUIStringTrimming eStringTrimming = EGUIStringTrimming_EllipsisCharacter);
253
263 static void PushFrontUserDefinedInfo(const CGUIMenuBarUserDefinedInfo& refUDI);
264
274 static CGUIMenuBarUserDefinedInfo* PopFrontUserDefinedInfo();
275
285 static CGUIMenuBarUserDefinedInfo* GetFrontUserDefinedInfo();
286
298 static CGUIMenuBarUserDefinedInfo* GetUserDefinedInfoAt(int32_t i32Index);
299
311 static int32_t GetUserDefinedInfoIndex(const CGUIMenuBarUserDefinedInfo* pUDI);
312
322 static int32_t GetUserDefinedInfoCount();
323
333 static CGUIMenuBarUserDefinedInfo* PopBackUserDefinedInfo();
334
344 static CGUIMenuBarUserDefinedInfo* GetBackUserDefinedInfo();
345
369 static const CResult SetUserDefinedInfoAt(
370 int32_t i32Index,
371 const Base::CFLString<wchar_t>& strInfo,
372 COLORREF clrBackground,
373 COLORREF clrText,
374 bool bShow,
375 EGUIAlignment eAlign,
376 EGUIStringTrimming eStringTrimming);
377
391 static const CResult SetUserDefinedInfoAt(int32_t i32Index, const CGUIMenuBarUserDefinedInfo& refUDI);
392
416 static const CResult InsertUserDefinedInfoAt(
417 int32_t i32Index,
418 const Base::CFLString<wchar_t>& strInfo,
419 COLORREF clrBackground,
420 COLORREF clrText,
421 bool bShow,
422 EGUIAlignment eAlign,
423 EGUIStringTrimming eStringTrimming);
424
438 static const CResult InsertUserDefinedInfoAt(int32_t i32Index, const CGUIMenuBarUserDefinedInfo& refUDI);
439
451 static const CResult RemoveUserDefinedInfoAt(int32_t i32Index);
452
462 static const CResult ClearUserDefinedInfo();
463
473 static void SetCurrentModelNameBkColor(COLORREF clrBk);
474
484 static COLORREF GetCurrentModelNameBkColor();
485
495 static void SetCurrentModelNameTextColor(COLORREF clrText);
496
506 static COLORREF GetCurrentModelNameTextColor();
507
517 static void ShowCurrentModelName(bool bShow);
518
528 static bool IsCurrentModelNameVisible();
529
541 static void SetUserIdBkColor(Base::EAuthorityLevel eLevel, COLORREF clrBk);
542
554 static COLORREF GetUserIdBkColor(Base::EAuthorityLevel eLevel);
555
567 static void SetUserIdTextColor(Base::EAuthorityLevel eLevel, COLORREF clrText);
568
580 static COLORREF GetUserIdTextColor(Base::EAuthorityLevel eLevel);
581
591 static void ShowCurrentUserId(bool bShow);
592
602 static bool IsCurrentUserIdVisible();
603
604
605 static void SetCurrentModelNameDirty(bool bSet = true);
606 static bool IsCurrentModelNameDirty();
607 static void SetCurrentUserIdDirty(bool bSet = true);
608 static bool IsCurrentUserIdDirty();
609 static void SetUserDefinedInfoDirty(bool bSet = true);
610 static bool IsUserDefinedInfoDirty();
611 static std::unordered_map<uint32_t, CGUIPopupMenuItemUserDefined*>* GetContainerUserDefinedMenuItem();
612 static std::deque<CGUIPopupMenuItemUserDefined*>* GetContainerUserDefinedMenuItemByPath(const Base::CFLString<wchar_t>& strPath);
613 static std::deque<CGUIMenuBarUserDefinedInfo*>* GetContainerUserDefinedInfo();
614 static std::vector<Base::CFLString<wchar_t>>* GetContainerRemovedMenuName();
615
616 DeclareGetClassType();
617
618 private:
619 static CGUIManagerMainFrameMenuBar* GetInstance();
620
621 protected:
622 COLORREF m_clrBackgroundCurrentModel;
623 COLORREF m_clrTextCurrentModel;
624 COLORREF m_clrBackgroundCurrentUserId;
625 COLORREF m_clrTextCurrentUserId;
626
627 bool m_bInit;
628 bool m_bDirtyCurrentModelName;
629 bool m_bShowCurrentModelName;
630 bool m_bDirtyCurrentUserId;
631 bool m_bShowCurrentUserId;
632 mutable bool m_bDirtyUserDefinedInfo;
633
634 std::unordered_map<Base::EAuthorityLevel, COLORREF>& m_mapBkColorUserId;
635 std::unordered_map<Base::EAuthorityLevel, COLORREF>& m_mapFgColorUserId;
636 std::deque<CGUIMenuBarUserDefinedInfo*>& m_deqCGUIMenuBarUserDefinedInfo;
637 std::unordered_map<uint32_t, CGUIPopupMenuItemUserDefined*>& m_mapCmdIdAndUserDefinedMenuItem;
638 std::unordered_map<std::wstring, std::deque<CGUIPopupMenuItemUserDefined*>>& m_mapPathNameAndUserDefinedMenuItem;
639 std::vector<Base::CFLString<wchar_t>>& m_vctRemovedMenuName;
640 };
641 }
642}
사용자 정의 팝업 메뉴 아이템을 나타내는 클래스.
Definition GUIPopupMenuItemUserDefined.h:31
Definition D2DObject.h:12
@ RGB
Definition DefinitionsBase.h:2630