SimpleWindow
载入中...
搜索中...
未找到
Menu.h
1#pragma once
2
3#include "Alignment.h"
4#include "Event.h"
5#include "MenuItem.h"
6#include "Point.h"
7
8namespace sw
9{
10 class MenuBase; // 向前声明
11
16 {
17 public:
20 };
21
27
32 {
33 private:
37 std::unique_ptr<MenuItem> _root;
38
42 MenuItemClickedEventHandler _itemClicked;
43
44 public:
49
54
59
60 protected:
65
66 public:
70 virtual ~MenuBase() = default;
71
72 // 删除拷贝构造函数
73 MenuBase(const MenuBase &) = delete;
74
75 // 删除移动构造函数
76 MenuBase(MenuBase &&) = delete;
77
78 // 删除拷贝赋值运算符
79 MenuBase &operator=(const MenuBase &) = delete;
80
81 // 删除移动赋值运算符
82 MenuBase &operator=(MenuBase &&) = delete;
83
84 public:
91
98
105
111 MenuItem *FindMenuItemByText(const std::wstring &text);
112 };
113
117 class Menu : public MenuBase
118 {
119 public:
124
129 Menu(std::initializer_list<MenuItemDesc> items);
130 };
131
135 class ContextMenu : public MenuBase
136 {
137 public:
142
147 ContextMenu(std::initializer_list<MenuItemDesc> items);
148
157 bool Show(
158 HWND hwnd, const Point &point,
161 };
162}
上下文菜单
Definition Menu.h:136
ContextMenu()
初始化上下文菜单
bool Show(HWND hwnd, const Point &point, sw::HorizontalAlignment horz=sw::HorizontalAlignment::Left, sw::VerticalAlignment vert=sw::VerticalAlignment::Top)
在指定位置显示上下文菜单
ContextMenu(std::initializer_list< MenuItemDesc > items)
初始化上下文菜单并设置菜单项
值转换器接口
Definition IValueConverter.h:14
菜单类型的基类
Definition Menu.h:32
const Event< MenuItemClickedEventHandler > ItemClicked
菜单项被点击事件
Definition Menu.h:48
MenuItem * FindMenuItemByText(const std::wstring &text)
查找对应文本的菜单项
MenuBase(MenuItem *root)
创建菜单实例
bool RaiseClickedEvent(int menuItemId)
触发菜单项点击事件
const ReadOnlyProperty< MenuItem * > Root
根菜单项
Definition Menu.h:53
MenuItem * FindMenuItemByTag(uint64_t tag)
查找对应tag的菜单项
MenuItem * FindMenuItemById(int id)
查找对应ID的菜单项
virtual ~MenuBase()=default
析构函数
const ReadOnlyProperty< HMENU > Handle
菜单句柄
Definition Menu.h:58
菜单被点击事件参数
Definition Menu.h:16
MenuBase * menu
菜单项所在的菜单
Definition Menu.h:19
菜单项类
Definition MenuItem.h:70
窗口菜单
Definition Menu.h:118
Menu()
初始化窗口菜单
Menu(std::initializer_list< MenuItemDesc > items)
初始化窗口菜单并设置菜单项
SimpleWindow框架的顶级命名空间,所有公共类型、控件、枚举和工具函数均定义于此。
Definition Alignment.h:4
VerticalAlignment
垂直对齐方式
Definition Alignment.h:18
HorizontalAlignment
水平对齐方式
Definition Alignment.h:8
事件参数结构体
Definition Event.h:294
表示相对于左上角的点坐标
Definition Point.h:15