Beispiel #1
0
    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()
Beispiel #2
0
	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())
Beispiel #4
0
 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']))
Beispiel #5
0
    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()
Beispiel #6
0
 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
Beispiel #7
0
    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)
Beispiel #8
0
    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 _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())
Beispiel #10
0
    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)
Beispiel #12
0
 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())
Beispiel #14
0
    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())
Beispiel #15
0
    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()
Beispiel #16
0
    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)
Beispiel #18
0
        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)