diff options
Diffstat (limited to 'mainscreen.py')
-rw-r--r-- | mainscreen.py | 101 |
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() |