00001 #ifndef PYTHON_SHELL_STATE_HH 00002 #define PYTHON_SHELL_STATE_HH 00003 00004 #include <QObject> 00005 #include <QList> 00006 00007 //fw decl 00008 class QKeyEvent; 00009 class QMouseEvent; 00010 00011 namespace ost { namespace gui { 00012 00013 //fw decl 00014 class SignalTransition; 00015 class MouseEventTransition; 00016 class KeyEventTransition; 00017 class AutomaticTransition; 00018 00019 class State: public QObject{ 00020 Q_OBJECT 00021 public: 00022 State(); 00023 void addTransition(SignalTransition * transition); 00024 void addTransition(MouseEventTransition * transition); 00025 void addTransition(KeyEventTransition* transition); 00026 void addTransition(AutomaticTransition* transition); 00027 bool isActive(); 00028 void setActive(); 00029 bool checkEvent(QKeyEvent* event); 00030 bool checkEvent(QMouseEvent* event); 00031 bool checkAutomaticTransitions(); 00032 virtual void onEntry(); 00033 virtual void onExit(); 00034 signals: 00035 void entered(); 00036 void exited(); 00037 protected: 00038 QList<MouseEventTransition*> mouse_event_transitions_; 00039 QList<KeyEventTransition*> key_event_transitions_; 00040 QList<AutomaticTransition*> automatic_transitions_; 00041 }; 00042 00043 00044 }}//ns 00045 #endif // PYTHON_SHELL_STATE_HH
1.5.8