Switch to standard GTK containers. Specific coloring details have been
moved to the theme at the same time.
Based on earlier work by Raul Gutierrez and Walter Bender.
---
src/jarabe/intro/colorpicker.py | 24
src/jarabe/intro/window.py | 122 ++-
2 files changed, 69 insertions(+), 77 deletions(-)
For correct visual appearance, depends on patch:
[PATCH sugar-artwork] Enforce white background on intro screen
diff --git a/src/jarabe/intro/colorpicker.py b/src/jarabe/intro/colorpicker.py
index 997199b..75c15c1 100644
--- a/src/jarabe/intro/colorpicker.py
+++ b/src/jarabe/intro/colorpicker.py
@@ -14,27 +14,27 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import hippo
+import gtk
-from sugar.graphics.icon import CanvasIcon
+from sugar.graphics.icon import Icon
from sugar.graphics import style
from sugar.graphics.xocolor import XoColor
-class ColorPicker(hippo.CanvasBox, hippo.CanvasItem):
-def __init__(self, **kwargs):
-hippo.CanvasBox.__init__(self, **kwargs)
-self.props.orientation = hippo.ORIENTATION_HORIZONTAL
+class ColorPicker(gtk.EventBox):
+def __init__(self):
+gtk.EventBox.__init__(self)
self._xo_color = None
-self._xo = CanvasIcon(size=style.XLARGE_ICON_SIZE,
- icon_name='computer-xo')
+self._xo = Icon(pixel_size=style.XLARGE_ICON_SIZE,
+icon_name='computer-xo')
self._set_random_colors()
-self._xo.connect('activated', self._xo_activated_cb)
-self.append(self._xo)
+self.connect('button-press-event', self._button_press_cb)
+self.add(self._xo)
-def _xo_activated_cb(self, item):
-self._set_random_colors()
+def _button_press_cb(self, widget, event):
+if event.button == 1 and event.type == gtk.gdk.BUTTON_PRESS:
+self._set_random_colors()
def get_color(self):
return self._xo_color
diff --git a/src/jarabe/intro/window.py b/src/jarabe/intro/window.py
index df19fbf..f7937b1 100644
--- a/src/jarabe/intro/window.py
+++ b/src/jarabe/intro/window.py
@@ -22,12 +22,10 @@ import pwd
import gtk
import gobject
-import hippo
from sugar import env
from sugar.graphics import style
from sugar.graphics.icon import Icon
-from sugar.graphics.entry import CanvasEntry
from sugar.graphics.xocolor import XoColor
from jarabe.intro import colorpicker
@@ -57,13 +55,13 @@ def create_profile(name, color=None):
logging.error('Keypair exists, skip generation.')
-class _Page(hippo.CanvasBox):
+class _Page(gtk.VBox):
__gproperties__ = {
'valid': (bool, None, None, False, gobject.PARAM_READABLE),
}
-def __init__(self, **kwargs):
-hippo.CanvasBox.__init__(self, **kwargs)
+def __init__(self):
+gtk.VBox.__init__(self)
self.valid = False
def set_valid(self, valid):
@@ -80,27 +78,23 @@ class _Page(hippo.CanvasBox):
class _NamePage(_Page):
def __init__(self, intro):
-_Page.__init__(self, xalign=hippo.ALIGNMENT_CENTER,
- background_color=_BACKGROUND_COLOR.get_int(),
- spacing=style.DEFAULT_SPACING,
- orientation=hippo.ORIENTATION_HORIZONTAL,)
-
+_Page.__init__(self)
self._intro = intro
-label = hippo.CanvasText(text=_('Name:'))
-self.append(label)
-
-self._entry = CanvasEntry(box_width=style.zoom(300))
-self._entry.set_background(_BACKGROUND_COLOR.get_html())
-self._entry.connect('notify::text', self._text_changed_cb)
+alignment = gtk.Alignment(0.5, 0.5, 0, 0)
+self.pack_start(alignment, expand=True, fill=True)
-widget = self._entry.props.widget
-widget.set_max_length(45)
+hbox = gtk.HBox(spacing=style.DEFAULT_SPACING)
+alignment.add(hbox)
-self.append(self._entry)
+label = gtk.Label(_('Name:'))
+hbox.pack_start(label, expand=False)
-if gtk.widget_get_default_direction() == gtk.TEXT_DIR_RTL:
-self.reverse()
+self._entry = gtk.Entry()
+self._entry.connect('notify::text', self._text_changed_cb)
+self._entry.set_size_request(style.zoom(300), -1)
+self._entry.set_max_length(45)
+hbox.pack_start(self._entry, expand=False)
def _text_changed_cb(self, entry, pspec):
valid = len(entry.props.text.strip()) 0
@@ -113,22 +107,21 @@ class _NamePage(_Page):
self._entry.props.text = new_name
def activate(self):
-self._entry.props.widget.grab_focus()
+self._entry.grab_focus()
class _ColorPage(_Page):
-def __init__(self, **kwargs):
-_Page.__init__(self, xalign=hippo.ALIGNMENT_CENTER,
- background_color=_BACKGROUND_COLOR.get_int(),
-