2#include "GUIDefinitions.h"
3#include "GUIPopupMenuItemUserDefined.h"
4#include <unordered_map>
10 class CGUIMenuBarUserDefinedInfo;
11 class CGUIPopupMenuItemUserDefined;
14 class FL_EXPORT CGUIManagerMainFrameMenuBar :
public Base::CFLBase
17 CGUIManagerMainFrameMenuBar();
18 virtual ~CGUIManagerMainFrameMenuBar();
32 static CGUIMenuBar* GetMenuBar();
51 static const CResult GetValidCommandIdOfUserDefinedMenuItem(uint32_t& u32CommandId);
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,
84 bool bChecked =
false,
85 int32_t i32InsertPos = -1);
102 static CGUIPopupMenuItemUserDefined* AddUserDefinedMenuItemSeparator(
103 const Base::CFLString<wchar_t>& strPath,
104 int32_t i32InsertPos = -1);
120 static CGUIPopupMenuItemUserDefined* AddUserDefinedMenuItem(
const CGUIPopupMenuItemUserDefined& udmi);
133 static const CResult RemoveUserDefinedMenuItem(CGUIPopupMenuItemUserDefined* pItem);
146 static CGUIPopupMenuItemUserDefined* GetUserDefinedMenuItem(uint32_t u32CommandId);
161 static CGUIPopupMenuItemUserDefined* GetUserDefinedMenuItem(
const Base::CFLString<wchar_t>& strName,
const Base::CFLString<wchar_t>& strParentPath);
174 static CPopupMenuItemUserDefinedCallback* GetUserDefinedMenuItemCallback(uint32_t u32CommandId);
195 static void PushBackUserDefinedInfo(
const Base::CFLString<wchar_t>& strInfo,
196 COLORREF clrBackground =
RGB(80, 80, 80),
197 COLORREF clrText =
RGB(255, 255, 255),
199 EGUIAlignment eAlign = EGUIAlignment_CENTER_CENTER,
200 EGUIStringTrimming eStringTrimming = EGUIStringTrimming_EllipsisCharacter);
211 static void PushBackUserDefinedInfo(
const CGUIMenuBarUserDefinedInfo& refUDI);
232 static void PushFrontUserDefinedInfo(
const Base::CFLString<wchar_t>& strInfo,
233 COLORREF clrBackground =
RGB(80, 80, 80),
234 COLORREF clrText =
RGB(255, 255, 255),
236 EGUIAlignment eAlign = EGUIAlignment_CENTER_CENTER,
237 EGUIStringTrimming eStringTrimming = EGUIStringTrimming_EllipsisCharacter);
248 static void PushFrontUserDefinedInfo(
const CGUIMenuBarUserDefinedInfo& refUDI);
259 static CGUIMenuBarUserDefinedInfo* PopFrontUserDefinedInfo();
270 static CGUIMenuBarUserDefinedInfo* GetFrontUserDefinedInfo();
283 static CGUIMenuBarUserDefinedInfo* GetUserDefinedInfoAt(int32_t i32Index);
296 static int32_t GetUserDefinedInfoIndex(
const CGUIMenuBarUserDefinedInfo* pUDI);
307 static int32_t GetUserDefinedInfoCount();
318 static CGUIMenuBarUserDefinedInfo* PopBackUserDefinedInfo();
329 static CGUIMenuBarUserDefinedInfo* GetBackUserDefinedInfo();
354 static const CResult SetUserDefinedInfoAt(
356 const Base::CFLString<wchar_t>& strInfo,
357 COLORREF clrBackground,
360 EGUIAlignment eAlign,
361 EGUIStringTrimming eStringTrimming);
376 static const CResult SetUserDefinedInfoAt(int32_t i32Index,
const CGUIMenuBarUserDefinedInfo& refUDI);
401 static const CResult InsertUserDefinedInfoAt(
403 const Base::CFLString<wchar_t>& strInfo,
404 COLORREF clrBackground,
407 EGUIAlignment eAlign,
408 EGUIStringTrimming eStringTrimming);
423 static const CResult InsertUserDefinedInfoAt(int32_t i32Index,
const CGUIMenuBarUserDefinedInfo& refUDI);
436 static const CResult RemoveUserDefinedInfoAt(int32_t i32Index);
447 static const CResult ClearUserDefinedInfo();
458 static void SetCurrentModelNameBkColor(COLORREF clrBk);
469 static COLORREF GetCurrentModelNameBkColor();
480 static void SetCurrentModelNameTextColor(COLORREF clrText);
491 static COLORREF GetCurrentModelNameTextColor();
502 static void ShowCurrentModelName(
bool bShow);
513 static bool IsCurrentModelNameVisible();
526 static void SetUserIdBkColor(Base::EAuthorityLevel eLevel, COLORREF clrBk);
539 static COLORREF GetUserIdBkColor(Base::EAuthorityLevel eLevel);
552 static void SetUserIdTextColor(Base::EAuthorityLevel eLevel, COLORREF clrText);
565 static COLORREF GetUserIdTextColor(Base::EAuthorityLevel eLevel);
576 static void ShowCurrentUserId(
bool bShow);
587 static bool IsCurrentUserIdVisible();
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();
600 DeclareGetClassType();
603 static CGUIManagerMainFrameMenuBar* GetObject();
606 COLORREF m_clrBackgroundCurrentModel;
607 COLORREF m_clrTextCurrentModel;
608 COLORREF m_clrBackgroundCurrentUserId;
609 COLORREF m_clrTextCurrentUserId;
612 bool m_bDirtyCurrentModelName;
613 bool m_bShowCurrentModelName;
614 bool m_bDirtyCurrentUserId;
615 bool m_bShowCurrentUserId;
616 mutable bool m_bDirtyUserDefinedInfo;
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;