#!/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()