Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--develop-activity/develop_app.py2
-rw-r--r--develop-activity/sourceview_editor.py23
-rw-r--r--develop-activity/toolbars.py33
3 files changed, 54 insertions, 4 deletions
diff --git a/develop-activity/develop_app.py b/develop-activity/develop_app.py
index b83d0de..2f65032 100644
--- a/develop-activity/develop_app.py
+++ b/develop-activity/develop_app.py
@@ -95,6 +95,8 @@ class DevelopActivity(activity.Activity):
view_btn.props.label = _('View')
view_toolbar.connect('theme-changed',
self.editor.theme_changed_cb)
+ view_toolbar.connect('font-size-changed',
+ self.editor.font_changed_cb)
toolbarbox.toolbar.insert(view_btn, -1)
edit_btn = ToolbarButton()
diff --git a/develop-activity/sourceview_editor.py b/develop-activity/sourceview_editor.py
index 9e2cb77..c47bcc7 100644
--- a/develop-activity/sourceview_editor.py
+++ b/develop-activity/sourceview_editor.py
@@ -31,6 +31,9 @@ from sugar3.graphics.icon import Icon
from widgets import TabLabel
import logviewer
+FONT_CHANGE_STEP = 2
+DEFAULT_FONT_SIZE = 10
+
class S_WHERE:
selection, file, multifile = range(3) # an enum
@@ -50,6 +53,7 @@ class GtkSourceview2Editor(Gtk.Notebook):
self.set_scrollable(True)
self.theme_state = "light"
+ self.font_size = DEFAULT_FONT_SIZE
def theme_changed_cb(self, widget, theme_name):
self.theme_state = theme_name
@@ -61,6 +65,16 @@ class GtkSourceview2Editor(Gtk.Notebook):
else:
children[0].get_children()[0].set_theme(theme_name)
+ def font_changed_cb(self, widget, size):
+ self.font_size = size
+ for i in range(0, self.get_n_pages()):
+ page = self.get_nth_page(i)
+ children = page.get_children()
+ if isinstance(children[0], Icon):
+ children[1].get_children()[0].set_font_size(size)
+ else:
+ children[0].get_children()[0].set_font_size(size)
+
def _page_removed_cb(self, __notebook, page, n):
try:
page.page.remove()
@@ -88,6 +102,7 @@ class GtkSourceview2Editor(Gtk.Notebook):
page = GtkSourceview2Page(full_path)
page.set_theme(self.theme_state)
+ page.set_font_size(self.font_size)
vbox = Gtk.VBox()
if full_path.endswith('.svg'):
@@ -298,11 +313,15 @@ class GtkSourceview2Page(GtkSource.View):
self.set_tab_width(4)
self.set_auto_indent(True)
- self.modify_font(Pango.FontDescription('Monospace 10'))
-
self.load_text()
self.show()
+ def set_font_size(self, size):
+ desc = Pango.FontDescription(
+ 'Monospace %d' % size)
+ # print 'Monospace %d' % size
+ self.modify_font(desc)
+
def set_theme(self, theme):
if theme == "light":
self.text_buffer.set_style_scheme(self.light_theme)
diff --git a/develop-activity/toolbars.py b/develop-activity/toolbars.py
index f8b0807..b1a8746 100644
--- a/develop-activity/toolbars.py
+++ b/develop-activity/toolbars.py
@@ -34,27 +34,56 @@ SEARCH_ICONS = {False: {S_WHERE.selection: "search-in-selection",
S_WHERE.file: "regex",
S_WHERE.multifile: "multi-regex",
}}
+from sourceview_editor import FONT_CHANGE_STEP, DEFAULT_FONT_SIZE
class DevelopViewToolbar(Gtk.Toolbar):
__gsignals__ = {
'theme-changed': (GObject.SIGNAL_RUN_FIRST, None,
- (str,))
+ (str,)),
+ 'font-size-changed': (GObject.SIGNAL_RUN_FIRST, None,
+ (int,)),
}
def __init__(self, _activity):
GObject.GObject.__init__(self)
self._activity = _activity
+ self.theme_state = "light"
+ self.font_size = DEFAULT_FONT_SIZE
self.theme_toggler = ToolButton('dark-theme')
- self.theme_state = "light"
self.theme_toggler.connect('clicked', self._toggled_theme)
+ self.theme_toggler.set_tooltip('Switch to Dark Theme')
self.insert(self.theme_toggler, -1)
self.theme_toggler.show()
+ sep = Gtk.SeparatorToolItem()
+ self.insert(sep, -1)
+ sep.show()
+
+ self.font_plus = ToolButton('gtk-add')
+ self.font_plus.connect('clicked', self._font_size_increase)
+ self.font_plus.set_tooltip('Increase Font Size')
+ self.insert(self.font_plus, -1)
+ self.font_plus.show()
+
+ self.font_minus = ToolButton('gtk-remove')
+ self.font_minus.connect('clicked', self._font_size_decrease)
+ self.font_minus.set_tooltip('Decrease Font Size')
+ self.insert(self.font_minus, -1)
+ self.font_minus.show()
+
self.show()
+ def _font_size_increase(self, button):
+ self.font_size += FONT_CHANGE_STEP
+ self.emit('font-size-changed', self.font_size)
+
+ def _font_size_decrease(self, button):
+ self.font_size -= FONT_CHANGE_STEP
+ self.emit('font-size-changed', self.font_size)
+
def _toggled_theme(self, button):
if self.theme_state == "dark":
self.theme_state = "light"