def __init__(self, widgets): gobject.GObject.__init__(self) self.widgets = {} interface = gtk.Builder() interface.add_from_file(join(dirname(__file__), 'add_dialog.glade')) self.dialog = interface.get_object('dialog') self.category_liststore = interface.get_object('categories') self.category_view = interface.get_object('category_view') self.widget_liststore = interface.get_object('widgets') self.widget_view = interface.get_object('widget_view') self.category_image = interface.get_object('category_image') self.category_description = interface.get_object('category_description') # connect signals self.dialog.connect('delete_event', lambda *x: self.dialog.hide()) self.category_view.connect('cursor-changed', lambda *x: self.on_category_change() ) self.widget_view.set_events(self.widget_view.get_events() | gtk.gdk.BUTTON_PRESS_MASK) self.widget_view.connect('button-press-event', self.widget_view_press_event_cb) # add the categories to the liststore alphabetically categories_ = sorted(categories.iteritems(), key=lambda c: c[1]['name'] ) theme = gtk.icon_theme_get_default() for id, category in categories_: icon_info = theme.lookup_icon(category['icon'], ICON_SIZE_SMALL, 0) icon = gtk.gdk.pixbuf_new_from_file_at_size(icon_info.get_filename(), ICON_SIZE_SMALL, ICON_SIZE_SMALL) self.category_liststore.append((category['name'], id, icon)) # group widgets into categories for widget in widgets: if not widget.get('categories'): category = 'org.cream.melange.CategoryMiscellaneous' self._add_to_category(category, widget) for category in widget['categories']: self._add_to_category(category['id'], widget) self.category_view.set_cursor(0)
def __init__(self, applets): self.applets = defaultdict() interface = gtk.Builder() interface.add_from_file(join(dirname(__file__), 'add_dialog.glade')) self.dialog = interface.get_object('dialog') self.category_liststore = interface.get_object('categories') self.category_view = interface.get_object('category_view') self.applet_liststore = interface.get_object('applets') self.applet_view = interface.get_object('applet_view') self.category_image = interface.get_object('category_image') self.category_description = interface.get_object('category_description') # connect signals self.dialog.connect('delete_event', lambda *x: self.dialog.hide()) self.category_view.connect('cursor-changed', lambda *x: self.on_category_change() ) # add the categories to the liststore alphabetically categories_ = sorted(categories.iteritems(), key=lambda c: c[1]['name'] ) for id, category in categories_: icon = gtk.gdk.pixbuf_new_from_file_at_size(category['icon'], 25, 25) self.category_liststore.append((category['name'], id, icon)) # group applets into categories for applet in applets: if not applet.get('categories'): category = 'org.cream.SimplePanel.CategoryAll' self._add_to_category(category, applet) for category in applet['categories']: self._add_to_category(category['id'], applet) self.category_view.set_cursor(0)
def __init__(self, applets): self.applets = defaultdict() interface = gtk.Builder() interface.add_from_file(join(dirname(__file__), 'add_dialog.glade')) self.dialog = interface.get_object('dialog') self.category_liststore = interface.get_object('categories') self.category_view = interface.get_object('category_view') self.applet_liststore = interface.get_object('applets') self.applet_view = interface.get_object('applet_view') self.category_image = interface.get_object('category_image') self.category_description = interface.get_object( 'category_description') # connect signals self.dialog.connect('delete_event', lambda *x: self.dialog.hide()) self.category_view.connect('cursor-changed', lambda *x: self.on_category_change()) # add the categories to the liststore alphabetically categories_ = sorted(categories.iteritems(), key=lambda c: c[1]['name']) for id, category in categories_: icon = gtk.gdk.pixbuf_new_from_file_at_size( category['icon'], 25, 25) self.category_liststore.append((category['name'], id, icon)) # group applets into categories for applet in applets: if not applet.get('categories'): category = 'org.cream.SimplePanel.CategoryAll' self._add_to_category(category, applet) for category in applet['categories']: self._add_to_category(category['id'], applet) self.category_view.set_cursor(0)