def ScrollThingy() : if has_hildon: try: #this will only work on maemo5; f**k Nokia's shitty documentation the_scroll_thing = hildon.PannableArea() except: # a simple version check would be better, but the documentation is crap the_scroll_thing = gtk.ScrolledWindow() hildon.hildon_helper_set_thumb_scrollbar(the_scroll_thing, True) the_scroll_thing.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC) the_scroll_thing.set_shadow_type(gtk.SHADOW_NONE) else: the_scroll_thing = gtk.ScrolledWindow() the_scroll_thing.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC) the_scroll_thing.set_shadow_type(gtk.SHADOW_NONE) return the_scroll_thing
def Show(self): main_vbox = gtk.VBox() vbox = gtk.VBox() self._hpaned = gtk.HPaned() self._player_vbox = gtk.VBox() self._drawing_area = gtk.DrawingArea() color = gtk.gdk.Color(0, 0, 0) self._drawing_area.modify_bg(gtk.STATE_NORMAL, color) self._drawing_area.connect('expose-event', self._on_drawing_area_exposed) self._player_vbox.pack_start(self._drawing_area) vbox.pack_start(self._player_vbox, True) self._seek_scale = gtk.HScale() self._seek_scale.set_range(0, 1) self._seek_scale.set_draw_value(False) self._seek_scale.connect('value-changed', self._on_seek_value_changed) vbox.pack_start(self._seek_scale, False) self._hpaned.add1(vbox) self._sidepane_vbox = gtk.VBox() s_w = gtk.ScrolledWindow() s_w.set_shadow_type(gtk.SHADOW_IN) s_w.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) if RUNNING_HILDON: hildon.hildon_helper_set_thumb_scrollbar(s_w, True) self._queue_listview = gtk.TreeView() model = gtk.ListStore(str, str, str, gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT) #uri, title to display, current track indicator, current pos, user data self._queue_listview.set_model(model) column = gtk.TreeViewColumn(_("")) renderer = gtk.CellRendererText() column.pack_start(renderer, True) column.set_attributes(renderer, markup=2) self._queue_listview.append_column(column) column = gtk.TreeViewColumn(_("Playlist")) renderer = gtk.CellRendererText() column.pack_start(renderer, True) column.set_attributes(renderer, markup=1) self._queue_listview.append_column(column) self._queue_listview.connect('row-activated', self._on_queue_row_activated) self._queue_listview.connect('button-press-event', self._on_queue_row_button_press) self._queue_listview.get_selection().set_mode(gtk.SELECTION_MULTIPLE) #dnd reorder self._TARGET_TYPE_REORDER = 80 self._TARGET_TYPE_URI_LIST = 81 drop_types = [('reorder',gtk.TARGET_SAME_WIDGET, self._TARGET_TYPE_REORDER), ('text/uri-list',0,self._TARGET_TYPE_URI_LIST)] #for removing items from favorites and reordering self._queue_listview.enable_model_drag_source(gtk.gdk.BUTTON1_MASK, drop_types, gtk.gdk.ACTION_MOVE) self._queue_listview.enable_model_drag_dest(drop_types, gtk.gdk.ACTION_DEFAULT) self._queue_listview.connect('drag-data-received', self._on_queue_drag_data_received) s_w.add(self._queue_listview) self._sidepane_vbox.pack_start(s_w, True) button = gtk.Button(stock='gtk-remove') button.connect("clicked", self._on_remove_clicked) if not RUNNING_HILDON: button_box = gtk.HButtonBox() button_box.set_property('layout-style', gtk.BUTTONBOX_END) button_box.add(button) self._sidepane_vbox.pack_start(button_box, False) else: list_bottom_hbox = gtk.HBox(False) list_bottom_hbox.pack_start(button, False) self._sidepane_vbox.pack_start(list_bottom_hbox, False) self._hpaned.add2(self._sidepane_vbox) main_vbox.add(self._hpaned) self._controls_hbox = gtk.HBox() self._controls_hbox.set_spacing(6) button_box = gtk.HButtonBox() button_box.set_homogeneous(False) button_box.set_property('layout-style', gtk.BUTTONBOX_START) if not RUNNING_HILDON: image = gtk.Image() image.set_from_stock("gtk-media-previous",gtk.ICON_SIZE_BUTTON) button = gtk.Button() button.set_image(image) else: button = gtk.Button() label = gtk.Label(_("Prev")) label.set_use_markup(True) button.add(label) label.show() button.set_property('can-focus', False) button.connect("clicked", self._on_prev_clicked) button_box.pack_start(button, True, True) if not RUNNING_HILDON: image = gtk.Image() image.set_from_stock("gtk-media-rewind",gtk.ICON_SIZE_BUTTON) button = gtk.Button() button.set_image(image) else: button = gtk.Button(_("Rew")) button.set_property('can-focus', False) button.connect("clicked", self._on_rewind_clicked) button_box.pack_start(button, True, True) if not RUNNING_HILDON: image = gtk.Image() image.set_from_stock("gtk-media-play",gtk.ICON_SIZE_BUTTON) self._play_pause_button = gtk.Button() self._play_pause_button.set_image(image) else: self._play_pause_button = gtk.Button(_("Play")) self._play_pause_button.set_property('can-focus', False) self._play_pause_button.connect("clicked", self._on_play_pause_toggle_clicked) button_box.pack_start(self._play_pause_button, True, True) if not RUNNING_HILDON: image = gtk.Image() image.set_from_stock("gtk-media-stop",gtk.ICON_SIZE_BUTTON) button = gtk.Button() button.set_image(image) else: button = gtk.Button(_("Stop")) button.set_property('can-focus', False) button.connect("clicked", self._on_stop_clicked) button_box.pack_start(button, True, True) if not RUNNING_HILDON: image = gtk.Image() image.set_from_stock("gtk-media-forward",gtk.ICON_SIZE_BUTTON) button = gtk.Button() button.set_image(image) else: button = gtk.Button(_("FF")) button.set_property('can-focus', False) button.connect("clicked", self._on_forward_clicked) button_box.pack_start(button, True, True) if not RUNNING_HILDON: image = gtk.Image() image.set_from_stock("gtk-media-next",gtk.ICON_SIZE_BUTTON) button = gtk.Button() button.set_image(image) else: button = gtk.Button(_("Next")) button.set_property('can-focus', False) button.connect("clicked", self._on_next_clicked) button_box.pack_start(button, True, True) self._controls_hbox.pack_start(button_box, False) self._time_label = gtk.Label("") self._time_label.set_alignment(0.0,0.5) if not RUNNING_HILDON: self._controls_hbox.pack_start(self._time_label, True) else: list_bottom_hbox.pack_start(self._time_label, True) list_bottom_hbox.reorder_child(self._time_label, 0) main_vbox.pack_start(self._controls_hbox, False) self._layout_dock.add(main_vbox) self.gstreamer_init() self._layout_dock.show_all()
def Show(self): widget_tree = gtk.glade.XML(self._gladefile, 'download_view', 'penguintv') for key in dir(self.__class__): #python insaneness if key[:3] == 'on_': widget_tree.signal_connect(key, getattr(self, key)) if utils.RUNNING_SUGAR: widget_tree.get_widget('stop_toolbutton').set_stock_id(None) widget_tree.get_widget('stop_toolbutton').set_icon_name( 'stock-close') widget_tree.get_widget('pause_toolbutton').set_stock_id(None) widget_tree.get_widget('pause_toolbutton').set_icon_name( 'stock-media-pause') widget_tree.get_widget('resume_toolbutton').set_stock_id(None) widget_tree.get_widget('resume_toolbutton').set_icon_name( 'stock-go-down') if utils.RUNNING_HILDON: sw = widget_tree.get_widget('d_v_scrolledwindow') hildon.hildon_helper_set_thumb_scrollbar(sw, True) self._widget = widget_tree.get_widget('download_view') self._resume_button = widget_tree.get_widget('resume_toolbutton') self._resume_button.set_sensitive(False) self._downloads_listview = widget_tree.get_widget('download_list') try: self._downloads_listview.set_rubber_banding(True) except: pass #not everyone can do this selection = self._downloads_listview.get_selection() selection.set_mode(gtk.SELECTION_MULTIPLE) selection.connect("changed", self._on_selection_changed) column = gtk.TreeViewColumn(_('')) column.set_resizable(True) renderer = gtk.CellRendererPixbuf() column.pack_start(renderer, True) column.set_attributes(renderer, pixbuf=D_PIXBUF) self._downloads_listview.append_column(column) column = gtk.TreeViewColumn(_('Progress')) column.set_resizable(True) renderer = gtk.CellRendererProgress() column.pack_start(renderer, True) column.set_attributes(renderer, value=D_PROGRESS) self._downloads_listview.append_column(column) column = gtk.TreeViewColumn(_('Description')) column.set_resizable(True) renderer = gtk.CellRendererText() column.pack_start(renderer, True) column.set_attributes(renderer, markup=D_DESCRIPTION_MARKUP) self._downloads_listview.append_column(column) column = gtk.TreeViewColumn(_('Size')) column.set_resizable(True) renderer = gtk.CellRendererText() column.pack_start(renderer, True) column.set_attributes(renderer, markup=D_SIZE_MARKUP) self._downloads_listview.append_column(column) column = gtk.TreeViewColumn(_('Status')) column.set_resizable(True) renderer = gtk.CellRendererText() column.pack_start(renderer, True) column.set_attributes(renderer, markup=D_STATUS_MARKUP) self._downloads_listview.append_column(column) self._downloads_listview.columns_autosize() self._downloads_listview.set_model(self._downloads_liststore) self._widget.show_all()
def __init__(self, dock_widget, main_window, db, share_path, feed_list_view=None, app=None, renderer=EntryFormatter.WEBKIT): gobject.GObject.__init__(self) #public self.presently_selecting = False #protected self._app = app if self._app is not None: self._mm = self._app.mediamanager else: self._mm = None self._main_window = main_window self._db = db self._renderer = renderer #self._renderer = EntryFormatter.GTKHTML self._current_feed_id = -1 self._feed_title = "" self._state = S_DEFAULT self._auth_info = (-1, "", "") #user:pass, url self._custom_message = "" self._last_link = "" self._current_link = None self._search_query = None self._filter_feed = None self._hide_viewed = False self._ignore_next_event = False self._USING_AJAX = False self._entrylist = [] self._entry_store = {} self._convert_newlines = False self._first_entry = 0 #first entry visible self._html_dock = dock_widget self._scrolled_window = gtk.ScrolledWindow() if utils.RUNNING_HILDON: hildon.hildon_helper_set_thumb_scrollbar(self._scrolled_window, True) self._html_dock.add(self._scrolled_window) self._scrolled_window.set_property("hscrollbar-policy", gtk.POLICY_AUTOMATIC) self._scrolled_window.set_property("vscrollbar-policy", gtk.POLICY_AUTOMATIC) self._scrolled_window.set_flags(self._scrolled_window.flags() & gtk.CAN_FOCUS) if self._renderer == EntryFormatter.WEBKIT: self._scrolled_window.set_shadow_type(gtk.SHADOW_IN) style = self._html_dock.get_style().copy() self._background_color = "#%.2x%.2x%.2x;" % ( style.base[gtk.STATE_NORMAL].red / 256, style.base[gtk.STATE_NORMAL].blue / 256, style.base[gtk.STATE_NORMAL].green / 256) self._foreground_color = "#%.2x%.2x%.2x;" % ( style.text[gtk.STATE_NORMAL].red / 256, style.text[gtk.STATE_NORMAL].blue / 256, style.text[gtk.STATE_NORMAL].green / 256) self._insensitive_color = "#%.2x%.2x%.2x;" % ( style.base[gtk.STATE_INSENSITIVE].red / 256, style.base[gtk.STATE_INSENSITIVE].blue / 256, style.base[gtk.STATE_INSENSITIVE].green / 256) if self._renderer == EntryFormatter.WEBKIT: import html.PTVWebkit self._html_widget = html.PTVWebkit.PTVWebkit( self, self._db.home, share_path) elif self._renderer == EntryFormatter.MOZILLA: import html.PTVMozilla self._html_widget = html.PTVMozilla.PTVMozilla( self, self._db.home, share_path) elif self._renderer == EntryFormatter.GTKHTML: import html.PTVGtkHtml self._html_widget = html.PTVGtkHtml.PTVGtkHtml( self, self._db.home, share_path) #signals self._handlers = [] if feed_list_view is not None: h_id = feed_list_view.connect('feed-selected', self.__feedlist_feed_selected_cb) self._handlers.append((feed_list_view.disconnect, h_id)) h_id = feed_list_view.connect( 'search-feed-selected', self.__feedlist_search_feed_selected_cb) self._handlers.append((feed_list_view.disconnect, h_id)) h_id = feed_list_view.connect('no-feed-selected', self.__feedlist_none_selected_cb) self._handlers.append((feed_list_view.disconnect, h_id)) if self._app is not None: h_id = self._app.connect('feed-added', self.__feed_added_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('feed-removed', self.__feed_removed_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('feed-polled', self.__feed_polled_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('feed-name-changed', self.__feed_name_changed_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('entry-updated', self.__entry_updated_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('render-ops-updated', self.__render_ops_updated_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('state-changed', self.__state_changed_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('entries-viewed', self.__entries_updated_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('entries-unviewed', self.__entries_updated_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = app.connect('new-database', self.__new_database_cb) self._handlers.append((app.disconnect, h_id)) screen = gtk.gdk.screen_get_default() h_id = screen.connect('size-changed', self.__size_changed_cb) self._handlers.append((screen.disconnect, h_id))
def __init__(self, widget_tree, app, fancy=False): gobject.GObject.__init__(self) self._app = app self._icon_manager = IconManager.IconManager(self._app.db.home) self._scrolled_window = widget_tree.get_widget('feed_scrolled_window') if utils.RUNNING_HILDON: hildon.hildon_helper_set_thumb_scrollbar(self._scrolled_window, True) self._va = self._scrolled_window.get_vadjustment() self._widget = widget_tree.get_widget('feedlistview') self._entry_list_widget = widget_tree.get_widget('entrylistview') self._feedlist = gtk.ListStore(str, #title str, #markup title int, #feed_id str, #stockid str, #readinfo gtk.gdk.Pixbuf, #pixbuf bool, #details loaded int, #unread int, #total int, #flag bool, #visible bool, #pollfail str) #first entry title self._last_selected=None self._last_feed=None self.filter_setting=ALL self.filter_name = _("All Feeds") self._selecting_misfiltered=False self._filter_unread = False self._cancel_load = [False,False] #loading feeds, loading details self._loading_details = 0 self._state = S_DEFAULT self._fancy = fancy self.__widget_width = 0 self.__resetting_columns = False self.__displayed_context_menu = False #for hildon #build list view self._feed_filter = self._feedlist.filter_new() self._feed_filter.set_visible_column(VISIBLE) self._widget.set_model(self._feed_filter) # Icon Column self._icon_renderer = gtk.CellRendererPixbuf() self._icon_column = gtk.TreeViewColumn(_('Icon')) self._icon_column.pack_start(self._icon_renderer, False) self._icon_column.set_attributes(self._icon_renderer, stock_id=STOCKID) if utils.RUNNING_HILDON: self._icon_column.set_sizing(gtk.TREE_VIEW_COLUMN_AUTOSIZE) else: self._icon_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) self._icon_column.set_min_width(32) self._widget.append_column(self._icon_column) # Feed Column renderer = gtk.CellRendererText() renderer.set_property("ellipsize", pango.ELLIPSIZE_END) self._feed_column = gtk.TreeViewColumn(_('Feeds')) self._feed_column.pack_start(renderer, True) self._feed_column.set_attributes(renderer, markup=MARKUPTITLE) self._feed_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) self._feed_column.set_resizable(True) self._feed_column.set_expand(True) self._widget.append_column(self._feed_column) # Articles column self._articles_renderer = gtk.CellRendererText() self._articles_column = gtk.TreeViewColumn(_('')) self._articles_column.set_resizable(False) self._articles_column.pack_start(self._articles_renderer, False) self._articles_column.set_attributes(self._articles_renderer, markup=READINFO) self._articles_column.set_sizing(gtk.TREE_VIEW_COLUMN_AUTOSIZE) self._articles_column.set_expand(False) self._widget.append_column(self._articles_column) # Image Column feed_image_renderer = gtk.CellRendererPixbuf() self._image_column = gtk.TreeViewColumn(_('Image')) self._image_column.pack_start(feed_image_renderer, False) self._image_column.set_attributes(feed_image_renderer, pixbuf=PIXBUF) self._image_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) self._image_column.set_min_width(MAX_WIDTH + 10) self._image_column.set_max_width(MAX_WIDTH + 10) self._image_column.set_expand(False) if self._fancy: self._widget.append_column(self._image_column) self.resize_columns() #signals are MANUAL ONLY self._widget.get_selection().connect("changed", self._item_selection_changed) self._widget.connect("row-activated", self.on_row_activated) self._widget.connect("button-press-event", self._on_button_press_event) self._widget.connect("button-release-event", self._on_button_release_event) if utils.RUNNING_HILDON: self._widget.tap_and_hold_setup(menu=self._get_context_menu(False)) self._handlers = [] h_id = self._app.connect('feed-polled', self.__feed_polled_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('feed-added', self.__feed_added_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('feed-removed', self.__feed_removed_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('feed-name-changed', self.__feed_name_changed_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('entry-updated', self.__entry_updated_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('tags-changed', self.__tags_changed_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('state_changed', self.__state_changed_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('entries-viewed', self.__entries_viewed_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('entries-unviewed', self.__entries_unviewed_cb) self._handlers.append((self._app.disconnect, h_id)) #init style if self._fancy: if utils.RUNNING_SUGAR: self._icon_renderer.set_property('stock-size',gtk.ICON_SIZE_SMALL_TOOLBAR) elif utils.RUNNING_HILDON: self._icon_renderer.set_property('stock-size',gtk.ICON_SIZE_BUTTON) else: self._icon_renderer.set_property('stock-size',gtk.ICON_SIZE_LARGE_TOOLBAR) self._widget.set_property('rules-hint', True)
def __init__(self, dock_widget, main_window, db, share_path, feed_list_view=None, app=None, renderer=EntryFormatter.WEBKIT): gobject.GObject.__init__(self) #public self.presently_selecting = False #protected self._app = app if self._app is not None: self._mm = self._app.mediamanager else: self._mm = None self._main_window = main_window self._db = db self._renderer = renderer #self._renderer = EntryFormatter.GTKHTML self._current_feed_id = -1 self._feed_title="" self._state = S_DEFAULT self._auth_info = (-1, "","") #user:pass, url self._custom_message = "" self._last_link = "" self._current_link = None self._search_query = None self._filter_feed = None self._hide_viewed = False self._ignore_next_event = False self._USING_AJAX = False self._entrylist = [] self._entry_store = {} self._convert_newlines = False self._first_entry = 0 #first entry visible self._html_dock = dock_widget self._scrolled_window = gtk.ScrolledWindow() if utils.RUNNING_HILDON: hildon.hildon_helper_set_thumb_scrollbar(self._scrolled_window, True) self._html_dock.add(self._scrolled_window) self._scrolled_window.set_property("hscrollbar-policy",gtk.POLICY_AUTOMATIC) self._scrolled_window.set_property("vscrollbar-policy",gtk.POLICY_AUTOMATIC) self._scrolled_window.set_flags(self._scrolled_window.flags() & gtk.CAN_FOCUS) if self._renderer == EntryFormatter.WEBKIT: self._scrolled_window.set_shadow_type(gtk.SHADOW_IN) style = self._html_dock.get_style().copy() self._background_color = "#%.2x%.2x%.2x;" % ( style.base[gtk.STATE_NORMAL].red / 256, style.base[gtk.STATE_NORMAL].blue / 256, style.base[gtk.STATE_NORMAL].green / 256) self._foreground_color = "#%.2x%.2x%.2x;" % ( style.text[gtk.STATE_NORMAL].red / 256, style.text[gtk.STATE_NORMAL].blue / 256, style.text[gtk.STATE_NORMAL].green / 256) self._insensitive_color = "#%.2x%.2x%.2x;" % ( style.base[gtk.STATE_INSENSITIVE].red / 256, style.base[gtk.STATE_INSENSITIVE].blue / 256, style.base[gtk.STATE_INSENSITIVE].green / 256) if self._renderer == EntryFormatter.WEBKIT: import html.PTVWebkit self._html_widget = html.PTVWebkit.PTVWebkit(self, self._db.home, share_path) elif self._renderer == EntryFormatter.MOZILLA: import html.PTVMozilla self._html_widget = html.PTVMozilla.PTVMozilla(self, self._db.home, share_path) elif self._renderer == EntryFormatter.GTKHTML: import html.PTVGtkHtml self._html_widget = html.PTVGtkHtml.PTVGtkHtml(self, self._db.home, share_path) #signals self._handlers = [] if feed_list_view is not None: h_id = feed_list_view.connect('feed-selected', self.__feedlist_feed_selected_cb) self._handlers.append((feed_list_view.disconnect, h_id)) h_id = feed_list_view.connect('search-feed-selected', self.__feedlist_search_feed_selected_cb) self._handlers.append((feed_list_view.disconnect, h_id)) h_id = feed_list_view.connect('no-feed-selected', self.__feedlist_none_selected_cb) self._handlers.append((feed_list_view.disconnect, h_id)) if self._app is not None: h_id = self._app.connect('feed-added',self.__feed_added_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('feed-removed', self.__feed_removed_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('feed-polled', self.__feed_polled_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('feed-name-changed', self.__feed_name_changed_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('entry-updated', self.__entry_updated_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('render-ops-updated', self.__render_ops_updated_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('state-changed', self.__state_changed_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('entries-viewed', self.__entries_updated_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = self._app.connect('entries-unviewed', self.__entries_updated_cb) self._handlers.append((self._app.disconnect, h_id)) h_id = app.connect('new-database', self.__new_database_cb) self._handlers.append((app.disconnect, h_id)) screen = gtk.gdk.screen_get_default() h_id = screen.connect('size-changed', self.__size_changed_cb) self._handlers.append((screen.disconnect, h_id))
def Show(self): widget_tree = gtk.glade.XML(self._gladefile, 'download_view','penguintv') for key in dir(self.__class__): #python insaneness if key[:3] == 'on_': widget_tree.signal_connect(key, getattr(self, key)) if utils.RUNNING_SUGAR: widget_tree.get_widget('stop_toolbutton').set_stock_id(None) widget_tree.get_widget('stop_toolbutton').set_icon_name('stock-close') widget_tree.get_widget('pause_toolbutton').set_stock_id(None) widget_tree.get_widget('pause_toolbutton').set_icon_name('stock-media-pause') widget_tree.get_widget('resume_toolbutton').set_stock_id(None) widget_tree.get_widget('resume_toolbutton').set_icon_name('stock-go-down') if utils.RUNNING_HILDON: sw = widget_tree.get_widget('d_v_scrolledwindow') hildon.hildon_helper_set_thumb_scrollbar(sw, True) self._widget = widget_tree.get_widget('download_view') self._resume_button = widget_tree.get_widget('resume_toolbutton') self._resume_button.set_sensitive(False) self._downloads_listview = widget_tree.get_widget('download_list') try: self._downloads_listview.set_rubber_banding(True) except: pass #not everyone can do this selection = self._downloads_listview.get_selection() selection.set_mode(gtk.SELECTION_MULTIPLE) selection.connect("changed", self._on_selection_changed) column = gtk.TreeViewColumn(_('')) column.set_resizable(True) renderer = gtk.CellRendererPixbuf() column.pack_start(renderer, True) column.set_attributes(renderer, pixbuf=D_PIXBUF) self._downloads_listview.append_column(column) column = gtk.TreeViewColumn(_('Progress')) column.set_resizable(True) renderer = gtk.CellRendererProgress() column.pack_start(renderer, True) column.set_attributes(renderer, value=D_PROGRESS) self._downloads_listview.append_column(column) column = gtk.TreeViewColumn(_('Description')) column.set_resizable(True) renderer = gtk.CellRendererText() column.pack_start(renderer, True) column.set_attributes(renderer, markup=D_DESCRIPTION_MARKUP) self._downloads_listview.append_column(column) column = gtk.TreeViewColumn(_('Size')) column.set_resizable(True) renderer = gtk.CellRendererText() column.pack_start(renderer, True) column.set_attributes(renderer, markup=D_SIZE_MARKUP) self._downloads_listview.append_column(column) column = gtk.TreeViewColumn(_('Status')) column.set_resizable(True) renderer = gtk.CellRendererText() column.pack_start(renderer, True) column.set_attributes(renderer, markup=D_STATUS_MARKUP) self._downloads_listview.append_column(column) self._downloads_listview.columns_autosize() self._downloads_listview.set_model(self._downloads_liststore) self._widget.show_all()