Skip to content
Snippets Groups Projects
log.py 1.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • from gi.repository import Gtk
    import actions
    
    class ConsoleLogger:
        def __init__(self):
            pass
    
        def log(self, action):
            print 'Performed:', action.text
    
    class GtkLogger(Gtk.HBox):
        def __init__(self):
            super(Log, self).__init__()
            self.text = Gtk.TextView()
            self.text.set_editable(False)
            self.text.set_cursor_visible(False)
            self.buffer = self.text.get_buffer()
            self.scrolled = Gtk.ScrolledWindow()
            self.scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.ALWAYS)
            self.scrolled.add_with_viewport(self.text)
            #self.scrolled.set_size_request(-1, 100)
            self.pack_start(self.scrolled, True, True, 5)
    
        def log(self, action):
            self.buffer.insert_at_cursor('Performed: %s\n' % action.text)
            adj = self.scrolled.get_vadjustment()
            adj.set_value(adj.get_upper() - adj.get_page_size())
    
    if __name__ == '__main__':
        window = Gtk.Window()
        window.connect("destroy", Gtk.main_quit)
        logger = GtkLogger()
        window.add(logger)
        window.show_all()
        logger.log(actions.Action('coucou'))
        Gtk.main()