summaryrefslogtreecommitdiff
path: root/rapid/gnomeglade.py
diff options
context:
space:
mode:
authorJulien Valroff <julien@kirya.net>2011-03-25 22:07:02 +0100
committerJulien Valroff <julien@kirya.net>2011-03-25 22:07:02 +0100
commit59350657b70c3c2bb9e1cf90817bb4607a00e4fe (patch)
tree4eb598ac0235c9cf1614eaf9e33b1d7d290e9e3d /rapid/gnomeglade.py
parent478f6858602c736b67d420cbf198aeab3313cc23 (diff)
parent6866d4a5b74779f087b8e44148a49163d8b7327b (diff)
Merge commit 'upstream/0.4.0_alpha1' into experimental
Diffstat (limited to 'rapid/gnomeglade.py')
-rw-r--r--rapid/gnomeglade.py166
1 files changed, 0 insertions, 166 deletions
diff --git a/rapid/gnomeglade.py b/rapid/gnomeglade.py
deleted file mode 100644
index c0b0860..0000000
--- a/rapid/gnomeglade.py
+++ /dev/null
@@ -1,166 +0,0 @@
-### Copyright (C) 2002-2006 Stephen Kennedy <stevek@gnome.org>
-
-### 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-"""Utility classes for working with glade files.
-
-"""
-# modified by Damon Lynch May 2009 to update i18n
-
-import gtk
-import gtk.glade
-import gnome
-import gnome.ui
-#import gettext
-import config
-from common import Configi18n
-
-class Base(object):
- """Base class for all glade objects.
-
- This class handles loading the xml glade file and connects
- all methods name 'on_*' to the signals in the glade file.
-
- The handle to the xml file is stored in 'self.xml'. The
- toplevel widget is stored in 'self.widget'.
-
- In addition it calls widget.set_data("pyobject", self) - this
- allows us to get the python object given only the 'raw' gtk+
- object, which is sadly sometimes necessary.
- """
-
- def __init__(self, file, root, override={}):
- """Load the widgets from the node 'root' in file 'file'.
-
- Automatically connects signal handlers named 'on_*'.
- """
- global _
- _ = Configi18n._
- if Configi18n.locale_path:
- gtk.glade.bindtextdomain(config.APP_NAME, Configi18n.locale_path)
- gtk.glade.textdomain(config.APP_NAME)
- self.xml = gtk.glade.XML(file, root, typedict=override )
- handlers = {}
- for h in filter(lambda x:x.startswith("on_"), dir(self.__class__)):
- handlers[h] = getattr(self, h)
- self.xml.signal_autoconnect( handlers )
- self.widget = getattr(self, root)
- self.widget.set_data("pyobject", self)
-
- def __getattr__(self, key):
- """Allow glade widgets to be accessed as self.widgetname.
- """
- widget = self.xml.get_widget(key)
- if widget: # cache lookups
- setattr(self, key, widget)
- return widget
- raise AttributeError(key)
-
- def flushevents(self):
- """Handle all the events currently in the main queue and return.
- """
- while gtk.events_pending():
- gtk.main_iteration();
-
- def _map_widgets_into_lists(self, widgetnames):
- """Put sequentially numbered widgets into lists.
-
- e.g. If an object had widgets self.button0, self.button1, ...,
- then after a call to object._map_widgets_into_lists(["button"])
- object has an attribute self.button == [self.button0, self.button1, ...]."
- """
- for item in widgetnames:
- setattr(self,item, [])
- lst = getattr(self,item)
- i = 0
- while 1:
- key = "%s%i"%(item,i)
- try:
- val = getattr(self, key)
- except AttributeError:
- break
- lst.append(val)
- i += 1
-
-
-class Component(Base):
- """A convenience base class for widgets which use glade.
- """
-
- def __init__(self, file, root, override={}):
- Base.__init__(self, file, root, override)
-
-
-class GtkApp(Base):
- """A convenience base class for gtk+ apps created in glade.
- """
-
- def __init__(self, file, root=None):
- Base.__init__(self, file, root)
-
- def main(self):
- """Enter the gtk main loop.
- """
- gtk.main()
-
- def quit(self, *args):
- """Signal the gtk main loop to quit.
- """
- gtk.main_quit()
-
-
-class GnomeApp(GtkApp):
- """A convenience base class for apps created in glade.
- """
-
- def __init__(self, name, version, file, root):
- """Initialise program 'name' and version from 'file' containing root node 'root'.
- """
- self.program = gnome.program_init(name, version)
- GtkApp.__init__(self,file,root)
- if 0:
- self.client = gnome.ui.Client()
- self.client.disconnect()
- def connected(*args):
- print "CONNECTED", args
- def cb(name):
- def cb2(*args):
- print name, args, "\n"
- return cb2
- self.client.connect("connect", cb("CON"))
- self.client.connect("die", cb("DIE"))
- self.client.connect("disconnect", cb("DIS"))
- self.client.connect("save-yourself", cb("SAVE"))
- self.client.connect("shutdown-cancelled", cb("CAN"))
- self.client.connect_to_session_manager()
-
-
-def load_pixbuf(fname, size=0):
- """Load an image from a file as a pixbuf, with optional resizing.
- """
- image = gtk.Image()
- image.set_from_file(fname)
- image = image.get_pixbuf()
- if size:
- aspect = float(image.get_height()) / image.get_width()
- image = image.scale_simple(size, int(aspect*size), 2)
- return image
-
-def url_show(url):
- return gnome.url_show(url)
-
-def FileEntry(*args):
- return gnome.ui.FileEntry(*args)
-