FLImaging 6.5.8.1
GUIManagerMainFrameMenuBar.h
1#pragma once
2#include "GUIDefinitions.h"
3#include "GUIPopupMenuItemUserDefined.h"
4#include <unordered_map>
5
6namespace FLImaging
7{
8 namespace GUI
9 {
10 class CGUIMenuBarUserDefinedInfo;
11 class CGUIPopupMenuItemUserDefined;
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
133 static const CResult RemoveUserDefinedMenuItem(CGUIPopupMenuItemUserDefined* pItem);
134
146 static CGUIPopupMenuItemUserDefined* GetUserDefinedMenuItem(uint32_t u32CommandId);
147
161 static CGUIPopupMenuItemUserDefined* GetUserDefinedMenuItem(const Base::CFLString<wchar_t>& strName, const Base::CFLString<wchar_t>& strParentPath);
162
174 static CPopupMenuItemUserDefinedCallback* GetUserDefinedMenuItemCallback(uint32_t u32CommandId);
175
195 static void PushBackUserDefinedInfo(const Base::CFLString<wchar_t>& strInfo,
196 COLORREF clrBackground = RGB(80, 80, 80),
197 COLORREF clrText = RGB(255, 255, 255),
198 bool bShow = true,
199 EGUIAlignment eAlign = EGUIAlignment_CENTER_CENTER,
200 EGUIStringTrimming eStringTrimming = EGUIStringTrimming_EllipsisCharacter);
201
211 static void PushBackUserDefinedInfo(const CGUIMenuBarUserDefinedInfo& refUDI);
212
232 static void PushFrontUserDefinedInfo(const Base::CFLString<wchar_t>& strInfo,
233 COLORREF clrBackground = RGB(80, 80, 80),
234 COLORREF clrText = RGB(255, 255, 255),
235 bool bShow = true,
236 EGUIAlignment eAlign = EGUIAlignment_CENTER_CENTER,
237 EGUIStringTrimming eStringTrimming = EGUIStringTrimming_EllipsisCharacter);
238
248 static void PushFrontUserDefinedInfo(const CGUIMenuBarUserDefinedInfo& refUDI);
249
259 static CGUIMenuBarUserDefinedInfo* PopFrontUserDefinedInfo();
260
270 static CGUIMenuBarUserDefinedInfo* GetFrontUserDefinedInfo();
271
283 static CGUIMenuBarUserDefinedInfo* GetUserDefinedInfoAt(int32_t i32Index);
284
296 static int32_t GetUserDefinedInfoIndex(const CGUIMenuBarUserDefinedInfo* pUDI);
297
307 static int32_t GetUserDefinedInfoCount();
308
318 static CGUIMenuBarUserDefinedInfo* PopBackUserDefinedInfo();
319
329 static CGUIMenuBarUserDefinedInfo* GetBackUserDefinedInfo();
330
354 static const CResult SetUserDefinedInfoAt(
355 int32_t i32Index,
356 const Base::CFLString<wchar_t>& strInfo,
357 COLORREF clrBackground,
358 COLORREF clrText,
359 bool bShow,
360 EGUIAlignment eAlign,
361 EGUIStringTrimming eStringTrimming);
362
376 static const CResult SetUserDefinedInfoAt(int32_t i32Index, const CGUIMenuBarUserDefinedInfo& refUDI);
377
401 static const CResult InsertUserDefinedInfoAt(
402 int32_t i32Index,
403 const Base::CFLString<wchar_t>& strInfo,
404 COLORREF clrBackground,
405 COLORREF clrText,
406 bool bShow,
407 EGUIAlignment eAlign,
408 EGUIStringTrimming eStringTrimming);
409
423 static const CResult InsertUserDefinedInfoAt(int32_t i32Index, const CGUIMenuBarUserDefinedInfo& refUDI);
424
436 static const CResult RemoveUserDefinedInfoAt(int32_t i32Index);
437
447 static const CResult ClearUserDefinedInfo();
448
458 static void SetCurrentModelNameBkColor(COLORREF clrBk);
459
469 static COLORREF GetCurrentModelNameBkColor();
470
480 static void SetCurrentModelNameTextColor(COLORREF clrText);
481
491 static COLORREF GetCurrentModelNameTextColor();
492
502 static void ShowCurrentModelName(bool bShow);
503
513 static bool IsCurrentModelNameVisible();
514
526 static void SetUserIdBkColor(Base::EAuthorityLevel eLevel, COLORREF clrBk);
527
539 static COLORREF GetUserIdBkColor(Base::EAuthorityLevel eLevel);
540
552 static void SetUserIdTextColor(Base::EAuthorityLevel eLevel, COLORREF clrText);
553
565 static COLORREF GetUserIdTextColor(Base::EAuthorityLevel eLevel);
566
576 static void ShowCurrentUserId(bool bShow);
577
587 static bool IsCurrentUserIdVisible();
588
589
590 static void SetCurrentModelNameDirty(bool bSet = true);
591 static bool IsCurrentModelNameDirty();
592 static void SetCurrentUserIdDirty(bool bSet = true);
593 static bool IsCurrentUserIdDirty();
594 static void SetUserDefinedInfoDirty(bool bSet = true);
595 static bool IsUserDefinedInfoDirty();
596 static std::unordered_map<uint32_t, CGUIPopupMenuItemUserDefined*>* GetContainerUserDefinedMenuItem();
597 static std::deque<CGUIPopupMenuItemUserDefined*>* GetContainerUserDefinedMenuItemByPath(const Base::CFLString<wchar_t>& strPath);
598 static std::deque<CGUIMenuBarUserDefinedInfo*>* GetContainerUserDefinedInfo();
599
600 DeclareGetClassType();
601
602 private:
603 static CGUIManagerMainFrameMenuBar* GetObject();
604
605 protected:
606 COLORREF m_clrBackgroundCurrentModel;
607 COLORREF m_clrTextCurrentModel;
608 COLORREF m_clrBackgroundCurrentUserId;
609 COLORREF m_clrTextCurrentUserId;
610
611 bool m_bInit;
612 bool m_bDirtyCurrentModelName;
613 bool m_bShowCurrentModelName;
614 bool m_bDirtyCurrentUserId;
615 bool m_bShowCurrentUserId;
616 mutable bool m_bDirtyUserDefinedInfo;
617
618 std::unordered_map<Base::EAuthorityLevel, COLORREF>& m_mapBkColorUserId;
619 std::unordered_map<Base::EAuthorityLevel, COLORREF>& m_mapFgColorUserId;
620 std::deque<CGUIMenuBarUserDefinedInfo*>& m_deqCGUIMenuBarUserDefinedInfo;
621 std::unordered_map<uint32_t, CGUIPopupMenuItemUserDefined*>& m_mapCmdIdAndUserDefinedMenuItem;
622 std::unordered_map<std::wstring, std::deque<CGUIPopupMenuItemUserDefined*>>& m_mapPathNameAndUserDefinedMenuItem;
623 };
624 }
625}