FLImaging 6.5.8.1
GUIPopupMenu.h
1#pragma once
2
3#include <afxwin.h>
4
5namespace FLImaging
6{
7 namespace GUI
8 {
9 class CInternalGUIPopupMenu;
10 class CGUIPopupMenuShell;
11
12 class FL_EXPORT CGUIPopupMenu : public CMenu
13 {
14 friend class CGUIPopupMenuShell;
15
16 public:
17 CGUIPopupMenu();
18 virtual ~CGUIPopupMenu();
19
20 BOOL AppendMenu(UINT nFlags, UINT_PTR nIDNewItem = 0, LPCTSTR lpszNewItem = NULL);
21 CGUIPopupMenu* AppendSubMenu(UINT nFlags, Base::CFLString<wchar_t> flsSubMenu, const CBitmap* pBmpUnchecked = nullptr, const CBitmap* pBmpChecked = nullptr);
22
23 void Init(CWnd* pWnd);
24
25 BOOL TrackPopupMenu(UINT nFlags, int x, int y, CWnd* pWnd, LPCRECT lpRect = 0);
26
27 CGUIPopupMenuShell* GetPopupMenuShell();
28
29 virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) override;
30 virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct) override;
31
32 static void SetBackgroundColor(COLORREF clr);
33 static COLORREF GetBackgroundColor();
34
35 static void SetItemNormalColor(COLORREF clr);
36 static COLORREF GetItemNormalColor();
37
38 static void SetItemHotlightColor(COLORREF clr);
39 static COLORREF GetItemHotlightColor();
40
41 static void SetItemSelectedColor(COLORREF clr);
42 static COLORREF GetItemSelectedColor();
43
44 static void SetItemNormalTextColor(COLORREF clr);
45 static COLORREF GetItemNormalTextColor();
46
47 static void SetItemDisabledTextColor(COLORREF clr);
48 static COLORREF GetItemDisabledTextColor();
49
50 protected:
51 CInternalGUIPopupMenu* m_pInternal;
52 friend class CInternalGUIPopupMenu;
53
54 static COLORREF m_clrBackground;
55
56 static COLORREF m_clrItemNormal;
57 static COLORREF m_clrItemHotlight;
58 static COLORREF m_clrItemSelected;
59 static COLORREF m_clrItemSelectedDisable;
60
61 static COLORREF m_clrItemNormalText;
62 static COLORREF m_clrItemDisabledText;
63
64 int32_t m_i32LastSeparatorIndex;
65
66 CGUIPopupMenuShell* m_pPopupMenuShell;
67 };
68 }
69}