Update year to 2009 in various places
[zeroinstall/zeroinstall-rsl.git] / zeroinstall / 0launch-gui / combo_compat.py
bloba01df048c9dd3667e27c3b9c5c11ee5a80b63ddf
1 # Copyright (C) 2009, Thomas Leonard
2 # See the README file for details, or visit http://0install.net.
4 import gtk, gobject
6 class Action(gobject.GObject):
7 __proxy = None
8 __sensitive = True
10 __gproperties__ = {
11 'sensitive' : (gobject.TYPE_BOOLEAN, # type
12 'sensitive', # nick name
13 'sensitive', # description
14 True, # default value
15 gobject.PARAM_READWRITE) # flags
18 __gsignals__ = {
19 'activate' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ())
22 def __init__(self, name, label, tooltip, stock_id):
23 gobject.GObject.__init__(self)
25 def do_get_property(self, property):
26 return getattr(self, property.name)
28 def do_set_property(self, property, value):
29 setattr(self, property.name, value)
31 def connect_proxy(self, widget):
32 assert self.__proxy is None
33 self.__proxy = widget
34 self.sensitive = self.__sensitive
35 widget.connect('clicked', lambda w: self.emit('activate'))
37 def set_sensitive(self, value):
38 if self.__proxy:
39 self.__proxy.set_sensitive(value)
40 self.__sensitive = value
42 sensitive = property(lambda self: self.__sensitive, set_sensitive)
44 gobject.type_register(Action)
46 class ComboText(gtk.OptionMenu):
47 def __init__(self):
48 gtk.OptionMenu.__init__(self)
49 self.__menu = gtk.Menu()
50 self.__model = []
51 self.set_menu(self.__menu)
53 def append_text(self, text):
54 item = gtk.MenuItem(text)
55 self.__model.append([text])
56 self.__menu.append(item)
58 def set_active(self, i):
59 self.set_history(i)
61 def get_active(self):
62 return self.get_history()
64 def get_model(self):
65 return self.__model
67 def combo_box_new_text():
68 return ComboText()
70 gtk.combo_box_new_text = combo_box_new_text
71 gtk.Action = Action