#!/usr/bin/env python # -*- coding: iso-8859-15 -*- """ BC (Border-Check) is a tool to retrieve info of traceroute tests over website navigation routes. GPLv3 - 2013 by psy (epsylon@riseup.net) """ import sys try: import gtk, gtk.glade except: print ("\nError importing: Gtk/Glade libs. \n\nOn Debian based systems, please try like root:\n\n $ apt-get install python-gtk2\n") sys.exit(2) class GuiUtils(object): @staticmethod def GetBuilder(name): builder = gtk.Builder() if not builder.add_from_file('builder.xml'): print 'XML file not found!' sys.exit(1) else: return builder @staticmethod def Error(title, text): """Show error popup""" dialog = gtk.MessageDialog( parent = None, flags = gtk.DIALOG_DESTROY_WITH_PARENT, type = gtk.MESSAGE_ERROR, buttons = gtk.BUTTONS_OK, message_format = text) dialog.set_title(title) dialog.connect('response', lambda dialog, response: dialog.destroy()) dialog.show() print text @staticmethod def Info(title, text): """Show info popup""" dialog = gtk.MessageDialog( parent = None, flags = gtk.DIALOG_DESTROY_WITH_PARENT, type = gtk.MESSAGE_INFO, buttons = gtk.BUTTONS_OK, message_format = text) dialog.set_title(title) dialog.connect('response', lambda dialog, response: dialog.destroy()) dialog.show() @staticmethod def Loading(title, text): """Show loading popup""" dialog = gtk.MessageDialog( parent = None, flags = gtk.DIALOG_DESTROY_WITH_PARENT, type = gtk.MESSAGE_INFO, buttons = gtk.BUTTONS_NONE, message_format = text) dialog.set_title(title) dialog.connect('response', lambda dialog, response: dialog.destroy()) dialog.show() return dialog @staticmethod def Warning(title, text): """Show warning popup""" dialog = gtk.MessageDialog( parent = None, flags = gtk.DIALOG_DESTROY_WITH_PARENT, type = gtk.MESSAGE_WARNING, buttons = gtk.BUTTONS_OK, message_format = text) dialog.set_title(title) dialog.connect('response', lambda dialog, response: dialog.destroy()) dialog.show() return dialog @staticmethod def Question(title, text): """Show question popup""" dialog = gtk.MessageDialog( parent = None, flags = gtk.DIALOG_DESTROY_WITH_PARENT, type = gtk.MESSAGE_QUESTION, buttons = gtk.BUTTONS_YES_NO, message_format = text) dialog.set_title(title) dialog.connect('response', lambda dialog, response: dialog.destroy()) dialog.show() return dialog class GuiStarter(object): """ Init the starter GUI box. """ def __init__(self): """ Start the GUI up and set the connections with the components. """ builder = GuiUtils.GetBuilder('builder') # get objects self.window = builder.get_object('builder') # defaults # signals