Add EventCenter
This commit is contained in:
19
src/event/EventCenter.cpp
Normal file
19
src/event/EventCenter.cpp
Normal 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
39
src/event/EventCenter.h
Normal 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
|
||||
Reference in New Issue
Block a user