00001 #ifndef IGUANA_STUDIO_IG_QT_APP_CRASH_ALERT_SERVICE_H 00002 # define IGUANA_STUDIO_IG_QT_APP_CRASH_ALERT_SERVICE_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "Iguana/Studio/interface/config.h" 00007 # include "Iguana/Framework/interface/IgStateElement.h" 00008 # include <classlib/utils/Callback.h> 00009 # include <list> 00010 00011 //<<<<<< PUBLIC DEFINES >>>>>> 00012 //<<<<<< PUBLIC CONSTANTS >>>>>> 00013 //<<<<<< PUBLIC TYPES >>>>>> 00014 00015 class QWidget; 00016 00017 //<<<<<< PUBLIC VARIABLES >>>>>> 00018 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00019 //<<<<<< CLASS DECLARATIONS >>>>>> 00020 00021 class IGUANA_STUDIO_API IgQtAppCrashAlertService : public IgStateElement 00022 { 00023 IG_DECLARE_STATE_ELEMENT (IgQtAppCrashAlertService); 00024 public: 00025 IgQtAppCrashAlertService (IgState *state, QWidget *mainWindow); 00026 ~IgQtAppCrashAlertService (void); 00027 00028 virtual bool hasCrashed (void); 00029 virtual void addUnwind (lat::Callback action); 00030 virtual void removeUnwind (lat::Callback action); 00031 00032 private: 00033 IgState *m_state; 00034 QWidget *m_mainWindow; 00035 QWidget *m_popup; 00036 std::list<lat::Callback> m_unwinds; 00037 00038 // undefined semantics 00039 IgQtAppCrashAlertService (const IgQtAppCrashAlertService &); 00040 IgQtAppCrashAlertService &operator= (const IgQtAppCrashAlertService &); 00041 }; 00042 00043 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00044 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00045 00046 #endif // IGUANA_STUDIO_IG_QT_APP_CRASH_ALERT_SERVICE_H