Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel 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)
commit88fef435797f9dfebcf6610a83c5c004ff512ec8 (patch)
tree845be64b389654be91aa1a5d9fdcc5662b06abc5
parenta60de6a2365987d4c223a22c801f6984297e0927 (diff)
New font toolbar, style scheme options
-rw-r--r--activity.py19
-rw-r--r--editor.py25
-rw-r--r--font_options.py21
-rw-r--r--icons/format-text.svg8
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
diff --git a/editor.py b/editor.py
index ad50458..8298906 100644
--- a/editor.py
+++ b/editor.py
@@ -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>