-
Benoit Favre authoredBenoit Favre authored
sourceview.py 1.96 KiB
#!/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()