00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef TRANSITION_GUARD_HH
00021 #define TRANSITION_GUARD_HH
00022
00023 #include "python_shell_fw.hh"
00024 #include "python_interpreter.hh"
00025 #include <QObject>
00026
00027 namespace ost { namespace gui {
00028
00029
00030
00031 class ShellHistory;
00032 class PythonShellWidget;
00033
00034
00035 class TransitionGuard: public QObject
00036 {
00037 Q_OBJECT
00038
00039 public:
00040 TransitionGuard();
00041 virtual bool check();
00042 };
00043
00044
00045
00046 class HistoryGuard : public TransitionGuard
00047 {
00048 public:
00049 HistoryGuard(ShellHistory* history, BlockEditMode mode);
00050 virtual bool check();
00051 protected:
00052 ShellHistory* history_;
00053 BlockEditMode mode_;
00054 };
00055
00056 class EditPositionGuard : public TransitionGuard
00057 {
00058 public:
00059 enum FLAGS{
00060 ALWAYSTRUE=0,
00061 SMALLER=1,
00062 EQUAL=2,
00063 BIGGER=4,
00064 ANCHORSMALLER=8,
00065 ANCHOREQUAL=16,
00066 ANCHORBIGGER=32
00067 };
00068 EditPositionGuard(PythonShellWidget* shell,int flags1, int flags2=ALWAYSTRUE);
00069 virtual bool check();
00070 protected:
00071 virtual bool check_flag(int flag);
00072 PythonShellWidget* shell_;
00073 int flags1_;
00074 int flags2_;
00075 };
00076
00077 class BlockStatusGuard : public TransitionGuard
00078 {
00079 public:
00080 BlockStatusGuard(PythonShellWidget* shell, int status);
00081 virtual bool check();
00082 protected:
00083 PythonShellWidget* shell_;
00084 int status_;
00085 };
00086
00087
00088
00089 }}
00090
00091
00092 #endif // TRANSITION_GUARD_HH