diff options
Diffstat (limited to 'voctogui/lib/toolbar/streamblank.py')
-rw-r--r-- | voctogui/lib/toolbar/streamblank.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/voctogui/lib/toolbar/streamblank.py b/voctogui/lib/toolbar/streamblank.py new file mode 100644 index 0000000..074fb80 --- /dev/null +++ b/voctogui/lib/toolbar/streamblank.py @@ -0,0 +1,45 @@ +import logging +from gi.repository import Gtk + +class StreamblankToolbarController(object): + """ Manages Accelerators and Clicks on the Composition Toolbar-Buttons """ + + def __init__(self, drawing_area, win, uibuilder, warning_overlay): + self.log = logging.getLogger('StreamblankToolbarController') + + self.warning_overlay = warning_overlay + + blank_sources = ['pause', 'nostream'] + + + livebtn = uibuilder.find_widget_recursive(drawing_area, 'stream_live') + blankbtn = uibuilder.find_widget_recursive(drawing_area, 'stream_blank') + + blankbtn_pos = drawing_area.get_item_index(blankbtn) + + livebtn.connect('toggled', self.on_btn_toggled) + livebtn.set_name('live') + + for idx, name in enumerate(blank_sources): + if idx == 0: + new_btn = blankbtn + else: + new_icon = Gtk.Image.new_from_pixbuf(blankbtn.get_icon_widget().get_pixbuf()) + new_btn = Gtk.RadioToolButton(group=livebtn) + new_btn.set_icon_widget(new_icon) + drawing_area.insert(new_btn, blankbtn_pos+1) + + new_btn.set_label("Stream %s" % name) + new_btn.connect('toggled', self.on_btn_toggled) + new_btn.set_name(name) + + def on_btn_toggled(self, btn): + if not btn.get_active(): + return + + self.log.info("on_btn_toggled: %s", btn.get_name()) + if btn.get_name() == 'live': + self.warning_overlay.disable() + + else: + self.warning_overlay.enable(btn.get_name()) |