-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWindowLessMenu.h
More file actions
51 lines (37 loc) · 1.08 KB
/
WindowLessMenu.h
File metadata and controls
51 lines (37 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//////////////////////////////////////////////////////////////////////////
// FileName : WindowLessMenu.h
// Creator : 王文喜
// Data : 2021/05/10
// Comment : 无句柄菜单类
//////////////////////////////////////////////////////////////////////////
#pragma once
#include <vector>
#include "windowLessWidget.h"
class MouseEvent;
class ShowObject;
class WindowLessAction;
class WindowLessMenu : public WindowLessWidget
{
public:
WindowLessMenu(ShowObject* parent = nullptr);
virtual ~WindowLessMenu();
virtual void move(Point loc) override;
virtual void move(int x, int y) override;
void addAction(WindowLessAction* action);
/**
* @brief 添加一系列action,这些action会被均匀分配在一行中
*/
void addActions(std::vector<WindowLessAction*> actions);
virtual void show() override;
/**
* @brief 返回当前鼠标选择的action
*/
int chooseAction(MouseEvent* event);
protected:
void updateActionLoc(Point& oldLoc, Point& newLoc);
virtual void mousePressEvent(MouseEvent* event) override;
private:
int m_nMenuLine = 0;
int m_nActionNum = 0;
std::vector<WindowLessAction*> m_vecAction;
};