OpenStructure
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
stage
include
ost
gui
python_shell
transition.hh
Go to the documentation of this file.
1
#ifndef PYTHON_SHELL_TRANSITION_HH
2
#define PYTHON_SHELL_TRANSITION_HH
3
4
#include <utility>
5
#include <
ost/gui/python_shell/python_interpreter.hh
>
6
7
#include <QObject>
8
#include <QEvent>
9
#include "
transition_guard.hh
"
10
//fw decl
11
class
QKeyEvent;
12
class
QMouseEvent;
13
14
namespace
ost {
namespace
gui {
15
16
//fw decl
17
class
State;
18
class
PythonShellWidget;
19
class
ShellHistory;
20
21
class
TransitionBase
:
public
QObject{
22
Q_OBJECT
23
public
:
24
TransitionBase
(
State
* target,
TransitionGuard
* guard=
new
TransitionGuard
());
25
signals:
26
void
triggered
();
27
protected
:
28
void
trigger_
();
29
bool
is_active_
();
30
State
*
target_
;
31
TransitionGuard
*
guard_
;
32
};
33
34
class
AutomaticTransition
:
public
TransitionBase
{
35
Q_OBJECT
36
public
:
37
AutomaticTransition
(
State
* target,
TransitionGuard
* guard=
new
TransitionGuard
());
38
bool
checkTransition
();
39
};
40
41
class
SignalTransition
:
public
TransitionBase
{
42
Q_OBJECT
43
public
:
44
SignalTransition
(QObject * sender,
const
char
* signal,
State
* target,
TransitionGuard
* guard=
new
TransitionGuard
());
45
protected
slots:
46
void
onSignal
();
47
};
48
49
class
KeyEventTransition
:
public
TransitionBase
{
50
Q_OBJECT
51
public
:
52
KeyEventTransition
(
int
key,Qt::KeyboardModifiers modifiers,
State
* target,
bool
swallow_event=
true
,
TransitionGuard
* guard=
new
TransitionGuard
());
53
virtual
std::pair<bool,bool>
checkEvent
(QKeyEvent* event);
54
protected
:
55
int
key_
;
56
Qt::KeyboardModifiers
modifiers_
;
57
bool
swallow_
;
58
};
59
60
class
MouseEventTransition
:
public
TransitionBase
{
61
Q_OBJECT
62
public
:
63
MouseEventTransition
(
QEvent::Type
type,Qt::MouseButton button,Qt::KeyboardModifiers modifiers,
State
* target,
bool
swallow_event=
true
,
TransitionGuard
* guard=
new
TransitionGuard
());
64
virtual
std::pair<bool,bool>
checkEvent
(QMouseEvent* event);
65
protected
:
66
QEvent::Type
type_
;
67
Qt::MouseButton
button_
;
68
Qt::KeyboardModifiers
modifiers_
;
69
bool
swallow_
;
70
};
71
72
73
74
75
}}
//ns
76
#endif // PYTHON_SHELL_TRANSITION_HH
Generated on Mon Nov 5 2012 13:31:00 for OpenStructure by
1.8.1.1