Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/typingturtle.py
diff options
context:
space:
mode:
Diffstat (limited to 'typingturtle.py')
-rwxr-xr-xtypingturtle.py99
1 files changed, 50 insertions, 49 deletions
diff --git a/typingturtle.py b/typingturtle.py
index ad6c6cb..78d2fe6 100755
--- a/typingturtle.py
+++ b/typingturtle.py
@@ -25,25 +25,21 @@ from port import json
#dbgp.client.brkOnExcept(host='192.168.1.104', port=12900)
# there is need to set up localization.
-# since sugar.activity.main already seted up gettext envronment
+# since sugar3.activity.main already seted up gettext envronment
#locale.setlocale(locale.LC_ALL, '')
-# Import PyGTK.
-import gobject, pygtk, gtk, pango
+
+from gi.repository import Gtk
# Import Sugar UI modules.
-import sugar.activity.activity
-from sugar.graphics import *
-from sugar.graphics import toolbutton
-from sugar import profile
-
-OLD_TOOLBAR = False
-try:
- from sugar.graphics.toolbarbox import ToolbarBox
- from sugar.activity.widgets import StopButton
- from sugar.activity.widgets import ActivityToolbarButton
-except ImportError:
- OLD_TOOLBAR = True
+import sugar3.activity.activity
+from sugar3.graphics import *
+from sugar3.graphics import toolbutton
+from sugar3 import profile
+
+from sugar3.graphics.toolbarbox import ToolbarBox
+from sugar3.activity.widgets import StopButton
+from sugar3.activity.widgets import ActivityToolbarButton
# Initialize logging.
log = logging.getLogger('Typing Turtle')
@@ -51,9 +47,28 @@ log.setLevel(logging.DEBUG)
logging.basicConfig()
# Change to bundle directory.
-bundle_path = sugar.activity.activity.get_bundle_path()
+bundle_path = sugar3.activity.activity.get_bundle_path()
os.chdir(bundle_path)
+# Set correct DPI for Rsvg and Screen
+from gi.repository import PangoCairo
+
+def _get_screen_dpi():
+ xft_dpi = Gtk.Settings.get_default().get_property('gtk-xft-dpi')
+ dpi = float(xft_dpi / 1024)
+ logging.debug('Setting dpi to: %f', dpi)
+ # HACK: if the DPI detected is 200.0 it seems we are on an XO, so
+ # we return 133 because the XO manage its resolution in a complex
+ # way. More information here:
+ # http://wiki.laptop.org/go/Display
+ if 200 == int(dpi):
+ return 133
+ return dpi
+
+dpi = _get_screen_dpi()
+font_map_default = PangoCairo.font_map_get_default()
+font_map_default.set_resolution(dpi)
+
# Import activity modules.
import mainscreen, editlessonlistscreen
@@ -61,16 +76,16 @@ import mainscreen, editlessonlistscreen
#
# It owns the main application window, and all the various toolbars and options.
# Activity Screens are stored in a stack, with the currently active screen on top.
-class TypingTurtle(sugar.activity.activity.Activity):
+class TypingTurtle(sugar3.activity.activity.Activity):
def __init__ (self, handle):
- sugar.activity.activity.Activity.__init__(self, handle)
+ sugar3.activity.activity.Activity.__init__(self, handle)
self.set_title(_("Typing Turtle"))
self.max_participants = 1
self.build_toolbox()
self.screens = []
- self.screenbox = gtk.VBox()
+ self.screenbox = Gtk.VBox()
self.nick = profile.get_nick_name()
@@ -92,45 +107,31 @@ class TypingTurtle(sugar.activity.activity.Activity):
self.show_all()
- self.editorbtn = sugar.graphics.toolbutton.ToolButton('view-source')
+ self.editorbtn = sugar3.graphics.toolbutton.ToolButton('view-source')
self.editorbtn.set_tooltip(_("Edit Lessons"))
self.editorbtn.connect('clicked', self.editor_clicked_cb)
- if OLD_TOOLBAR:
- # Hide the sharing button from the activity toolbar since
- # we don't support sharing.
- activity_toolbar = self.tbox.get_activity_toolbar()
- activity_toolbar.share.props.visible = False
-
- share_idx = activity_toolbar.get_item_index(activity_toolbar.share)
- activity_toolbar.insert(self.editorbtn, share_idx)
- else:
- activity_toolbar = self.toolbar_box.toolbar
- activity_toolbar.insert(self.editorbtn, 1)
+ activity_toolbar = self.toolbar_box.toolbar
+ activity_toolbar.insert(self.editorbtn, 1)
self.editorbtn.show_all()
def build_toolbox(self):
- if OLD_TOOLBAR:
- self.tbox = sugar.activity.activity.ActivityToolbox(self)
- self.tbox.show_all()
- self.set_toolbox(self.tbox)
- else:
- self.toolbar_box = ToolbarBox()
+ self.toolbar_box = ToolbarBox()
- activity_button = ActivityToolbarButton(self)
- self.toolbar_box.toolbar.insert(activity_button, 0)
- activity_button.show()
+ activity_button = ActivityToolbarButton(self)
+ self.toolbar_box.toolbar.insert(activity_button, 0)
+ activity_button.show()
- separator = gtk.SeparatorToolItem()
- separator.props.draw = False
- separator.set_expand(True)
- self.toolbar_box.toolbar.insert(separator, -1)
+ separator = Gtk.SeparatorToolItem()
+ separator.props.draw = False
+ separator.set_expand(True)
+ self.toolbar_box.toolbar.insert(separator, -1)
- self.toolbar_box.toolbar.insert(StopButton(self), -1)
+ self.toolbar_box.toolbar.insert(StopButton(self), -1)
- self.set_toolbar_box(self.toolbar_box)
- self.toolbar_box.show_all()
+ self.set_toolbar_box(self.toolbar_box)
+ self.toolbar_box.show_all()
def editor_clicked_cb(self, btn):
self.push_screen(editlessonlistscreen.EditLessonListScreen(self, self.mainscreen.lessons))
@@ -146,7 +147,7 @@ class TypingTurtle(sugar.activity.activity.Activity):
self.screenbox.remove(oldscreen)
- self.screenbox.pack_start(screen, True, True)
+ self.screenbox.pack_start(screen, True, True, 0)
self.screens.append(screen)
try:
@@ -172,7 +173,7 @@ class TypingTurtle(sugar.activity.activity.Activity):
except:
pass
- self.screenbox.pack_start(screen)
+ self.screenbox.pack_start(screen, True, True, 0)
def add_history(self, entry):
self.data['history'].append(entry)