Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/mainscreen.py
diff options
context:
space:
mode:
Diffstat (limited to 'mainscreen.py')
-rw-r--r--mainscreen.py101
1 files changed, 52 insertions, 49 deletions
diff --git a/mainscreen.py b/mainscreen.py
index 2762baf..7f540f0 100644
--- a/mainscreen.py
+++ b/mainscreen.py
@@ -19,12 +19,14 @@ import logging, os, math, time, copy, locale, datetime, random, re, glob
from gettext import gettext as _
from port import json
-# Import PyGTK.
-import gobject, pygtk, gtk, pango
+from gi.repository import Gtk
+from gi.repository import Gdk
+from gi.repository import GdkPixbuf
+from gi.repository import GObject
# Import Sugar UI modules.
-import sugar.activity.activity
-from sugar.graphics import *
+import sugar3.activity.activity
+from sugar3.graphics import *
# Import activity modules.
import lessonscreen, medalscreen
@@ -38,9 +40,9 @@ import keyboard
# http://commons.wikimedia.org/wiki/File:Silver_medal_world_centered.svg
# http://commons.wikimedia.org/wiki/File:Bronze_medal_world_centered.svg
-class MainScreen(gtk.VBox):
+class MainScreen(Gtk.VBox):
def __init__(self, activity):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
self.activity = activity
@@ -48,37 +50,37 @@ class MainScreen(gtk.VBox):
self.titlescene = titlescene.TitleScene()
# Build lessons list.
- self.lessonbox = gtk.HBox()
+ self.lessonbox = Gtk.HBox()
- #nexticon = sugar.graphics.icon.Icon(icon_name='go-next')
+ #nexticon = sugar3.graphics.icon.Icon(icon_name='go-next')
#self.nextlessonbtn.add(nexticon)
- nextlabel = gtk.Label()
+ nextlabel = Gtk.Label()
nextlabel.set_markup("<span size='large'>" + _('Next') + "</span>")
- self.nextlessonbtn = gtk.Button()
+ self.nextlessonbtn = Gtk.Button()
self.nextlessonbtn.add(nextlabel)
self.nextlessonbtn.connect('clicked', self.next_lesson_clicked_cb)
- #previcon = sugar.graphics.icon.Icon(icon_name='go-previous')
+ #previcon = sugar3.graphics.icon.Icon(icon_name='go-previous')
#self.prevlessonbtn.add(previcon)
- prevlabel = gtk.Label()
+ prevlabel = Gtk.Label()
prevlabel.set_markup("<span size='large'>" + _('Previous') + "</span>")
- self.prevlessonbtn = gtk.Button()
+ self.prevlessonbtn = Gtk.Button()
self.prevlessonbtn.add(prevlabel)
self.prevlessonbtn.connect('clicked', self.prev_lesson_clicked_cb)
- lessonlabel = gtk.Label()
+ lessonlabel = Gtk.Label()
lessonlabel.set_markup("<span size='x-large' weight='bold'>" + _('Start Lesson') + "</span>")
- lessonbtn = gtk.Button()
+ lessonbtn = Gtk.Button()
lessonbtn.add(lessonlabel)
lessonbtn.connect('clicked', self.lesson_clicked_cb)
- lessonbtn.modify_bg(gtk.STATE_NORMAL, self.get_colormap().alloc_color('#60b060'))
+ lessonbtn.modify_bg(Gtk.StateType.NORMAL, Gdk.Color.parse('#60b060')[1])
# Load lessons for this language.
code = locale.getdefaultlocale()[0] or 'en_US'
- lessons_path = os.path.join(sugar.activity.activity.get_bundle_path(), 'lessons')
+ lessons_path = os.path.join(sugar3.activity.activity.get_bundle_path(), 'lessons')
lessons_file = os.path.join(lessons_path, code + '.lessons')
if os.path.isfile(lessons_file):
self.load_lessons(lessons_file)
@@ -99,24 +101,25 @@ class MainScreen(gtk.VBox):
self.lessons.sort(lambda x, y: x.get('order', 0) - y.get('order', 0))
# Load all the keyboard images.
- width = int(gtk.gdk.screen_width())
- height = int(gtk.gdk.screen_height()*0.3)
+ width = int(Gdk.Screen.width())
+ height = int(Gdk.Screen.height()*0.3)
+
self.keyboard_images = keyboard.KeyboardImages(width, height)
self.keyboard_images.load_images()
- navbox = gtk.HBox()
+ navbox = Gtk.HBox()
navbox.set_spacing(10)
- navbox.pack_start(self.prevlessonbtn, True)
- navbox.pack_start(lessonbtn, True)
- navbox.pack_start(self.nextlessonbtn, True)
+ navbox.pack_start(self.prevlessonbtn, True, True, 0)
+ navbox.pack_start(lessonbtn, True, True, 0)
+ navbox.pack_start(self.nextlessonbtn, True, True, 0)
- lessonbox = gtk.VBox()
+ lessonbox = Gtk.VBox()
lessonbox.set_spacing(10)
- lessonbox.pack_start(navbox, False)
- lessonbox.pack_start(self.lessonbox)
+ lessonbox.pack_start(navbox, False, True, 0)
+ lessonbox.pack_start(self.lessonbox, True, True, 0)
self.pack_start(self.titlescene, False, True, 10)
- self.pack_start(lessonbox, True)
+ self.pack_start(lessonbox, True, True, 0)
self.show_next_lesson()
@@ -165,10 +168,10 @@ class MainScreen(gtk.VBox):
medal_type = self.activity.data['medals'][lesson['name']]['type']
# Create the lesson button.
- namelabel = gtk.Label()
+ namelabel = Gtk.Label()
namelabel.set_alignment(0.5, 0.5)
namelabel.set_markup("<span size='x-large' weight='bold'>" + lesson['name'] + "</span>")
- desclabel = gtk.Label()
+ desclabel = Gtk.Label()
desclabel.set_alignment(0.5, 0.5)
desclabel.set_markup("<span size='large' color='#606060'>" + lesson['description'] + "</span>")
@@ -177,16 +180,16 @@ class MainScreen(gtk.VBox):
else:
hint = ''
- #hintlabel = gtk.Label()
+ #hintlabel = Gtk.Label()
#hintlabel.set_alignment(0.0, 0.8)
#hintlabel.set_markup("<span size='8000' color='#606020'>" + hint + "</span>")
- labelbox = gtk.VBox()
+ labelbox = Gtk.VBox()
labelbox.set_spacing(10)
labelbox.set_border_width(20)
- labelbox.pack_start(namelabel, False)
- labelbox.pack_start(desclabel, False)
- #labelbox.pack_start(hintlabel)
+ labelbox.pack_start(namelabel, False, True, 0)
+ labelbox.pack_start(desclabel, False, True, 0)
+ #labelbox.pack_start(hintlabel, True, True, 0)
# Create the medal image.
images = {
@@ -196,11 +199,11 @@ class MainScreen(gtk.VBox):
'gold': 'images/gold-medal.svg'
}
- medal_size = int(2.0 * sugar.graphics.style.GRID_CELL_SIZE)
- medalpixbuf = gtk.gdk.pixbuf_new_from_file(images[medal_type])
- medalpixbuf = medalpixbuf.scale_simple(medal_size, medal_size, gtk.gdk.INTERP_BILINEAR)
+ medal_size = int(2.0 * sugar3.graphics.style.GRID_CELL_SIZE)
+ medalpixbuf = GdkPixbuf.Pixbuf.new_from_file(images[medal_type])
+ medalpixbuf = medalpixbuf.scale_simple(medal_size, medal_size, GdkPixbuf.InterpType.BILINEAR)
- medalimage = gtk.Image()
+ medalimage = Gtk.Image()
medalimage.set_from_pixbuf(medalpixbuf)
names = {
@@ -209,30 +212,30 @@ class MainScreen(gtk.VBox):
'silver': _('Silver Medal'),
'gold': _('Gold Medal'),
}
- medallabel = gtk.Label(names[medal_type])
+ medallabel = Gtk.Label(label=names[medal_type])
- medalbox = gtk.VBox()
- medalbox.pack_start(medalimage)
- medalbox.pack_start(medallabel)
+ medalbox = Gtk.VBox()
+ medalbox.pack_start(medalimage, True, True, 0)
+ medalbox.pack_start(medallabel, True, True, 0)
- medalbtn = gtk.Button()
+ medalbtn = Gtk.Button()
medalbtn.add(medalbox)
medalbtn.connect('clicked', self.medal_clicked_cb)
# Hilite the button in the direction of the first unmedaled lesson.
next_index = self.get_next_lesson()
if next_index > self.lesson_index and index < len(self.lessons)-1:
- self.nextlessonbtn.modify_bg(gtk.STATE_NORMAL, self.get_colormap().alloc_color('#ff8080'))
+ self.nextlessonbtn.modify_bg(Gtk.StateType.NORMAL, Gdk.Color.parse('#ff8080')[1])
else:
- self.nextlessonbtn.modify_bg(gtk.STATE_NORMAL, self.get_colormap().alloc_color('#40a040'))
+ self.nextlessonbtn.modify_bg(Gtk.StateType.NORMAL, Gdk.Color.parse('#40a040')[1])
if next_index < self.lesson_index and index > 0:
- self.prevlessonbtn.modify_bg(gtk.STATE_NORMAL, self.get_colormap().alloc_color('#ff8080'))
+ self.prevlessonbtn.modify_bg(Gtk.StateType.NORMAL, Gdk.Color.parse('#ff8080')[1])
else:
- self.prevlessonbtn.modify_bg(gtk.STATE_NORMAL, self.get_colormap().alloc_color('#40a040'))
+ self.prevlessonbtn.modify_bg(Gtk.StateType.NORMAL, Gdk.Color.parse('#40a040')[1])
- self.lessonbox.pack_start(labelbox, True)
+ self.lessonbox.pack_start(labelbox, True, True, 0)
if medal_type != 'none':
- self.lessonbox.pack_start(medalbtn, False)
+ self.lessonbox.pack_start(medalbtn, False, True, 0)
self.lessonbox.show_all()