aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--voctogui/lib/toolbar/composition.py29
1 files changed, 23 insertions, 6 deletions
diff --git a/voctogui/lib/toolbar/composition.py b/voctogui/lib/toolbar/composition.py
index 0185b7d..f473ccf 100644
--- a/voctogui/lib/toolbar/composition.py
+++ b/voctogui/lib/toolbar/composition.py
@@ -1,6 +1,8 @@
import logging
from gi.repository import Gtk
+import lib.connection as Connection
+
class CompositionToolbarController(object):
""" Manages Accelerators and Clicks on the Composition Toolbar-Buttons """
@@ -11,23 +13,38 @@ class CompositionToolbarController(object):
win.add_accel_group(accelerators)
composites = [
- 'composite-fullscreen',
- 'composite-picture-in-picture',
- 'composite-side-by-side-equal',
- 'composite-side-by-side-preview'
+ 'fullscreen',
+ 'picture_in_picture',
+ 'side_by_side_equal',
+ 'side_by_side_preview'
]
+ self.composite_btns = {}
+
for idx, name in enumerate(composites):
key, mod = Gtk.accelerator_parse('F%u' % (idx+1))
- btn = uibuilder.find_widget_recursive(drawing_area, name)
+ btn = uibuilder.find_widget_recursive(drawing_area, 'composite-'+name.replace('_', '-'))
btn.set_name(name)
# Thanks to http://stackoverflow.com/a/19739855/1659732
btn.get_child().add_accelerator('clicked', accelerators, key, mod, Gtk.AccelFlags.VISIBLE)
btn.connect('toggled', self.on_btn_toggled)
+ self.composite_btns[name] = btn
+
+ # connect event-handler and request initial state
+ Connection.on('composite_mode', self.on_composite_mode)
+ Connection.send('get_composite_mode')
+
+
def on_btn_toggled(self, btn):
if not btn.get_active():
return
- self.log.info("on_btn_toggled: %s", btn.get_name())
+ btn_name = btn.get_name()
+ self.log.info('composition-mode activated: %s', btn_name)
+ Connection.send('set_composite_mode', btn_name)
+
+ def on_composite_mode(self, mode):
+ self.log.info('on_composite_mode callback w/ mode %s', mode)
+ self.composite_btns[mode].set_active(True)