def _init_icon(self): """Return an icon pixbuf for this Stuff.""" pixbuf = None # first, if it's an image, try to get a thumbnail. if self.generic_type == "image": thumbnail_path = \ self._gfile_info.get_attribute_as_string('thumbnail::path') if thumbnail_path: thumbnail_path = thumbnail_path.replace('/normal/', '/large/') if gio.File(thumbnail_path).query_exists(): thumbnail = gtk.Image() thumbnail.set_from_file(thumbnail_path) pixbuf = thumbnail.get_pixbuf() if not pixbuf: # thumbnail FAIL icon_theme = gtk.icon_theme_get_for_screen(gtk.gdk.Screen()) names = self._gfile_info.get_icon().props.names for stock_name in names: try: pixbuf = icon_theme.load_icon(stock_name, 48, gtk.ICON_LOOKUP_USE_BUILTIN) break except glib.GError: pass if not pixbuf: # just do what's guaranteed to work pixbuf = icon_theme.load_icon('text-x-generic', 48, gtk.ICON_LOOKUP_USE_BUILTIN) return pixbuf
def build_dnd(self): tv = self.tree_view # Set it as a drag source for exporting snippets tv.drag_source_set(gdk.BUTTON1_MASK, self.dnd_target_list, gdk.ACTION_DEFAULT | gdk.ACTION_COPY) # Set it as a drag destination for importing snippets tv.drag_dest_set(gtk.DEST_DEFAULT_HIGHLIGHT | gtk.DEST_DEFAULT_DROP, self.dnd_target_list, gdk.ACTION_DEFAULT | gdk.ACTION_COPY) tv.connect('drag_data_get', self.on_tree_view_drag_data_get) tv.connect('drag_begin', self.on_tree_view_drag_begin) tv.connect('drag_end', self.on_tree_view_drag_end) tv.connect('drag_data_received', self.on_tree_view_drag_data_received) tv.connect('drag_motion', self.on_tree_view_drag_motion) theme = gtk.icon_theme_get_for_screen(tv.get_screen()) self.dnd_name = None for name in self.drag_icons: icon = theme.lookup_icon(name, gtk.ICON_SIZE_DND, 0) if icon: self.dnd_name = name break
def __init__ (self, treeview, lockdownbutton): self.notify_id = None self.key = "/apps/panel/global/disabled_applets" self.disabled_applets = None self.liststore = gtk.ListStore (str, str, str, gtk.gdk.Pixbuf, bool) self.liststore.set_sort_column_id (self.COLUMN_NAME, gtk.SORT_ASCENDING) self.treeview = treeview self.treeview.get_selection ().set_mode (gtk.SELECTION_SINGLE) self.treeview.set_model (self.liststore) self.treeview.connect ("screen-changed", self.__on_screen_changed) self.treeview.connect ("destroy", self.__on_destroyed) self.lockdownbutton = lockdownbutton self.lockdownbutton.connect ("toggled", self.__on_lockdownbutton_toggled) screen = self.treeview.get_screen () self.icon_theme = gtk.icon_theme_get_for_screen (screen) self.icon_theme.connect ("changed", self.__on_icontheme_changed) self.__fill_liststore () self.__create_columns () (list, mandatory) = globalvar.applier.get_list (self.key, gconf.VALUE_STRING) self.disabled_applets = set (list) self.__update_toggles () self.lockdownbutton.set (mandatory) self.notify_id = globalvar.applier.notify_add (self.key, self.__on_notified)
def tab_get_icon(self, tab): theme = gtk.icon_theme_get_for_screen(tab.get_screen()) icon_size_width, icon_size_height = gtk.icon_size_lookup_for_settings( tab.get_settings(), gtk.ICON_SIZE_MENU) state = tab.get_state() if state in self.TAB_STATE_TO_ICON: try: pixbuf = self.get_stock_icon(theme, self.TAB_STATE_TO_ICON[state], icon_size_height) except glib.GError: pixbuf = None else: pixbuf = None if not pixbuf: uri = tab.get_document().get_uri() if uri: location = gio.File(uri) else: location = None pixbuf = self.get_icon(theme, location, icon_size_height) return pixbuf
def build_dnd(self): tv = self.tree_view # Set it as a drag source for exporting snippets tv.drag_source_set(gdk.BUTTON1_MASK, self.dnd_target_list, gdk.ACTION_DEFAULT | gdk.ACTION_COPY) # Set it as a drag destination for importing snippets tv.drag_dest_set(gtk.DEST_DEFAULT_HIGHLIGHT | gtk.DEST_DEFAULT_DROP, self.dnd_target_list, gdk.ACTION_DEFAULT | gdk.ACTION_COPY) tv.connect('drag_data_get', self.on_tree_view_drag_data_get) tv.connect('drag_begin', self.on_tree_view_drag_begin) tv.connect('drag_end', self.on_tree_view_drag_end) tv.connect('drag_data_received', self.on_tree_view_drag_data_received) tv.connect('drag_motion', self.on_tree_view_drag_motion) theme = gtk.icon_theme_get_for_screen(tv.get_screen()) self.dnd_name = None for name in self.drag_icons: icon = theme.lookup_icon(name, gtk.ICON_SIZE_DND, 0) if icon: self.dnd_name = name break
def _get_icon(self): screen = self.get_screen() theme = gtk.icon_theme_get_for_screen(screen) if theme == None: return None icon_size = gtk.icon_size_lookup_for_settings(self.get_settings(), gtk.ICON_SIZE_MENU)[1] if self._state == TAB_STATE_LOADING: pixbuf = get_stock_icon(theme, gtk.STOCK_OPEN, icon_size) elif self._state == TAB_STATE_REVERTING: pixbuf = get_stock_icon (theme, gtk.STOCK_REVERT_TO_SAVED, icon_size) elif self._state == TAB_STATE_SAVING: pixbuf = get_stock_icon(theme, gtk.STOCK_SAVE, icon_size) elif self._state == TAB_STATE_PRINTING: pixbuf = get_stock_icon(theme, gtk.STOCK_PRINT, icon_size) elif self._state == TAB_STATE_PRINT_PREVIEWING or self._state == TAB_STATE_SHOWING_PRINT_PREVIEW: pixbuf = get_stock_icon (theme, gtk.STOCK_PRINT_PREVIEW, icon_size) elif self._state == TAB_STATE_LOADING_ERROR or \ self._state == TAB_STATE_REVERTING_ERROR or \ self._state == TAB_STATE_SAVING_ERROR or \ self._state == TAB_STATE_GENERIC_ERROR: pixbuf = get_stock_icon (theme, gtk.STOCK_DIALOG_ERROR, icon_size) elif self._state == TAB_STATE_EXTERNALLY_MODIFIED_NOTIFICATION: pixbuf = get_stock_icon(theme, GTK_STOCK_DIALOG_WARNING, icon_size) else: doc = self.get_document() raw_uri = doc.get_uri() mime_type = doc.get_mime_type() pixbuf = get_icon(theme, raw_uri, mime_type, icon_size) return pixbuf
def __get_pixbuf_from_icon_name(self, name, size=16): screen = self.get_screen() icon_theme = gtk.icon_theme_get_for_screen(screen) icon_info = icon_theme.lookup_icon(name, size, 0) if not icon_info: return None filename = icon_info.get_filename() if not filename or not os.path.exists(filename): return None pixbuf = gtk.gdk.pixbuf_new_from_file(filename) if icon_info.get_base_size() != size: pixbuf = pixbuf.scale_simple(size, size, gtk.gdk.INTERP_TILES) return pixbuf
def get_icon(name, size=32, flags=0): """gets icon from gtk.IconTheme return Pixbuf Arguments: - `name`: icon name - `size`: icon size - `flags`: the flags modifying the behavior of the icon lookup """ it = gtk.icon_theme_get_for_screen(gtk.gdk.Screen()) try: return it.load_icon(name, size, flags) except gobject.GError, e: open_error_dialog(unicode(e))
def __get_pixbuf_from_icon_name(self, name, size=16): screen = self.get_screen() icon_theme = gtk.icon_theme_get_for_screen(screen) icon_info = icon_theme.lookup_icon(name, size, 0) if not icon_info: return None filename = icon_info.get_filename() if not filename or not os.path.exists(filename): return None pixbuf = gtk.gdk.pixbuf_new_from_file(filename) if icon_info.get_base_size() != size: pixbuf = pixbuf.scale_simple(size, size, gtk.gdk.INTERP_TILES) return pixbuf
def make_pixbuf(self): pixbuf = None if self.icon: pixbuf = self.icon elif self.iconName: # Determine icon theme for the current screen screen = self.get_screen() theme = gtk.icon_theme_get_for_screen(screen) # Load pixbuf pixbuf = theme.load_icon(self.iconName, self.ICON_SIZE, gtk.ICON_LOOKUP_USE_BUILTIN) return pixbuf
def tab_get_icon(self, tab): theme = gtk.icon_theme_get_for_screen(tab.get_screen()) icon_size_width, icon_size_height = gtk.icon_size_lookup_for_settings(tab.get_settings(), gtk.ICON_SIZE_MENU) state = tab.get_state() if state in self.TAB_STATE_TO_ICON: try: pixbuf = self.get_stock_icon(theme, self.TAB_STATE_TO_ICON[state], icon_size_height) except glib.GError: pixbuf = None else: pixbuf = None if not pixbuf: uri = tab.get_document().get_uri() if uri: location = gio.File(uri) else: location = None pixbuf = self.get_icon(theme, location, icon_size_height) return pixbuf
def _get_icon(self): screen = self.get_screen() theme = gtk.icon_theme_get_for_screen(screen) if theme == None: return None icon_size = gtk.icon_size_lookup_for_settings(self.get_settings(), gtk.ICON_SIZE_MENU)[1] if self._state == TAB_STATE_LOADING: pixbuf = get_stock_icon(theme, gtk.STOCK_OPEN, icon_size) elif self._state == TAB_STATE_REVERTING: pixbuf = get_stock_icon(theme, gtk.STOCK_REVERT_TO_SAVED, icon_size) elif self._state == TAB_STATE_SAVING: pixbuf = get_stock_icon(theme, gtk.STOCK_SAVE, icon_size) elif self._state == TAB_STATE_PRINTING: pixbuf = get_stock_icon(theme, gtk.STOCK_PRINT, icon_size) elif self._state == TAB_STATE_PRINT_PREVIEWING or self._state == TAB_STATE_SHOWING_PRINT_PREVIEW: pixbuf = get_stock_icon(theme, gtk.STOCK_PRINT_PREVIEW, icon_size) elif self._state == TAB_STATE_LOADING_ERROR or \ self._state == TAB_STATE_REVERTING_ERROR or \ self._state == TAB_STATE_SAVING_ERROR or \ self._state == TAB_STATE_GENERIC_ERROR: pixbuf = get_stock_icon(theme, gtk.STOCK_DIALOG_ERROR, icon_size) elif self._state == TAB_STATE_EXTERNALLY_MODIFIED_NOTIFICATION: pixbuf = get_stock_icon(theme, GTK_STOCK_DIALOG_WARNING, icon_size) else: doc = self.get_document() raw_uri = doc.get_uri() mime_type = doc.get_mime_type() pixbuf = get_icon(theme, raw_uri, mime_type, icon_size) return pixbuf
def screen_changed(self, widget, old_screen): if old_screen: self.icon_theme.disconnect(self.tc_id) self.icon_theme = gtk.icon_theme_get_for_screen(self.get_screen()) self.tc_id = self.icon_theme.connect('changed', self.theme_changed) self.theme_changed(self.icon_theme)
def get_icon_theme(widget): if gtk.widget_has_screen(widget): return gtk.icon_theme_get_for_screen(gtk.widget_get_screen(widget)) return gtk.icon_theme_get_default()
import abc import datetime import os import gio import glib import gtk from xml.sax import saxutils from fluidity import defs from fluidity import utils ICON_THEME = gtk.icon_theme_get_for_screen(gtk.gdk.Screen()) ALERT_ICON_PIXBUF = ICON_THEME.load_icon('gtk-dialog-warning', 16, gtk.ICON_LOOKUP_USE_BUILTIN) FAKE_ICON_PIXBUF = gtk.gdk.pixbuf_new_from_file( os.path.join(defs.APP_DATA_PATH, '16x16_trans.png')) NOTE_ICON_PIXBUF = ICON_THEME.load_icon('text-x-generic', 16, gtk.ICON_LOOKUP_USE_BUILTIN) URL_ICON_PIXBUF = ICON_THEME.load_icon('emblem-web', 16, gtk.ICON_LOOKUP_USE_BUILTIN) ENERGY_LABELS_TO_VALUES = {"High": 2, "Normal": 1, "Low": 0} ENERGY_VALUES_TO_LABELS = utils.invert_dict(ENERGY_LABELS_TO_VALUES) PRIORITY_LABELS_TO_VALUES = {"High": 1, "Normal": 2, "Low": 3} PRIORITY_VALUES_TO_LABELS = utils.invert_dict(PRIORITY_LABELS_TO_VALUES)
def pixbufNewFromIcon(stockId, size): '''Create pixbuf from given id and size.''' iconTheme = gtk.icon_theme_get_for_screen(gtk.gdk.screen_get_default()) return iconTheme.load_icon(stockId, size, gtk.ICON_LOOKUP_USE_BUILTIN)
def __init__(self): threads_enter() gobject.type_register(VideoWidget) gobject.type_register(ShowBox) gobject.type_register(Configer) gobject.type_register(DescriptionWindow) gobject.type_register(SearchBar) locale.setlocale(locale.LC_ALL,locale.getdefaultlocale()) factory=gtk.IconFactory() try: f=self.get_resource('pixmaps/bookmark.png') loader=gtk.gdk.PixbufLoader() loader.write(f.read()) f.close() factory.add(self.STOCK_BOOKMARK,gtk.IconSet(loader.get_pixbuf())) loader.close() except: raise factory.add_default() gtk.stock_add(((self.STOCK_BOOKMARK, "_Bookmarks", gtk.gdk.CONTROL_MASK, gtk.gdk.keyval_from_name('B'), "youtube-show",),)) self.userDir=UserDir() self.config=Config(self.userDir.get_conf_file()) self.config.load() self.bookmarks=Bookmarks.Bookmarks(self.userDir.get_file('bookmarks')) self.bookmarks.load() self.caches=YoutubeConnector.CacheSaver(self.userDir.get_file('caches.txt')) self.cookies=CookieJar() self.downloader=urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookies)) self.ytsearcher = YoutubeConnector.YTSearcher(self.downloader) self.ytconnector = YoutubeConnector.YTConnector(self.downloader, self.caches) self.searching = threading.Event() self.is_fullscreen=False self.history=History() self.viewer = Viewer.Viewer() self.win = gtk.Window(gtk.WINDOW_TOPLEVEL) if not self.win: raise RuntimeError() self.win.connect('delete_event', self.cleanup) self.win.connect('destroy', self.destroy) self.win.connect('key_press_event', self.on_key_press) self.win.connect_object('window-state-event', self.on_window_state_change,self) self.build_menu_bar() self.build_tool_bar() self.showbox = ShowBox() self.showbox.connect('scroll-end-event', self.do_next_search) self.showbox.show() self.statusbar = gtk.Statusbar() self.statusbar.show() self.progressbar = gtk.ProgressBar() self.statusbar.add(self.progressbar) self.align = gtk.VBox() self.align.pack_start(self.menubar, expand=False, fill=True) self.align.pack_start(self.toolbar, expand=False, fill=True) self.align.pack_start(self.showbox, expand=True, fill=True) self.align.pack_start(self.statusbar, expand=False, fill=True) self.statusbar.push(1, 'Ready') self.apply_config() self.align.show() self.win.add(self.align) self.win.set_title("youtube-show") theme=gtk.icon_theme_get_for_screen(gtk.gdk.screen_get_default()) try: icon=theme.load_icon('youtube_show',48,0) self.win.set_icon(icon) except: try: with self.get_resource('pixmaps/youtube-show.png') as iconfile: loader=gdk.PixbufLoader() loader.write(iconfile.read()) self.win.set_icon(loader.get_pixbuf()) loader.close() except: pass w,h=self.config['size'] if w>-1 and h>-1: self.win.resize(w,h) else: self.win.resize(500, 600) self.win.show() threads_leave()
def pixbufNewFromIcon(stockId, size): '''Create pixbuf from given id and size.''' iconTheme = gtk.icon_theme_get_for_screen(gtk.gdk.screen_get_default()) return iconTheme.load_icon(stockId, size, gtk.ICON_LOOKUP_USE_BUILTIN)
def __on_screen_changed (self, widget, screen): self.icon_theme = gtk.icon_theme_get_for_screen (screen) self.__on_icontheme_changed (self.icon_theme)
def __init__(self): threads_enter() gobject.type_register(VideoWidget) gobject.type_register(ShowBox) gobject.type_register(Configer) gobject.type_register(DescriptionWindow) gobject.type_register(SearchBar) locale.setlocale(locale.LC_ALL, locale.getdefaultlocale()) factory = gtk.IconFactory() try: f = self.get_resource('pixmaps/bookmark.png') loader = gtk.gdk.PixbufLoader() loader.write(f.read()) f.close() factory.add(self.STOCK_BOOKMARK, gtk.IconSet(loader.get_pixbuf())) loader.close() except: raise factory.add_default() gtk.stock_add((( self.STOCK_BOOKMARK, "_Bookmarks", gtk.gdk.CONTROL_MASK, gtk.gdk.keyval_from_name('B'), "youtube-show", ), )) self.userDir = UserDir() self.config = Config(self.userDir.get_conf_file()) self.config.load() self.bookmarks = Bookmarks.Bookmarks( self.userDir.get_file('bookmarks')) self.bookmarks.load() self.caches = YoutubeConnector.CacheSaver( self.userDir.get_file('caches.txt')) self.cookies = CookieJar() self.downloader = urllib2.build_opener( urllib2.HTTPCookieProcessor(self.cookies)) self.ytsearcher = YoutubeConnector.YTSearcher(self.downloader) self.ytconnector = YoutubeConnector.YTConnector( self.downloader, self.caches) self.searching = threading.Event() self.is_fullscreen = False self.history = History() self.viewer = Viewer.Viewer() self.win = gtk.Window(gtk.WINDOW_TOPLEVEL) if not self.win: raise RuntimeError() self.win.connect('delete_event', self.cleanup) self.win.connect('destroy', self.destroy) self.win.connect('key_press_event', self.on_key_press) self.win.connect_object('window-state-event', self.on_window_state_change, self) self.build_menu_bar() self.build_tool_bar() self.showbox = ShowBox() self.showbox.connect('scroll-end-event', self.do_next_search) self.showbox.show() self.statusbar = gtk.Statusbar() self.statusbar.show() self.progressbar = gtk.ProgressBar() self.statusbar.add(self.progressbar) self.align = gtk.VBox() self.align.pack_start(self.menubar, expand=False, fill=True) self.align.pack_start(self.toolbar, expand=False, fill=True) self.align.pack_start(self.showbox, expand=True, fill=True) self.align.pack_start(self.statusbar, expand=False, fill=True) self.statusbar.push(1, 'Ready') self.apply_config() self.align.show() self.win.add(self.align) self.win.set_title("youtube-show") theme = gtk.icon_theme_get_for_screen(gtk.gdk.screen_get_default()) try: icon = theme.load_icon('youtube_show', 48, 0) self.win.set_icon(icon) except: try: with self.get_resource('pixmaps/youtube-show.png') as iconfile: loader = gdk.PixbufLoader() loader.write(iconfile.read()) self.win.set_icon(loader.get_pixbuf()) loader.close() except: pass w, h = self.config['size'] if w > -1 and h > -1: self.win.resize(w, h) else: self.win.resize(500, 600) self.win.show() threads_leave()
def screen_changed (self, widget, old_screen): if old_screen: self.icon_theme.disconnect (self.tc_id) self.icon_theme = gtk.icon_theme_get_for_screen (self.get_screen ()) self.tc_id = self.icon_theme.connect ('changed', self.theme_changed) self.theme_changed (self.icon_theme)
__author__ = 'Jens Knutson' import abc import datetime import os import gio import glib import gtk from xml.sax import saxutils from fluidity import defs from fluidity import utils ICON_THEME = gtk.icon_theme_get_for_screen(gtk.gdk.Screen()) ALERT_ICON_PIXBUF = ICON_THEME.load_icon('gtk-dialog-warning', 16, gtk.ICON_LOOKUP_USE_BUILTIN) FAKE_ICON_PIXBUF = gtk.gdk.pixbuf_new_from_file( os.path.join(defs.APP_DATA_PATH, '16x16_trans.png')) NOTE_ICON_PIXBUF = ICON_THEME.load_icon('text-x-generic', 16, gtk.ICON_LOOKUP_USE_BUILTIN) URL_ICON_PIXBUF = ICON_THEME.load_icon('emblem-web', 16, gtk.ICON_LOOKUP_USE_BUILTIN) ENERGY_LABELS_TO_VALUES = {"High": 2, "Normal": 1, "Low": 0} ENERGY_VALUES_TO_LABELS = utils.invert_dict(ENERGY_LABELS_TO_VALUES) PRIORITY_LABELS_TO_VALUES = {"High": 1, "Normal": 2, "Low": 3} PRIORITY_VALUES_TO_LABELS = utils.invert_dict(PRIORITY_LABELS_TO_VALUES)
def get_icon_theme (widget): if gtk.widget_has_screen (widget): return gtk.icon_theme_get_for_screen (gtk.widget_get_screen (widget)) return gtk.icon_theme_get_default ();