#ifndef GUI_EVENTCENTER_H #define GUI_EVENTCENTER_H #include #define ADD_EVENT()\ ADD_EVENT_VALUE(RequestLogin)\ ADD_EVENT_VALUE(LoginSuccess)\ 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(RequestWaterflood)\ ADD_EVENT_VALUE(RequestWaterClean)\ ADD_EVENT_VALUE(RequestWaterModeExit)\ 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(AnonymousModeChanged)\ ADD_EVENT_VALUE(WarnStateFlagChange)\ ADD_EVENT_VALUE(GUIErrorRaise)\ ADD_EVENT_VALUE(DeviceInfoRaise)\ ADD_EVENT_VALUE(RequestScreenSaver)\ ADD_EVENT_VALUE(ReconConnectionUpdated)\ ADD_EVENT_VALUE(InputWorkListSearchValue)\ ADD_EVENT_VALUE(WorklistSearchFinished)\ ADD_EVENT_VALUE(ErrorStateActive)\ ADD_EVENT_VALUE(ErrorStateUnactive)\ ADD_EVENT_VALUE(StartScanProcess)\ ADD_EVENT_VALUE(StopScanProcess)\ ADD_EVENT_VALUE(CurrentUserInfoChanged)\ ADD_EVENT_VALUE(EmptyScanFinished)\ ADD_EVENT_VALUE(EmptyScanDataCorrupted)\ ADD_EVENT_VALUE(EmptyScanDataStateUpdated)\ ADD_EVENT_VALUE(EmptyScanDataBroked)\ ADD_EVENT_VALUE(EmptyScanDataExpire)\ ADD_EVENT_VALUE(UserVerificationSuccess)\ ADD_EVENT_VALUE(UsctStateUpdated)\ ADD_EVENT_VALUE(SetSelectedPatient)\ 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