#!/usr/bin/python # Copyright (C) 2006, Red Hat, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import os import pygtk pygtk.require('2.0') import gtk import gobject from sugar import env class LogBuffer(gtk.TextBuffer): def __init__(self, logfile): gtk.TextBuffer.__init__(self) self._logfile = logfile self._pos = 0 gobject.timeout_add(1000, self._update) def _update(self): f = open(self._logfile, 'r') f.seek(self._pos) self.insert(self.get_end_iter(), f.read()) self._pos = f.tell() f.close() return True window = gtk.Window() window.set_default_size(gtk.gdk.screen_width() * 3 / 4, gtk.gdk.screen_height() * 3 / 4) window.realize() window.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) scrolled = gtk.ScrolledWindow() scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) log_file = os.path.join(env.get_profile_path(), 'sugar.log') textview = gtk.TextView(LogBuffer(log_file)) textview.set_wrap_mode(gtk.WRAP_WORD) textview.set_editable(False) scrolled.add(textview) textview.show() window.add(scrolled) scrolled.show() window.show() gtk.main()