Add EventCenter

This commit is contained in:
Krad
2021-10-12 17:38:00 +08:00
parent af0bb87683
commit 784cc80ec5
2 changed files with 58 additions and 0 deletions

19
src/event/EventCenter.cpp Normal file
View File

@@ -0,0 +1,19 @@
//
// Created by Krad on 2021/10/11.
//
#include "EventCenter.h"
void EventCenter::triggerEvent(GUIEvents event, QObject *sender, QObject *data) {
switch (event) {
#define ADD_EVENT_VALUE(val)\
case GUIEvents:: val :\
{\
emit val(sender,data);\
}
ADD_EVENT()
#undef ADD_EVENT_VALUE
default:
break;
}
}

39
src/event/EventCenter.h Normal file
View File

@@ -0,0 +1,39 @@
//
// Created by Krad on 2021/10/11.
//
#ifndef GUI_EVENTCENTER_H
#define GUI_EVENTCENTER_H
#include <QObject>
#define ADD_EVENT()\
ADD_EVENT_VALUE(PatientSelected)\
ADD_EVENT_VALUE(GUIErrorRaise)
enum GUIEvents{
#define ADD_EVENT_VALUE(val) val,
ADD_EVENT()
#undef ADD_EVENT_VALUE
};
class EventCenter:public QObject {
Q_OBJECT
public:
static EventCenter* Default(){
static EventCenter instance;
return &instance;
}
void triggerEvent(GUIEvents event,QObject* sender,QObject* data);
signals:
#define ADD_EVENT_VALUE(val)\
void val(QObject* sender,QObject* data);
ADD_EVENT()
#undef ADD_EVENT_VALUE
};
#endif //GUI_EVENTCENTER_H