-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathimainwindow.h
More file actions
88 lines (79 loc) · 2.36 KB
/
imainwindow.h
File metadata and controls
88 lines (79 loc) · 2.36 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#ifndef IMAINWINDOW_H
#define IMAINWINDOW_H
#include <QToolBar>
#include <QVBoxLayout>
#include <QMainWindow>
#include <QStackedWidget>
#include <utils/menu.h>
#include <utils/toolbarchanger.h>
#include <utils/custombordercontainer.h>
#define MAINWINDOW_UUID "{a11424f5-279b-4e53-a1eb-ca938683c2ab}"
struct IInternalNotice
{
enum ActionType
{
ButtonAction,
ImageAction,
LinkAction
};
enum ActionRoles
{
TypeRole = Action::DR_UserDefined + 100,
ImageRole = Action::DR_UserDefined + 101
};
IInternalNotice() {
priority = -1;
}
int priority;
QIcon icon;
QString iconKey;
QString iconStorage;
QString caption;
QString message;
QList<Action *> actions;
};
class IInternalNoticeWidget
{
public:
virtual QWidget *instance() = 0;
virtual bool isEmpty() const =0;
virtual int activeNotice() const =0;
virtual QList<int> noticeQueue() const =0;
virtual IInternalNotice noticeById(int ANoticeId) const =0;
virtual int insertNotice(const IInternalNotice &ANotice) =0;
virtual void removeNotice(int ANoticeId) =0;
protected:
virtual void noticeWidgetReady() =0;
virtual void noticeInserted(int ANoticeId) =0;
virtual void noticeActivated(int ANoticeId) =0;
virtual void noticeRemoved(int ANoticeId) =0;
};
class IMainWindow
{
public:
virtual QMainWindow *instance() =0;
virtual bool isActive() const =0;
virtual Menu *mainMenu() const = 0;
virtual QVBoxLayout *mainLayout() const =0;
virtual QStackedWidget *upperWidget() const = 0;
virtual QStackedWidget *rostersWidget() const = 0;
virtual QStackedWidget *bottomWidget() const = 0;
virtual IInternalNoticeWidget *noticeWidget() const =0;
virtual ToolBarChanger *topToolBarChanger() const =0;
virtual ToolBarChanger *leftToolBarChanger() const =0;
virtual ToolBarChanger *statusToolBarChanger() const =0;
};
class IMainWindowPlugin
{
public:
virtual QObject *instance() = 0;
virtual IMainWindow *mainWindow() const = 0;
virtual QWidget *mainWindowTopWidget() const = 0;
virtual bool isMinimizeToTray() const =0;
virtual void showMainWindow() const =0;
virtual void hideMainWindow() const =0;
};
Q_DECLARE_INTERFACE(IInternalNoticeWidget,"Virtus.Plugin.IInternalNoticeWidget/1.0")
Q_DECLARE_INTERFACE(IMainWindow,"Virtus.Plugin.IMainWindow/1.0")
Q_DECLARE_INTERFACE(IMainWindowPlugin,"Virtus.Plugin.IMainWindowPlugin/1.0")
#endif