Esempio n. 1
0
    def toggle_color(self, button, name):
        insert = self.text_buffer.get_insert()
        try:
            start, end = self.text_buffer.get_selection_bounds()
        except ValueError:
            start = end = None
        else:
            # Use offset position to preserve across buffer modification
            start = start.get_offset()
            end = end.get_offset()

        dialog = gtk.ColorSelectionDialog(_('Select a color'))
        dialog.set_transient_for(get_toplevel_window())
        colorsel = dialog.get_color_selection()
        colorsel.set_has_palette(True)
        color = self.colors.get(name)
        if color:
            colorsel.set_current_color(color)
        if dialog.run() == gtk.RESPONSE_OK:
            color = colorsel.get_current_color()
            self.colors[name] = color
            if start is not None and end is not None:
                start = self.text_buffer.get_iter_at_offset(start)
                end = self.text_buffer.get_iter_at_offset(end)
                tag = register_foreground(self.text_buffer, color)
                remove_tags(self.text_buffer, start, end, name)
                self.text_buffer.apply_tag(tag, start, end)
        dialog.destroy()
        self.text_buffer.place_cursor(
            self.text_buffer.get_iter_at_mark(insert))
Esempio n. 2
0
    def toggle_color(self, button, name):
        insert = self.text_buffer.get_insert()
        try:
            start, end = self.text_buffer.get_selection_bounds()
        except ValueError:
            start = end = None
        else:
            # Use offset position to preserve across buffer modification
            start = start.get_offset()
            end = end.get_offset()

        dialog = gtk.ColorSelectionDialog(_('Select a color'))
        dialog.set_transient_for(get_toplevel_window())
        dialog.colorsel.set_has_palette(True)
        color = self.colors.get(name)
        if color:
            dialog.colorsel.set_current_color(color)
        if dialog.run() == gtk.RESPONSE_OK:
            color = dialog.colorsel.get_current_color()
            self.colors[name] = color
            if start is not None and end is not None:
                start = self.text_buffer.get_iter_at_offset(start)
                end = self.text_buffer.get_iter_at_offset(end)
                tag = register_foreground(self.text_buffer, color)
                remove_tags(self.text_buffer, start, end, name)
                self.text_buffer.apply_tag(tag, start, end)
        dialog.destroy()
        self.text_buffer.place_cursor(
            self.text_buffer.get_iter_at_mark(insert))
Esempio n. 3
0
    def toggle_color(self, button, name, textview):
        text_buffer = textview.get_buffer()
        insert = text_buffer.get_insert()
        try:
            start, end = text_buffer.get_selection_bounds()
        except ValueError:
            start = end = None
        else:
            # Use offset position to preserve across buffer modification
            start = start.get_offset()
            end = end.get_offset()

        dialog = Gtk.ColorChooserDialog(title=_('Select a color'),
                                        transient_for=get_toplevel_window(),
                                        use_alpha=False)
        color = Gdk.RGBA()
        if name in self.colors:
            color.parse(self.colors[name])
            dialog.set_rgba(color)
        if dialog.run() == Gtk.ResponseType.OK:
            color = dialog.get_rgba()
            if start is not None and end is not None:
                start = text_buffer.get_iter_at_offset(start)
                end = text_buffer.get_iter_at_offset(end)
                tag = register_foreground(text_buffer, color)
                remove_tags(text_buffer, start, end, name)
                text_buffer.apply_tag(tag, start, end)
        dialog.destroy()
        text_buffer.place_cursor(text_buffer.get_iter_at_mark(insert))
Esempio n. 4
0
 def _apply_tool(self, name, tool, start, end):
     # First test RadioToolButton as they inherit from ToggleToolButton
     if isinstance(tool, gtk.RadioToolButton):
         name = 'justification %s' % name
         if not tool.get_active():
             remove_tags(self.text_buffer, start, end, name)
         else:
             remove_tags(self.text_buffer, start, end, 'justification')
             self.text_buffer.apply_tag_by_name(name, start, end)
     elif isinstance(tool, gtk.ToggleToolButton):
         if tool.get_active():
             self.text_buffer.apply_tag_by_name(name, start, end)
         else:
             self.text_buffer.remove_tag_by_name(name, start, end)
     elif isinstance(tool, gtk.ComboBox):
         value = tool.get_active_text()
         remove_tags(self.text_buffer, start, end, name)
         name = '%s %s' % (name, value)
         self.text_buffer.apply_tag_by_name(name, start, end)
Esempio n. 5
0
 def _apply_tool(self, name, tool, start, end):
     # First test RadioToolButton as they inherit from ToggleToolButton
     if isinstance(tool, gtk.RadioToolButton):
         name = 'justification %s' % name
         if not tool.get_active():
             remove_tags(self.text_buffer, start, end, name)
         else:
             remove_tags(self.text_buffer, start, end, 'justification')
             self.text_buffer.apply_tag_by_name(name, start, end)
     elif isinstance(tool, gtk.ToggleToolButton):
         if tool.get_active():
             self.text_buffer.apply_tag_by_name(name, start, end)
         else:
             self.text_buffer.remove_tag_by_name(name, start, end)
     elif isinstance(tool, gtk.ComboBox):
         value = tool.get_active_text()
         remove_tags(self.text_buffer, start, end, name)
         name = '%s %s' % (name, value)
         self.text_buffer.apply_tag_by_name(name, start, end)