From e1fae24a3b145d42eaa40d62f7aed8f00d6bdf51 Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sat, 23 May 2015 10:43:56 +0200 Subject: basic gui --- voctogui/lib/args.py | 20 ++++++++++++++++++++ voctogui/lib/config.py | 24 ++++++++++++++++++++++++ voctogui/lib/uibuilder.py | 27 +++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 voctogui/lib/args.py create mode 100644 voctogui/lib/config.py create mode 100644 voctogui/lib/uibuilder.py (limited to 'voctogui/lib') diff --git a/voctogui/lib/args.py b/voctogui/lib/args.py new file mode 100644 index 0000000..3a9032f --- /dev/null +++ b/voctogui/lib/args.py @@ -0,0 +1,20 @@ +#!/usr/bin/python3 +import argparse + +__all__ = ['Args'] + +parser = argparse.ArgumentParser(description='Voctogui') +parser.add_argument('-v', '--verbose', action='count', + help="Also print INFO and DEBUG messages.") + +parser.add_argument('-c', '--color', action='store', choices=['auto', 'always', 'never'], default='auto', + help="Control the use of colors in the Log-Output") + +parser.add_argument('-i', '--ini-file', action='store', + help="Load a custom config.ini-File") + +parser.add_argument('-u', '--ui-file', action='store', + help="Load a custom .ui-File") + + +Args = parser.parse_args() diff --git a/voctogui/lib/config.py b/voctogui/lib/config.py new file mode 100644 index 0000000..b06075c --- /dev/null +++ b/voctogui/lib/config.py @@ -0,0 +1,24 @@ +#!/usr/bin/python3 +import os.path +from configparser import SafeConfigParser +from lib.args import Args + +__all__ = ['Config'] + +def getlist(self, section, option): + return [x.strip() for x in self.get(section, option).split(',')] + +SafeConfigParser.getlist = getlist + +files = [ + os.path.join(os.path.dirname(os.path.realpath(__file__)), '../default-config.ini'), + os.path.join(os.path.dirname(os.path.realpath(__file__)), '../config.ini'), + '/etc/voctogui.ini', + os.path.expanduser('~/.voctogui.ini'), +] + +if Args.ini_file is not None: + files.append(Args.ini_file) + +Config = SafeConfigParser() +Config.read(files) diff --git a/voctogui/lib/uibuilder.py b/voctogui/lib/uibuilder.py new file mode 100644 index 0000000..8d8b245 --- /dev/null +++ b/voctogui/lib/uibuilder.py @@ -0,0 +1,27 @@ +#!/usr/bin/python3 +import gi, logging +from gi.repository import Gtk, Gst + +class UiBuilder(Gtk.Builder): + def __init__(self): + self.log = logging.getLogger('UiBuilder') + super().__init__() + + def setup(self): + # Aquire the Main-Window from the UI-File + self.log.debug('Loading Main-Window "window" from .ui-File') + self.win = self.get_check_widget("window") + + # Connect Close-Handler + self.win.connect("delete-event", Gtk.main_quit) + + def show(self): + self.win.show_all() + + def get_check_widget(self, widget_id): + widget = self.get_object(widget_id) + if not widget: + self.log.error('could not load required widget "%s" from the .ui-File', widget_id) + raise Exception('Widget not found in .ui-File') + + return widget -- cgit v1.2.3