FLImaging 6.5.8.1
GUIMenuBarButtonBase.h
1#pragma once
2#include "GUIDefinitions.h"
3
4namespace FLImaging
5{
6 namespace GUI
7 {
8 class CGUIMainFrameTabCtrl;
9 class CGUIChildFrameBase;
10 class CGUIViewBase;
11 class CGUIViewImageBase;
12 class CGUIMenuBar;
13 class CGUIMenuBarButtonBase;
14
15 typedef std::function<void(CGUIMenuBarButtonBase*, Base::TPoint<int32_t> tpClientCursor)> CMenuBarButtonCallback;
16 #define MakeMenuBarButtonCallback [=](CGUIMenuBarButtonBase* pItem, Base::TPoint<int32_t> tpClientCursor) -> void
17
18 class FL_EXPORT CGUIMenuBarButtonBase
19 {
20 friend class CGUIMainFrameTabCtrl;
21
22 public:
23 CGUIMenuBarButtonBase();
24 CGUIMenuBarButtonBase(const CGUIMenuBarButtonBase& rhs);
25
26 CGUIMenuBarButtonBase(
27 const Base::CFLString<wchar_t>& str,
28 COLORREF clrBackground = RGB(80, 80, 80),
29 COLORREF clrText = RGB(255, 255, 255),
30 bool bShow = true,
31 EGUIAlignment eAlign = EGUIAlignment_CENTER_CENTER,
32 EGUIStringTrimming eStringTrimming = EGUIStringTrimming_EllipsisCharacter
33 );
34
35 virtual ~CGUIMenuBarButtonBase();
36
37 public:
38 virtual void SetParentMenuBar(CGUIMenuBar* pParentMenuBar);
39 virtual CGUIMenuBar* GetParentMenuBar() const;
40
41 virtual void SetBaseOwner(Base::CFLBase* pBaseOwner);
42 virtual Base::CFLBase* GetBaseOwner() const;
43
44 virtual void SetRect(CRect rect);
45 virtual CRect GetRect() const;
46
47 virtual void Show(bool bShow);
48 virtual bool IsVisible() const;
49
50 virtual void SetFullWidth(int32_t i32FullWidth);
51 virtual int32_t GetFullWidth() const;
52
53 virtual void SetActualDisplayWidth(int32_t i32ActualDisplayWidth);
54 virtual int32_t GetActualDisplayWidth() const;
55
56 virtual void SetText(const Base::CFLString<wchar_t>& strText);
57 virtual Base::CFLString<wchar_t> GetText() const;
58
59 virtual void SetTextAlignment(EGUIAlignment eAlign);
60 virtual EGUIAlignment GetTextAlignment()const;
61
62 virtual void SetStringTrimming(EGUIStringTrimming eStringTrimming);
63 virtual EGUIStringTrimming GetStringTrimming()const;
64
65 virtual void SetBackgroundColor(COLORREF clrBk);
66 virtual COLORREF GetBackgroundColor() const;
67
68 virtual void SetTextColor(COLORREF clrText);
69 virtual COLORREF GetTextColor()const;
70
71 virtual bool IsClickCallbackSet() const;
72 virtual bool IsLButtonUpCallbackSet() const;
73 virtual bool IsLButtonDblClkCallbackSet() const;
74 virtual bool IsMButtonUpCallbackSet() const;
75 virtual bool IsRButtonUpCallbackSet() const;
76
77 virtual bool SetLButtonUpCallback(CMenuBarButtonCallback* pFunc, bool bAutoDestroy = true);
78 virtual CMenuBarButtonCallback* GetLButtonUpCallback() const;
79
80 virtual bool SetLButtonDblClkCallback(CMenuBarButtonCallback* pFunc, bool bAutoDestroy = true);
81 virtual CMenuBarButtonCallback* GetLButtonDblClkCallback() const;
82
83 virtual bool SetMButtonUpCallback(CMenuBarButtonCallback* pFunc, bool bAutoDestroy = true);
84 virtual CMenuBarButtonCallback* GetMButtonUpCallback() const;
85
86 virtual bool SetRButtonUpCallback(CMenuBarButtonCallback* pFunc, bool bAutoDestroy = true);
87 virtual CMenuBarButtonCallback* GetRButtonUpCallback() const;
88
89 virtual void Set(
90 const Base::CFLString<wchar_t>& str,
91 COLORREF clrBackground = RGB(80, 80, 80),
92 COLORREF clrText = RGB(255, 255, 255),
93 bool bShow = true,
94 EGUIAlignment eAlign = EGUIAlignment_CENTER_CENTER,
95 EGUIStringTrimming eStringTrimming = EGUIStringTrimming_EllipsisCharacter
96 );
97
98 public:
99 CGUIMenuBar* m_pParentMenuBar;
100 Base::CFLBase* m_pBaseOwner;
101
102 CRect m_rect;
103 bool m_bIsVisible;
104 int32_t m_i32FullWidth;
105 int32_t m_i32ActualDisplayWidth;
106
107 Base::CFLString<wchar_t> m_strText;
108 EGUIAlignment m_eAlign;
109 EGUIStringTrimming m_eStringTrimming;
110
111 COLORREF m_clrBackground;
112 COLORREF m_clrText;
113
114 CMenuBarButtonCallback* m_pLButtonUpCallback;
115 CMenuBarButtonCallback* m_pLButtonDblClkCallback;
116 CMenuBarButtonCallback* m_pMButtonUpCallback;
117 CMenuBarButtonCallback* m_pRButtonUpCallback;
118 bool m_bLButtonDblClkCallbackAutoDestroy;
119 bool m_bLButtonUpCallbackAutoDestroy;
120 bool m_bMButtonUpCallbackAutoDestroy;
121 bool m_bRButtonUpCallbackAutoDestroy;
122 };
123 }
124}
EGUIStringTrimming
Cut option if string is out of layout square.
Definition GUIDefinitions.h:9360
EGUIAlignment
Alignment information.
Definition GUIDefinitions.h:9222