// // Created by Krad on 2021/10/11. // #ifndef GUI_EVENTCENTER_H #define GUI_EVENTCENTER_H #include #define ADD_EVENT()\ ADD_EVENT_VALUE(RequestLogin)\ ADD_EVENT_VALUE(RequestShutdown)\ ADD_EVENT_VALUE(LoginRoleChanged)\ ADD_EVENT_VALUE(PatientSelected)\ ADD_EVENT_VALUE(RequestPreviewScan)\ ADD_EVENT_VALUE(RequestEmptyScan)\ ADD_EVENT_VALUE(RequestPatientScan)\ ADD_EVENT_VALUE(RequestContinueScan)\ ADD_EVENT_VALUE(RequestFullScanStop)\ ADD_EVENT_VALUE(RequestPreviewStop)\ ADD_EVENT_VALUE(RequestDrainage)\ ADD_EVENT_VALUE(ResponseDeviceTemperature)\ ADD_EVENT_VALUE(ResponsePreview)\ ADD_EVENT_VALUE(ResponsePreviewData)\ ADD_EVENT_VALUE(ResponseStopPreview)\ ADD_EVENT_VALUE(DeviceErrorRaise)\ ADD_EVENT_VALUE(ShimLibInnerFault)\ ADD_EVENT_VALUE(InvokeOperationStart)\ ADD_EVENT_VALUE(InvokeOperationProgress)\ ADD_EVENT_VALUE(InvokeOperationPending)\ ADD_EVENT_VALUE(InvokeOperationEnd)\ ADD_EVENT_VALUE(PromptDialogOpen)\ ADD_EVENT_VALUE(GlobalBannerMessage)\ ADD_EVENT_VALUE(ReloadLanguage)\ ADD_EVENT_VALUE(WarnStateFlagChange)\ ADD_EVENT_VALUE(GUIErrorRaise)\ ADD_EVENT_VALUE(DeviceInfoRaise)\ ADD_EVENT_VALUE(RequestScreenSaver)\ ADD_EVENT_VALUE(ReconConnectionUpdated) 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