Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/font_options.py
diff options
context:
space:
mode:
authorDaniel Francis <santiago.danielfrancis@gmail.com>2011-12-05 12:30:16 (GMT)
committer Daniel Francis <santiago.danielfrancis@gmail.com>2011-12-05 12:30:16 (GMT)
commit3e4efc051e296837053970433ff372fc76b750f8 (patch)
treea0b4f7bb65d831c25e1e1f940bba7d744e7e92f4 /font_options.py
parente87fc8ce21777108f0ee1d102220535345124234 (diff)
Filechoosers completed, new font options, internacionalization.
Diffstat (limited to 'font_options.py')
-rw-r--r--font_options.py102
1 files changed, 102 insertions, 0 deletions
diff --git a/font_options.py b/font_options.py
new file mode 100644
index 0000000..0a801d6
--- /dev/null
+++ b/font_options.py
@@ -0,0 +1,102 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# font_options.py
+#
+# Copyright 2011 Daniel Francis <santiago.danielfrancis@gmail.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#
+#
+
+import gobject
+import gtk
+
+from sugar.graphics.combobox import ComboBox
+from sugar.graphics.toolcombobox import ToolComboBox
+
+class FontToolbarOptions(gobject.GObject):
+ __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)
+ self.family = "Monospace"
+ self.face = "Regular"
+
+ def size_changed(self, adjustment):
+ self.emit("font-changed", self.family, self.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())
+
+ def family_changed(self, widget):
+ iter = widget.get_active_iter()
+ self.family = self.family_model.get_value(iter, 0)
+ self.face_combo.set_model(self.faces[self.family])
+ self.face_combo.set_active(0)
+
+ def load_toolbar(self):
+ self.context = self.emit("load-pango-context")
+ self.family_combo = ComboBox()
+ family_renderer = gtk.CellRendererText()
+ family_renderer.set_property("family-set", True)
+ self.family_combo.pack_start(family_renderer)
+ self.family_combo.add_attribute(family_renderer, 'text', 0)
+ self.family_combo.add_attribute(family_renderer, 'family', 0)
+ self.family_model = gtk.ListStore(str)
+ monospace_index = 0
+ count = 0
+ self.faces = {}
+ for i in self.context.list_families():
+ count += 1
+ name = i.get_name()
+ if name == "Monospace": monospace_index = count - 1
+ self.family_model.append([name])
+ family_faces = gtk.ListStore(str, str)
+ for face in i.list_faces():
+ face_name = face.get_face_name()
+ family_faces.append([face_name, "%s %s" % (name, face_name)])
+ self.faces[name] = family_faces
+ self.family_combo.set_model(self.family_model)
+ self.family_combo.set_active(monospace_index)
+ self.family_combo.connect("changed", self.family_changed)
+ self.family_combo.show()
+ self.family_tool_item = ToolComboBox(self.family_combo)
+ self.family_tool_item.show()
+
+ self.face_combo = ComboBox()
+ face_renderer = gtk.CellRendererText()
+ face_renderer.set_property("family-set", True)
+ self.face_combo.pack_start(face_renderer)
+ self.face_combo.add_attribute(face_renderer, 'text', 0)
+ self.face_combo.add_attribute(face_renderer, 'font', 1)
+ current_model = self.faces["Monospace"]
+ self.face_combo.set_model(current_model)
+ self.face_combo.set_active(0)
+ self.face_combo.connect("changed", self.face_changed)
+ self.face_combo.show()
+ self.face_tool_item = ToolComboBox(self.face_combo)
+ self.face_tool_item.show()
+
+ self.size_adj = gtk.Adjustment(value=10, lower=5, upper=100, step_incr=1)
+ self.size_adj.connect("value-changed", self.size_changed)
+ self.size_spin = gtk.SpinButton(self.size_adj)
+ self.size_spin.show()
+ self.size_spin_item = gtk.ToolItem()
+ self.size_spin_item.add(self.size_spin)
+ self.size_spin_item.show()