d9c84cc91f86f446980792d7ae9d7efa46afeb0c
[watersofshiloah] / hand_tests / fake_player.py
1 import logging
2
3 import gobject
4 import gtk
5
6
7 _moduleLogger = logging.getLogger(__name__)
8
9
10 class FakePlayer(gobject.GObject):
11
12         __gsignals__ = {
13                 'state_change' : (
14                         gobject.SIGNAL_RUN_LAST,
15                         gobject.TYPE_NONE,
16                         (gobject.TYPE_PYOBJECT, ),
17                 ),
18                 'navigate_change' : (
19                         gobject.SIGNAL_RUN_LAST,
20                         gobject.TYPE_NONE,
21                         (gobject.TYPE_PYOBJECT, ),
22                 ),
23                 'title_change' : (
24                         gobject.SIGNAL_RUN_LAST,
25                         gobject.TYPE_NONE,
26                         (gobject.TYPE_PYOBJECT, ),
27                 ),
28         }
29
30         def __init__(self):
31                 gobject.GObject.__init__(self)
32
33                 self._title = gtk.Entry()
34                 self._title.connect("activate", self._title_change)
35
36                 self._playButton = gtk.RadioButton(label="Play")
37                 self._playButton.connect("clicked", self._state_change, "play")
38                 self._pauseButton = gtk.RadioButton(group=self._playButton, label="Pause")
39                 self._pauseButton.connect("clicked", self._state_change, "pause")
40                 self._stopButton = gtk.RadioButton(group=self._playButton, label="stop")
41                 self._stopButton.connect("clicked", self._state_change, "stop")
42
43                 self._canNavigate = gtk.CheckButton("Can Navigate?")
44                 self._canNavigate.connect("clicked", self._navigate_change)
45
46                 self._layout = gtk.VBox()
47                 self._layout.pack_start(self._title)
48                 self._layout.pack_start(self._playButton)
49                 self._layout.pack_start(self._pauseButton)
50                 self._layout.pack_start(self._stopButton)
51                 self._layout.pack_start(self._canNavigate)
52
53                 self._state = "play"
54
55         @property
56         def toplevel(self):
57                 return self._layout
58
59         @property
60         def title(self):
61                 return self._title.get_text()
62
63         @property
64         def can_navigate(self):
65                 return self._canNavigate.get_active()
66
67         @property
68         def state(self):
69                 return self._state
70
71         @property
72         def background(self):
73                 return "night_temple_background"
74
75         def _state_change(self, widget, state):
76                 self.emit("state_change", state)
77                 self._state = state
78
79         def _navigate_change(self, widget):
80                 self.emit("navigate_change", self._canNavigate.get_active())
81
82         def _title_change(self, widget):
83                 self.emit("title_change", self._title.get_text())
84
85         def play(self):
86                 _moduleLogger.info("play")
87
88         def pause(self):
89                 _moduleLogger.info("pause")
90
91         def stop(self):
92                 _moduleLogger.info("stop")
93
94         def back(self):
95                 _moduleLogger.info("back")
96
97         def next(self):
98                 _moduleLogger.info("next")
99
100
101 gobject.type_register(FakePlayer)