Files
GUI/src/event/EventCenter.h
2021-10-26 13:08:11 +08:00

55 lines
1.2 KiB
C++

//
// 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(RequestPreviewScan)\
ADD_EVENT_VALUE(RequestEmptyScan)\
ADD_EVENT_VALUE(RequestPatientScan)\
ADD_EVENT_VALUE(RequestStop)\
ADD_EVENT_VALUE(ResponseDeviceTemperature)\
ADD_EVENT_VALUE(ResponsePreview)\
ADD_EVENT_VALUE(ResponsePreviewData)\
ADD_EVENT_VALUE(ResponseStop)\
ADD_EVENT_VALUE(DeviceErrorRaise)\
ADD_EVENT_VALUE(ShimLibInnerFault)\
ADD_EVENT_VALUE(InvokeOperationStart)\
ADD_EVENT_VALUE(InvokeOperationProgress)\
ADD_EVENT_VALUE(InvokeOperationEnd)\
ADD_EVENT_VALUE(PromptDialogOpen)\
ADD_EVENT_VALUE(GlobalBannerMessage)\
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