diff --git a/sourceview.py b/sourceview.py new file mode 100755 index 0000000000000000000000000000000000000000..c2f4e8b0d43be687353d2516cd3be24c1f39d4f5 --- /dev/null +++ b/sourceview.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python2 + +import sys +import os + +# set to location of libgstkaldionline2.so +os.environ['GST_PLUGIN_PATH'] = './asr/' +os.environ['GTK_THEME'] = 'light' + +# import gtk stuff +from threading import Thread +import gi +gi.require_version('Gst', '1.0') +from gi.repository import GObject, Gst, Gtk, Gdk, GtkSource +GObject.threads_init() +Gdk.threads_init() +Gst.init(None) + +# make sure ctrl-c works +import signal +signal.signal(signal.SIGINT, signal.SIG_DFL) + +# import local stuff +import asr + +class SourceView(Gtk.Window): + def __init__(self, asr_config_file): + super(SourceView, self).__init__() + + self.connect("destroy", self.quit) + self.set_default_size(800,600) + self.set_border_width(10) + self.set_title('SourceView') + vbox = Gtk.VBox() + + self.source_buffer = GtkSource.Buffer() + lang_manager = GtkSource.LanguageManager() + self.source_buffer.set_language(lang_manager.get_language('python')) + self.source_buffer.set_text(open(__file__).read()) + self.source_view = GtkSource.View.new_with_buffer(self.source_buffer) + self.source_view.set_show_line_numbers(True) + self.source_view.set_tab_width(4) + self.scrolled = Gtk.ScrolledWindow() + self.scrolled.add(self.source_view) + vbox.pack_start(self.scrolled, True, True, 5) + + self.asr = asr.ASR(asr_config_file, self.hyp_changed) + vbox.pack_start(self.asr, False, True, 5) + + self.add(vbox) + self.show_all() + + # load css style + style_provider = Gtk.CssProvider() + style_provider.load_from_data(open('data/style.css', 'rb').read()) + Gtk.StyleContext.add_provider_for_screen( Gdk.Screen.get_default(), style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) + + def hyp_changed(self, hyp): + pass + + def quit(self, window): + Gtk.main_quit() + + +if __name__ == '__main__': + asr_config_file = 'asr/fisher-benoit-1.cfg' + app = SourceView(asr_config_file) + Gtk.main()