GitHub Sale: sign up for any paid plan this week and pay nothing until January 1, 2009!  [ hide ]

public
Description: Talk is a small, Clutter-based presentation application
Clone URL: git://github.com/ebassi/talk.git
Hook up the fullscreen machinery

Unfortunately, the canvas is expecting stuff at fixed size, so we can't
really fullscreen everything and expect it to work properly. For the time
being, at the very least.
Emmanuele Bassi (author)
Thu Feb 21 07:41:35 -0800 2008
commit  6f4d81ca60d88707afc7f022ac2c76af11919a63
tree    83e3ea51c505f122699c8628743377921cffaa9a
parent  ac6774644acac642c9c7afab8141cd11843754f9
...
27
28
29
30
31
 
 
32
33
34
...
42
43
44
45
46
 
 
47
48
 
 
 
49
 
50
51
52
...
57
58
59
60
61
 
 
 
 
 
 
 
 
 
 
 
62
63
64
65
 
 
 
 
 
 
 
 
 
 
66
67
68
...
74
75
76
 
77
78
79
...
93
94
95
 
96
97
98
...
107
108
109
 
110
111
112
...
27
28
29
 
30
31
32
33
34
35
...
43
44
45
 
 
46
47
48
49
50
51
52
53
54
55
56
57
...
62
63
64
 
 
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
...
98
99
100
101
102
103
104
...
118
119
120
121
122
123
124
...
133
134
135
136
137
138
139
0
@@ -27,8 +27,9 @@ class MainWindow (gtk.Window):
0
     def __init__ (self):
0
         gtk.Window.__init__ (self)
0
         self.set_title('Talk')
0
- self.set_default_size(1024, 600)
0
         self.set_position(gtk.WIN_POS_CENTER)
0
+ self.set_default_size(1024, 600)
0
+
0
         self.tree = gtk.glade.XML(join(talk.SHARED_DATA_DIR, 'talk.glade'), root='main_vbox')
0
         signals = {}
0
         for attr in dir(self):
0
@@ -42,11 +43,15 @@ class MainWindow (gtk.Window):
0
         view_box.pack_end(self._embed, False, False, 0)
0
         self._embed.show()
0
 
0
- main_vbox = self.tree.get_widget('main_vbox')
0
- self.add(main_vbox)
0
+ self._main_vbox = self.tree.get_widget('main_vbox')
0
+ self.add(self._main_vbox)
0
         self.show_all()
0
 
0
+ self._menu_bar = self.tree.get_widget('menu_bar')
0
+ self._slides_scroll = self.tree.get_widget('slides_scroll')
0
+ self._status_bar = self.tree.get_widget('status_bar')
0
         self._tree_view = self.tree.get_widget('slides_view')
0
+ self._fullscreen_menu_item = self.tree.get_widget('fullscreen_menu_item')
0
 
0
         column = gtk.TreeViewColumn('Slides', gtk.CellRendererText(), text=0)
0
         self._tree_view.append_column(column)
0
@@ -57,12 +62,31 @@ class MainWindow (gtk.Window):
0
     def on_quit_menu_item_activate (self, item):
0
         gtk.main_quit()
0
 
0
- def on_fullscreen_menu_item_activate (self, item):
0
- pass
0
+ def on_fullscreen_menu_item_toggled (self, item):
0
+ active = item.get_active()
0
+
0
+ if active:
0
+ self._menu_bar.hide()
0
+ self._slides_scroll.hide()
0
+ self._status_bar.hide()
0
+ self.fullscreen()
0
+ else:
0
+ self.unfullscreen()
0
+ self._main_vbox.show_all()
0
 
0
     def on_about_menu_item_activate (self, item):
0
         pass
0
 
0
+ def on_layout_key_press (self, layout, event):
0
+ if event.keyval == clutter.keysyms.f:
0
+ self._fullscreen_menu_item.toggled()
0
+ return True
0
+ elif event.keyval == clutter.keysyms.q:
0
+ gtk.main_quit()
0
+ return True
0
+
0
+ return False
0
+
0
     def on_slide_next (self, layout):
0
         selection = self._tree_view.get_selection()
0
         (model, iter) = selection.get_selected()
0
@@ -74,6 +98,7 @@ class MainWindow (gtk.Window):
0
                 return
0
 
0
         selection.select_iter(iter)
0
+ self._tree_view.scroll_to_cell(model.get_path(iter), None, False,0.0, 0.0)
0
 
0
     def on_slide_prev (self, layout):
0
         selection = self._tree_view.get_selection()
0
@@ -93,6 +118,7 @@ class MainWindow (gtk.Window):
0
                 return
0
 
0
         selection.select_iter(iter)
0
+ self._tree_view.scroll_to_cell(model.get_path(iter), None, False,0.0, 0.0)
0
 
0
     def build_talk (self):
0
         stage = self._embed.get_stage()
0
@@ -107,6 +133,7 @@ class MainWindow (gtk.Window):
0
         layout = TalkLayout(collection, bg)
0
         layout.connect('slide-next', self.on_slide_next)
0
         layout.connect('slide-prev', self.on_slide_prev)
0
+ layout.connect('key-press-event', self.on_layout_key_press)
0
         self._tree_view.set_model(model)
0
 
0
         stage.add(layout)

Comments

    No one has commented yet.