def __init__(self, *args, **kwargs): super(RoioGUI, self).__init__() gtk.rc_reset_styles( gtk.settings_get_for_screen(self.mainWindow.get_screen())) # initial values self.is_maximized = bool( self.mainWindow.get_state() == gtk.gdk.WINDOW_STATE_MAXIMIZED) self.account_data = {} # customize the UI pixbuf = gtk.gdk.pixbuf_new_from_file('ui/top_bar.png') (pixmap, mask) = pixbuf.render_pixmap_and_mask(255) style = self.topbox.get_style().copy() style.bg_pixmap[gtk.STATE_NORMAL] = pixmap self.topbox.set_style(style) self.windowBox.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("white")) self.bodyBox.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#222222")) self.bottomBox.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#191919")) # init network handler self.net = ROIONetwork() # we're ready to go self.show_first_content()
def __init__(self): self.builder = gtk.Builder() self.builder.add_from_file(localpath + 'zkiosk.ui') self.window = self.builder.get_object('window') self.browser = self.builder.get_object('Browser') self.webview = webkit.WebView() self.browser.add(self.webview) #Cambia el user-agent (por cuestión estética y de identificación para estadísticas) Settings = self.webview.get_settings() useragent = Settings.get_property("user-agent") useragent = useragent.replace(' Safari/',' zombieKiosk/DrunkEngine Safari/') Settings.set_property("user-agent",useragent) Settings.set_property("enable-plugins",False) #cambiando a pantalla completa la ventana maxx = gtk.gdk.screen_width() maxy = gtk.gdk.screen_height() self.window.set_size_request(maxx,maxy) #Parseamos el archivo del estilo visual gtk.rc_reset_styles(self.window.get_settings()) gtk.rc_parse(theme) gtk.rc_add_default_file(theme) gtk.rc_reparse_all() #muestra los elementos de la ventana self.window.show_all() #-------DEBUG--------- self.webview.connect("navigation-policy-decision-requested",self.VerUri) #conectando los botones y eventos de la ventana a las funciones self.builder.connect_signals(self)
def _install_label_tree(self): filter_view = component.get("FilterTreeView") view = filter_view.label_view sidebar = filter_view.sidebar sidebar.add_tab(self.label_tree, MODULE_NAME, DISPLAY_NAME) self.external_handlers.append( (view, view.connect("cursor-changed", self.on_cursor_changed))) self.external_handlers.append( (view, view.connect("focus-in-event", self.on_focus_in))) def on_hide(widget): row = self.row_map[ID_ALL] path = self.store.get_path(row) path = self.sorted_store.convert_child_path_to_path(path) self.label_tree.set_cursor(path) def on_switch_page(widget, page, page_num, treeview): # Update view when switching pages with tabs focused (e.g. keyboard) if widget.is_focus(): child = widget.get_nth_page(page_num) if treeview.is_ancestor(child): treeview.get_selection().emit("changed") notebook = sidebar.notebook self.external_handlers.append( (notebook, notebook.connect("hide", on_hide))) self.external_handlers.append((notebook, notebook.connect("switch-page", on_switch_page, view))) self.external_handlers.append((notebook, notebook.connect("switch-page", on_switch_page, self.label_tree))) # Hack to make initial drag and drop work properly between tabs page = notebook.get_current_page() parent_page = notebook.page_num(self.label_tree.parent) notebook.set_current_page(parent_page) notebook.set_current_page(page) # Make sure expanders are indented by overriding default style name = self.label_tree.get_name() path = self.label_tree.path() rc_string = """ style '%s' { GtkTreeView::indent-expanders = 1 } widget '%s' style '%s' """ % (name, path, name) gtk.rc_parse_string(rc_string) gtk.rc_reset_styles(self.label_tree.get_toplevel().get_settings())
def Cells_Refresh(self): ''' Обновление списка файлов ''' #Переписываем стиль для отображения четных и нечетных строк rc_string = """ style "treeview-style" { GtkTreeView::even-row-color = "%s" GtkTreeView::odd-row-color = "%s" } class "GtkTreeView" style "treeview-style" """ % ( edna_builtin['configuration']['style']['even_row_bg'], edna_builtin['configuration']['style']['odd_row_bg']) #self.set_rules_hint(True) self.set_model(self.OOF.Model) self.__add_columns() self.__set_custom_cursor() gtk.rc_reset_styles(self.get_settings()) gtk.rc_parse_string(rc_string) self.modify_base( gtk.STATE_SELECTED, gtk.gdk.Color( edna_builtin['configuration']['style']['cursor_row_bg'])) self.modify_text( gtk.STATE_SELECTED, gtk.gdk.Color( edna_builtin['configuration']['style']['cursor_row_fg']))
def reconfigure(self): """Update configuration for the whole application""" if self.config['handle_size'] in xrange(0, 6): gtk.rc_parse_string(""" style "terminator-paned-style" { GtkPaned::handle_size = %s } class "GtkPaned" style "terminator-paned-style" """ % self.config['handle_size']) gtk.rc_reset_styles(gtk.settings_get_default()) # Cause all the terminals to reconfigure for terminal in self.terminals: terminal.reconfigure() # Reparse our keybindings self.keybindings.configure(self.config['keybindings']) # Update tab position if appropriate maker = Factory() for window in self.windows: child = window.get_child() if maker.isinstance(child, 'Notebook'): child.configure()
def cb_change_theme( combo ): """ CB: load the new theme and save it into preferences """ theme = self.__thememodel[combo.get_active()][0] if theme != globals.config.theme: if theme == "None": gtk.rc_reset_styles( gtk.settings_get_default() ) else: functions.load_theme( theme ) globals.config.theme = theme
def __config_load_custom_font(self): use_custom_font = self.__config.get_value("panel", "use_custom_font", False) font_name = gtk.settings_get_default().get_property("gtk-font-name") font_name = unicode(font_name, "utf-8") custom_font = self.__config.get_value("panel", "custom_font", font_name) style_string = 'style "custom-font" { font_name="%s" }\n' 'class "IBusCandidateLabel" style "custom-font"\n' if use_custom_font: style_string = style_string % custom_font gtk.rc_parse_string(style_string) else: style_string = style_string % "" gtk.rc_parse_string(style_string) settings = gtk.settings_get_default() gtk.rc_reset_styles(settings)
def _install_label_tree(self): self._filterview.sidebar.add_tab(self._tree, MODULE_NAME, DISPLAY_NAME) # Override style so expanders are indented name = self._tree.get_name() path = self._tree.path() rc_string = """ style '%s' { GtkTreeView::indent-expanders = 1 } widget '%s' style '%s' """ % (name, path, name) gtk.rc_parse_string(rc_string) gtk.rc_reset_styles(self._tree.get_toplevel().get_settings())
def __config_load_custom_font(self): use_custom_font = self.__config.get_value("panel", "use_custom_font", False) font_name = gtk.settings_get_default().get_property("gtk-font-name") font_name = unicode(font_name, "utf-8") custom_font = self.__config.get_value("panel", "custom_font", font_name) style_string = 'style "custom-font" { font_name="%s" }\n' \ 'class "IBusCandidateLabel" style "custom-font"\n' if use_custom_font: style_string = style_string % custom_font gtk.rc_parse_string(style_string) else: style_string = style_string % "" gtk.rc_parse_string(style_string) settings = gtk.settings_get_default() gtk.rc_reset_styles(settings)
def load_theme(theme): try: if globals.config.debug: print _("Loading theme %s") % theme path = None for p in globals.paths.themes: try: path = os.path.join(p, theme, "gtkrc") if os.path.isfile(path): break else: path = None except: path = None if path is None or not os.path.isfile(path): raise gtk.rc_reset_styles(gtk.settings_get_default()) gtk.rc_parse(path) except: print _("Warning: unable to load theme %s, using default" % theme)
def Cells_Refresh(self): ''' Обновление списка файлов ''' #Переписываем стиль для отображения четных и нечетных строк rc_string = """ style "treeview-style" { GtkTreeView::even-row-color = "%s" GtkTreeView::odd-row-color = "%s" } class "GtkTreeView" style "treeview-style" """ % (edna_builtin['configuration']['style']['even_row_bg'], edna_builtin['configuration']['style']['odd_row_bg']) #self.set_rules_hint(True) self.set_model(self.OOF.Model) self.__add_columns() self.__set_custom_cursor() gtk.rc_reset_styles(self.get_settings()) gtk.rc_parse_string(rc_string) self.modify_base(gtk.STATE_SELECTED, gtk.gdk.Color(edna_builtin['configuration']['style']['cursor_row_bg'])) self.modify_text(gtk.STATE_SELECTED, gtk.gdk.Color(edna_builtin['configuration']['style']['cursor_row_fg']))
def _set_colors(self, colors): # See gtk.RcStyle docs for all values in RC file rc = 'style "zim-colors"\n{\n' for i, state in enumerate(( 'NORMAL', #'ACTIVE', #'PRELIGHT', #'SELECTED', #'INSENSITIVE', )): values = colors[i] values['state'] = state rc += '\tbase[%(state)s] = "%(base)s"\n' \ '\ttext[%(state)s] = "%(text)s"\n' \ '\tbg[%(state)s] = "%(bg)s"\n' % values #'\tfg[%(state)s] = "%(fg)s"\n' % values #rc += '}\nclass "GtkWidget" style "zim-colors"' rc += '}\nwidget "*.zim-pageview" style "zim-colors"\n' logger.debug('Parse RC: >>>\n%s<<<', rc) gtk.rc_parse_string(rc) gtk.rc_reset_styles(gtk.settings_get_default())
def __init__(self, *args, **kwargs): super(RoioGUI, self).__init__() gtk.rc_reset_styles(gtk.settings_get_for_screen(self.mainWindow.get_screen())) # initial values self.is_maximized = bool(self.mainWindow.get_state() == gtk.gdk.WINDOW_STATE_MAXIMIZED) self.account_data = {} # customize the UI pixbuf = gtk.gdk.pixbuf_new_from_file('ui/top_bar.png') (pixmap, mask) = pixbuf.render_pixmap_and_mask(255) style = self.topbox.get_style().copy() style.bg_pixmap[gtk.STATE_NORMAL] = pixmap self.topbox.set_style(style) self.windowBox.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("white")) self.bodyBox.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#222222")) self.bottomBox.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#191919")) # init network handler self.net = ROIONetwork() # we're ready to go self.show_first_content()
def _parseRCStyle(template, substitutions={}): t = string.Template(template) s = t.safe_substitute(substitutions) gtk.rc_parse_string(s) gtk.rc_reset_styles(gtk.settings_get_default())
def apply (self, data): values = {} for page in [self.appearance, self.behaviour, self.globals, self.colours]: for property in page: widget = self.widgets[property] if isinstance (widget, gtk.SpinButton): value = widget.get_value () elif isinstance (widget, gtk.Entry): value = widget.get_text() elif isinstance (widget, gtk.CheckButton): value = widget.get_active() elif isinstance (widget, gtk.ComboBox): if widget.name == 'scrollbar_position': bucket = self.scrollbar_position elif widget.name == 'backspace_binding' or widget.name == 'delete_binding': bucket = self.backspace_del_binding elif widget.name == 'focus': bucket = self.focus elif widget.name == 'background_type': bucket = self.background_type elif widget.name == 'tab_position': bucket = self.tab_position elif widget.name == 'cursor_shape': bucket = self.cursor_shape else: err("Unknown bucket type for %s" % widget.name) continue value = bucket[widget.get_active()] elif isinstance (widget, gtk.FontButton): value = widget.get_font_name() elif isinstance (widget, gtk.HScale): value = widget.get_value() if widget.get_digits() == 0: value = int(value) elif isinstance (widget, gtk.ColorButton): value = widget.get_color().to_string() elif isinstance (widget, gtk.FileChooserButton): value = widget.get_filename() elif widget.get_name() == 'palette': value = '' valuebits = [] children = widget.get_children() children.reverse() for child in children: valuebits.append (child.get_color().to_string()) value = ':'.join (valuebits) else: value = None err("skipping unknown property: %s" % property) values[property] = value has_changed = False changed = [] for source in self.term.conf.sources: if isinstance (source, TerminatorConfValuestoreRC): for property in values: try: if self.source_get_value(property) != values[property]: dbg("%s changed from %s to %s" % (property, self.source_get_value(property), values[property])) source.values[property] = values[property] has_changed = True changed.append(property) except KeyError: pass if has_changed: for changer in changed: if changer == "fullscreen": self.term.fullscreen_absolute(values[changer]) elif changer == "maximise": if values[changer]: self.term.maximize() else: self.term.unmaximize() elif changer == "borderless": self.term.window.set_decorated (not values[changer]) elif changer == "handle_size": self.term.set_handle_size(values[changer]) gtk.rc_reset_styles(gtk.settings_get_default()) elif changer == "tab_position": notebook = self.term.window.get_child() new_pos = self.tab_position_gtk[values[changer]] angle = 0 if isinstance (notebook, gtk.Notebook): notebook.set_tab_pos(new_pos) for i in xrange(0,notebook.get_n_pages()): notebook.get_tab_label(notebook.get_nth_page(i)).update_angle() pass elif changer == "close_button_on_tab": notebook = self.term.window.get_child() if isinstance (notebook, gtk.Notebook): for i in xrange(0,notebook.get_n_pages()): notebook.get_tab_label(notebook.get_nth_page(i)).update_closebut() # FIXME: which others? cycle_term_tab, copy_on_selection, extreme_tabs, try_posix_regexp self.term.reconfigure_vtes() # Check for changed keybindings changed_keybindings = [] for row in self.liststore: accel = gtk.accelerator_name (row[2], row[3]) value = self.term.conf.keybindings[row[0]] if isinstance (value, tuple): value = value[0] keyval = 0 mask = 0 if value is not None: (keyval, mask) = self.tkbobj._parsebinding(value) if (row[2], row[3]) != (keyval, mask): changed_keybindings.append ((row[0], accel)) dbg("%s changed from %s to %s" % (row[0], self.term.conf.keybindings[row[0]], accel)) newbindings = self.term.conf.keybindings for binding in changed_keybindings: newbindings[binding[0]] = binding[1] self.term.keybindings.configure (newbindings)
return file else: return os.path.join(get_bundle_path(), file) def pixbuf(file, size=None): if size: out = gtk.gdk.pixbuf_new_from_file_at_size(path(file), size, size) else: out = gtk.gdk.pixbuf_new_from_file(path(file)) return out def scale(pixbuf, size=THUMB_SIZE): return pixbuf.scale_simple(size, size, gtk.gdk.INTERP_BILINEAR) EMPTY_FILENAME = 'images/pics/empty.png' EMPTY_ORIG = pixbuf(EMPTY_FILENAME) EMPTY_THUMB = scale(EMPTY_ORIG) CUSTOM_FRAME_ORIG = pixbuf('images/pics/custom.png') CUSTOM_FRAME_THUMB = scale(CUSTOM_FRAME_ORIG) # customize theme gtkrc = os.path.join(get_bundle_path(), 'gtkrc') gtk.rc_add_default_file(gtkrc) settings = gtk.settings_get_default() gtk.rc_reset_styles(settings) gtk.rc_reparse_all_for_settings(settings, True)