55 lines
1.2 KiB
C++
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
|