2#include "DefinitionsGUI.h" 
    3#include "GUIPopupMenuItemUserDefined.h" 
    4#include <unordered_map> 
   10        class CGUIMenuBarUserDefinedInfo;
 
   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;
 
Definition D2DObject.h:12
@ RGB
Definition DefinitionsBase.h:2630