diff options
author | Daniel Francis <santiago.danielfrancis@gmail.com> | 2011-12-06 19:20:34 (GMT) |
---|---|---|
committer | Daniel Francis <santiago.danielfrancis@gmail.com> | 2011-12-06 19:20:34 (GMT) |
commit | 88fef435797f9dfebcf6610a83c5c004ff512ec8 (patch) | |
tree | 845be64b389654be91aa1a5d9fdcc5662b06abc5 | |
parent | a60de6a2365987d4c223a22c801f6984297e0927 (diff) |
New font toolbar, style scheme options
-rw-r--r-- | activity.py | 19 | ||||
-rw-r--r-- | editor.py | 25 | ||||
-rw-r--r-- | font_options.py | 21 | ||||
-rw-r--r-- | icons/format-text.svg | 8 |
4 files changed, 57 insertions, 16 deletions
diff --git a/activity.py b/activity.py index 362fb46..a4f355e 100644 --- a/activity.py +++ b/activity.py @@ -42,7 +42,7 @@ from sugar.activity.widgets import EditToolbar, StopButton, \ from sugar.datastore import datastore from sugar.activity import activity -from font_options import FontToolbarOptions +from font_options import FontToolbarButton from editor import Editor, LANGUAGE_MANAGER, LANGUAGES import file_choosers file_choosers.langsmanager = LANGUAGE_MANAGER @@ -181,15 +181,7 @@ class JAMEdit(activity.Activity): preferences_toolbar.insert(show_line_numbers, -1) self.editor._make_languages_combo(preferences_toolbar) - - #Font Options / Opciones de fuente - font_options = FontToolbarOptions() - font_options.connect("load-pango-context", self.load_pango_context) - font_options.load_toolbar() - font_options.connect("font-changed", self.change_font) - preferences_toolbar.insert(font_options.family_tool_item, -1) - preferences_toolbar.insert(font_options.face_tool_item, -1) - preferences_toolbar.insert(font_options.size_spin_item, -1) + self.editor.make_style_combo(preferences_toolbar) preferences = ToolbarButton() preferences.props.page = preferences_toolbar @@ -197,6 +189,13 @@ class JAMEdit(activity.Activity): preferences.show_all() self.toolbar_box.toolbar.insert(preferences, -1) + + font_options = FontToolbarButton() + font_options.connect("load-pango-context", self.load_pango_context) + font_options.load_toolbar() + font_options.connect("font-changed", self.change_font) + self.toolbar_box.toolbar.insert(font_options, -1) + font_options.show() # Separador / Separator @@ -32,6 +32,11 @@ from sugar.graphics.toolcombobox import ToolComboBox from pep8_check import PEP8_Check +STYLE_MANAGER = gtksourceview2.style_scheme_manager_get_default() +# Style Files extracted from / Archivos Style extraidos de : +# http://live.gnome.org/GtkSourceView/StyleSchemes +STYLE_MANAGER.append_search_path(os.path.join(os.environ["SUGAR_BUNDLE_PATH"], "styles")) +STYLES = STYLE_MANAGER.get_scheme_ids() LANGUAGE_MANAGER = gtksourceview2.language_manager_get_default() LANGUAGES = LANGUAGE_MANAGER.get_language_ids() @@ -70,6 +75,26 @@ class Editor(gtksourceview2.View): self.pep8 = PEP8_Check(self.activity) self.show_all() + + def _set_style(self, widget): + name = self.style_combo.get_active() + id = STYLES[name] + self.buffer.set_style_scheme(STYLE_MANAGER.get_scheme(id)) + + def make_style_combo(self, toolbar): + self.style_combo = ComboBox() + count= 0 + classic = 0 + for style in STYLES: + self.style_combo.append_item(None, style.capitalize()) + if style == "classic": + classic = count + count += 1 + self.style_combo.set_active(classic) + self.style_combo.connect("changed", self._set_style) + tool_item = ToolComboBox(self.style_combo) + toolbar.insert(tool_item, -1) + tool_item.show_all() def _set_show_line_numbers(self, button): if button.get_active(): diff --git a/font_options.py b/font_options.py index 5cb6db7..3dcd9d8 100644 --- a/font_options.py +++ b/font_options.py @@ -25,22 +25,26 @@ import gtk from sugar.graphics.combobox import ComboBox from sugar.graphics.toolcombobox import ToolComboBox +from sugar.activity.widgets import ToolbarButton -class FontToolbarOptions(gobject.GObject): +class FontToolbarButton(ToolbarButton): __gsignals__ = {'load-pango-context' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_PYOBJECT, tuple()), 'font-changed' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_INT))} def __init__(self): - gobject.GObject.__init__(self) + ToolbarButton.__init__(self) + self.toolbar = gtk.Toolbar() + self.props.page = self.toolbar + self.props.icon_name = 'format-text' self.family = "Monospace" - self.face = "Regular" + self.current_face = "Regular" def size_changed(self, adjustment): - self.emit("font-changed", self.family, self.face, adjustment.get_value()) + self.emit("font-changed", self.family, self.current_face, adjustment.get_value()) def face_changed(self, widget): iter = widget.get_active_iter() - self.face = self.faces[self.family].get_value(iter, 0) - self.emit('font-changed', self.family, self.face, self.size_adj.get_value()) + self.current_face = self.faces[self.family].get_value(iter, 0) + self.emit('font-changed', self.family, self.current_face, self.size_adj.get_value()) def family_changed(self, widget): iter = widget.get_active_iter() @@ -76,6 +80,7 @@ class FontToolbarOptions(gobject.GObject): self.family_combo.show() self.family_tool_item = ToolComboBox(self.family_combo) self.family_tool_item.show() + self.toolbar.insert(self.family_tool_item, -1) self.face_combo = ComboBox() face_renderer = gtk.CellRendererText() @@ -90,6 +95,7 @@ class FontToolbarOptions(gobject.GObject): self.face_combo.show() self.face_tool_item = ToolComboBox(self.face_combo) self.face_tool_item.show() + self.toolbar.insert(self.face_tool_item, -1) self.size_adj = gtk.Adjustment(value=10, lower=5, upper=100, step_incr=1) self.size_adj.connect("value-changed", self.size_changed) @@ -98,3 +104,6 @@ class FontToolbarOptions(gobject.GObject): self.size_spin_item = gtk.ToolItem() self.size_spin_item.add(self.size_spin) self.size_spin_item.show() + self.toolbar.insert(self.size_spin_item, -1) + + self.toolbar.show() diff --git a/icons/format-text.svg b/icons/format-text.svg new file mode 100644 index 0000000..075465b --- /dev/null +++ b/icons/format-text.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'> +<svg enable-background="new 0 0 55 54.696" height="54.696px" version="1.1" viewBox="0 0 55 54.696" width="55px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px"> +<g display="block" id="format-text-size"> + <g display="inline"> + <path d="M22.263,12.435 h24.656 v3.562 H36.575 V41.59 h-3.969 V15.996 H22.263 V12.435z" fill="#FFFFFF"/> + <path d="M8.953,22.435 h16.656 v3.562 h-6.344 V41.59 h-3.969 V25.997 h-6.344 V24.435z" fill="#FFFFFF"/> + </g> +</g></svg> |