2#include "DefinitionsGUI.h"
3#include "DefinitionsGUIResource.h"
4#include "GUIPopupMenuItemUserDefined.h"
5#include <unordered_map>
37 CGUIManagerMainFrameMenuBar();
38 virtual ~CGUIManagerMainFrameMenuBar();
101 CPopupMenuItemUserDefinedCallback* pCallback,
102 bool bAutoDestroyCallback =
true,
103 bool bEnabled =
true,
104 bool bChecked =
false,
105 int32_t i32InsertPos = -1);
124 int32_t i32InsertPos = -1);
231 COLORREF clrBackground = RGB(80, 80, 80),
232 COLORREF clrText = RGB(255, 255, 255),
268 COLORREF clrBackground = RGB(80, 80, 80),
269 COLORREF clrText = RGB(255, 255, 255),
392 COLORREF clrBackground,
439 COLORREF clrBackground,
672 static bool ApplyLogoImage();
674 static const wchar_t* GetLogoImagePath();
675 static void SetLogoImageDirty(
bool bSet =
true);
676 static bool IsLogoImageDirty();
677 static void SetCurrentModelNameDirty(
bool bSet =
true);
678 static bool IsCurrentModelNameDirty();
679 static void SetCurrentUserIdDirty(
bool bSet =
true);
680 static bool IsCurrentUserIdDirty();
681 static void SetUserDefinedInfoDirty(
bool bSet =
true);
682 static bool IsUserDefinedInfoDirty();
683 static std::unordered_map<uint32_t, CGUIPopupMenuItemUserDefined*>* GetContainerUserDefinedMenuItem();
684 static std::deque<CGUIPopupMenuItemUserDefined*>* GetContainerUserDefinedMenuItemByPath(
const Base::CFLString<wchar_t>& strPath);
685 static std::deque<CGUIMenuBarUserDefinedInfo*>* GetContainerUserDefinedInfo();
686 static std::vector<Base::CFLString<wchar_t>>* GetContainerRemovedMenuName();
688 DeclareGetClassType();
691 static CGUIManagerMainFrameMenuBar* GetInstance();
696 ELogoSourceType_None = 0,
697 ELogoSourceType_Path,
698 ELogoSourceType_Resource
702 static const CResult GetValidCommandIdOfSystemDefinedMenuItem(uint32_t& u32CommandId);
707 friend class CGUIMainFrame;
710 COLORREF m_clrBackgroundCurrentModel;
711 COLORREF m_clrTextCurrentModel;
712 COLORREF m_clrBackgroundCurrentUserId;
713 COLORREF m_clrTextCurrentUserId;
716 bool m_bDirtyCurrentModelName;
717 bool m_bShowCurrentModelName;
718 bool m_bDirtyCurrentUserId;
719 bool m_bShowCurrentUserId;
720 mutable bool m_bDirtyUserDefinedInfo;
722 ELogoSourceType m_eLogoSourceType;
724 bool m_bLogoImageDirty;
726 bool m_bLogoVisibilityDirty;
729 HINSTANCE m_hLogoResInst;
731 std::unordered_map<Base::EAuthorityLevel, COLORREF>& m_mapBkColorUserId;
732 std::unordered_map<Base::EAuthorityLevel, COLORREF>& m_mapFgColorUserId;
733 std::deque<CGUIMenuBarUserDefinedInfo*>& m_deqCGUIMenuBarUserDefinedInfo;
734 std::unordered_map<uint32_t, CGUIPopupMenuItemUserDefined*>& m_mapCmdIdAndUserDefinedMenuItem;
735 std::unordered_map<std::wstring, std::deque<CGUIPopupMenuItemUserDefined*>>& m_mapPathNameAndUserDefinedMenuItem;
736 std::vector<Base::CFLString<wchar_t>>& m_vctRemovedMenuName;
Top-level base class of FLImaging.
Definition FLBase.h:36
Template type string class.
Definition FLString.h:34
FLImaging module execution result object.
Definition ResultsDef.h:1704
static const CResult RemoveUserDefinedInfoAt(int32_t i32Index)
Removes the user-defined info at the specified index.
static bool IsLogoImageVisible()
Returns whether the logo image on the top menu bar is currently visible.
static void SetCurrentModelNameTextColor(COLORREF clrText)
Sets the text color for the current model name.
static CGUIPopupMenuItemUserDefined * AddUserDefinedMenuItem(const Base::CFLString< wchar_t > &strName, const Base::CFLString< wchar_t > &strParentPath, CPopupMenuItemUserDefinedCallback *pCallback, bool bAutoDestroyCallback=true, bool bEnabled=true, bool bChecked=false, int32_t i32InsertPos=-1)
Adds a user-defined menu item under the specified parent path.
static CGUIMenuBarUserDefinedInfo * GetFrontUserDefinedInfo()
Retrieves a pointer to the first user-defined info item without removing it.
static const CResult InsertUserDefinedInfoAt(int32_t i32Index, const CGUIMenuBarUserDefinedInfo &refUDI)
Inserts user-defined info at the specified index.
static bool IsCurrentUserIdVisible()
Checks if the current user ID is visible.
static CGUIPopupMenuItemUserDefined * GetUserDefinedMenuItem(uint32_t u32CommandId)
Retrieves the user-defined menu item.
static void ShowCurrentUserId(bool bShow)
Sets the visibility of the current user ID.
static CGUIMenuBarUserDefinedInfo * PopBackUserDefinedInfo()
Removes and returns the last user-defined info item.
static void SetUserIdTextColor(Base::EAuthorityLevel eLevel, COLORREF clrText)
Sets the text color for the specified user authority level.
static int32_t GetUserDefinedInfoIndex(const CGUIMenuBarUserDefinedInfo *pUDI)
Returns the index of a specified user-defined info item.
static void PushBackUserDefinedInfo(const Base::CFLString< wchar_t > &strInfo, COLORREF clrBackground=RGB(80, 80, 80), COLORREF clrText=RGB(255, 255, 255), bool bShow=true, EGUIAlignment eAlign=EGUIAlignment_CENTER_CENTER, EGUIStringTrimming eStringTrimming=EGUIStringTrimming_EllipsisCharacter)
Adds a user-defined info rectangle to the left of the current model name.
static const CResult InsertUserDefinedInfoAt(int32_t i32Index, const Base::CFLString< wchar_t > &strInfo, COLORREF clrBackground, COLORREF clrText, bool bShow, EGUIAlignment eAlign, EGUIStringTrimming eStringTrimming)
Inserts user-defined info at the specified index.
static void ShowLogoImage(bool bShow)
Shows or hides the logo image on the top menu bar.
static bool IsCurrentModelNameVisible()
Checks if the current model name is visible.
static void SetLogoImage(const wchar_t *pWcsLogoImagePath)
Sets the logo image displayed on the top menu bar.
static COLORREF GetCurrentModelNameTextColor()
Gets the text color of the current model name.
static void PushFrontUserDefinedInfo(const Base::CFLString< wchar_t > &strInfo, COLORREF clrBackground=RGB(80, 80, 80), COLORREF clrText=RGB(255, 255, 255), bool bShow=true, EGUIAlignment eAlign=EGUIAlignment_CENTER_CENTER, EGUIStringTrimming eStringTrimming=EGUIStringTrimming_EllipsisCharacter)
Adds a user-defined info rectangle to the right of the current model name.
static CGUIMenuBar * GetMenuBar()
Returns the menu bar of the main frame.
static COLORREF GetUserIdBkColor(Base::EAuthorityLevel eLevel)
Gets the background color for the specified user authority level.
static const CResult RemoveUserDefinedMenuItem(CGUIPopupMenuItemUserDefined *pItem)
Removes a user-defined menu item.
static CGUIPopupMenuItemUserDefined * AddUserDefinedMenuItemSeparator(const Base::CFLString< wchar_t > &strParentPath, int32_t i32InsertPos=-1)
Adds a separator under the specified parent path.
static void SetCurrentModelNameBkColor(COLORREF clrBk)
Sets the background color for the current model name.
static COLORREF GetUserIdTextColor(Base::EAuthorityLevel eLevel)
Gets the text color for the specified user authority level.
static void SetLogoImage(UINT nIDResource, EImageResourceType eLogoResType=EImageResourceType_PNG, HINSTANCE hInst=NULL)
Sets the logo image displayed on the top menu bar.
static CGUIMenuBarUserDefinedInfo * GetBackUserDefinedInfo()
Returns a pointer to the last user-defined info item without removing it.
static const CResult SetUserDefinedInfoAt(int32_t i32Index, const CGUIMenuBarUserDefinedInfo &refUDI)
Sets the user-defined info at the specified index.
static void ShowCurrentModelName(bool bShow)
Sets the visibility of the current model name.
static CPopupMenuItemUserDefinedCallback * GetUserDefinedMenuItemCallback(uint32_t u32CommandId)
Retrieves the callback associated with a user-defined menu item.
static void PushBackUserDefinedInfo(const CGUIMenuBarUserDefinedInfo &refUDI)
Adds a user-defined info object to the left of the current model name.
static CGUIMenuBarUserDefinedInfo * PopFrontUserDefinedInfo()
Removes and returns the first user-defined info item.
static CGUIPopupMenuItemUserDefined * GetUserDefinedMenuItem(const Base::CFLString< wchar_t > &strName, const Base::CFLString< wchar_t > &strParentPath)
Retrieves the user-defined menu item.
static const CResult RemoveMenuItem(const Base::CFLString< wchar_t > &flsMenuName)
Removes a specific menu item or sub-menu item by its hierarchical name path.
static COLORREF GetCurrentModelNameBkColor()
Gets the background color of the current model name.
static int32_t GetUserDefinedInfoCount()
Returns the number of user-defined info items.
static const CResult ClearUserDefinedInfo()
Clears all user-defined info items.
static const CResult GetValidCommandIdOfUserDefinedMenuItem(uint32_t &u32CommandId)
Returns a command ID that does not overlap with any existing command IDs. The valid range is from EMa...
static void PushFrontUserDefinedInfo(const CGUIMenuBarUserDefinedInfo &refUDI)
Adds a user-defined info rectangle to the right of the current model name.
static const CResult SetUserDefinedInfoAt(int32_t i32Index, const Base::CFLString< wchar_t > &strInfo, COLORREF clrBackground, COLORREF clrText, bool bShow, EGUIAlignment eAlign, EGUIStringTrimming eStringTrimming)
Sets the user-defined info at the specified index.
static CGUIPopupMenuItemUserDefined * AddUserDefinedMenuItem(const CGUIPopupMenuItemUserDefined &udmi)
Adds a user-defined menu item under the specified parent path.
static CGUIMenuBarUserDefinedInfo * GetUserDefinedInfoAt(int32_t i32Index)
Retrieves a user-defined info item at the specified index.
static void SetUserIdBkColor(Base::EAuthorityLevel eLevel, COLORREF clrBk)
Sets the background color for the specified user authority level.
EAuthorityLevel
Authority level.
Definition AuthorityManager.h:29
Definition D2DObject.h:12
EGUIStringTrimming
Cut option if string is out of layout square.
Definition DefinitionsGUI.h:14020
@ EGUIStringTrimming_EllipsisCharacter
Specifies that the string is broken at the boundary of the last character within the layout rectangle...
Definition DefinitionsGUI.h:14051
EImageResourceType
Image resource type enumeration.
Definition DefinitionsGUIResource.h:43
EGUIAlignment
Alignment information.
Definition DefinitionsGUI.h:13858
@ EGUIAlignment_CENTER_CENTER
Center alignment.
Definition DefinitionsGUI.h:13961