diff options
Diffstat (limited to 'src/jarabe/intro/window.py')
-rw-r--r-- | src/jarabe/intro/window.py | 97 |
1 files changed, 48 insertions, 49 deletions
diff --git a/src/jarabe/intro/window.py b/src/jarabe/intro/window.py index df19fbf..d706dd3 100644 --- a/src/jarabe/intro/window.py +++ b/src/jarabe/intro/window.py @@ -22,7 +22,6 @@ import pwd import gtk import gobject -import hippo from sugar import env from sugar.graphics import style @@ -57,13 +56,13 @@ def create_profile(name, color=None): logging.error('Keypair exists, skip generation.') -class _Page(hippo.CanvasBox): +class _Page(gtk.HBox): __gproperties__ = { 'valid': (bool, None, None, False, gobject.PARAM_READABLE), } def __init__(self, **kwargs): - hippo.CanvasBox.__init__(self, **kwargs) + gtk.VBox.__init__(self) self.valid = False def set_valid(self, valid): @@ -80,27 +79,25 @@ class _Page(hippo.CanvasBox): class _NamePage(_Page): def __init__(self, intro): - _Page.__init__(self, xalign=hippo.ALIGNMENT_CENTER, + _Page.__init__(self, background_color=_BACKGROUND_COLOR.get_int(), - spacing=style.DEFAULT_SPACING, - orientation=hippo.ORIENTATION_HORIZONTAL,) - + spacing=style.DEFAULT_SPACING) self._intro = intro - label = hippo.CanvasText(text=_('Name:')) - self.append(label) + label = gtk.Label(_('Name:')) + self.add(label) - self._entry = CanvasEntry(box_width=style.zoom(300)) - self._entry.set_background(_BACKGROUND_COLOR.get_html()) + self._entry = gtk.Entry() + # self._entry.set_background(_BACKGROUND_COLOR.get_html()) self._entry.connect('notify::text', self._text_changed_cb) + self._entry.set_max_length(45) - widget = self._entry.props.widget - widget.set_max_length(45) - - self.append(self._entry) + self.add(self._entry) - if gtk.widget_get_default_direction() == gtk.TEXT_DIR_RTL: - self.reverse() + # TODO(rgs): Do we need to do something here or GTK handles this + # for us? + #if gtk.widget_get_default_direction() == gtk.TEXT_DIR_RTL: + # self.reverse() def _text_changed_cb(self, entry, pspec): valid = len(entry.props.text.strip()) > 0 @@ -118,16 +115,14 @@ class _NamePage(_Page): class _ColorPage(_Page): def __init__(self, **kwargs): - _Page.__init__(self, xalign=hippo.ALIGNMENT_CENTER, + _Page.__init__(self, background_color=_BACKGROUND_COLOR.get_int(), - spacing=style.DEFAULT_SPACING, - yalign=hippo.ALIGNMENT_CENTER, **kwargs) + spacing=style.DEFAULT_SPACING) - self._label = hippo.CanvasText(text=_('Click to change color:'), - xalign=hippo.ALIGNMENT_CENTER) - self.append(self._label) + self._label = gtk.Label(_('Click to change color:')) + self.add(self._label) - self._cp = colorpicker.ColorPicker(xalign=hippo.ALIGNMENT_CENTER) + self._cp = colorpicker.ColorPicker() self.append(self._cp) self._color = self._cp.get_color() @@ -137,7 +132,7 @@ class _ColorPage(_Page): return self._cp.get_color() -class _IntroBox(hippo.CanvasBox): +class _IntroBox(gtk.HBox): __gsignals__ = { 'done': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT])), @@ -150,8 +145,8 @@ class _IntroBox(hippo.CanvasBox): PAGE_LAST = PAGE_COLOR def __init__(self): - hippo.CanvasBox.__init__(self, padding=style.zoom(30), - background_color=_BACKGROUND_COLOR.get_int()) + # TODO(rgs): padding=style.zoom(30) + gtk.HBox.__init__(self) self._page = self.PAGE_NAME self._name_page = _NamePage(self) @@ -179,46 +174,53 @@ class _IntroBox(hippo.CanvasBox): elif self._page == self.PAGE_COLOR: self._current_page = self._color_page - self.append(self._current_page, hippo.PACK_EXPAND) + self.add(self._current_page) - button_box = hippo.CanvasBox(orientation=hippo.ORIENTATION_HORIZONTAL) + button_box = gtk.HBox() if self._page != self.PAGE_FIRST: - back_button = hippo.CanvasButton(text=_('Back')) + back_button = gtk.Button(_('Back')) image = Icon(icon_name='go-left') - back_button.props.widget.set_image(image) + back_button.set_image(image) back_button.connect('activated', self._back_activated_cb) - button_box.append(back_button) + button_box.add(back_button) - spacer = hippo.CanvasBox() - button_box.append(spacer, hippo.PACK_EXPAND) + # TODO(rgs): there surely is a more elegant way to do this + spacer = gtk.Label("") + spacer.set_size_request(10, 1) + button_box.add(spacer) - self._next_button = hippo.CanvasButton() + self._next_button = gtk.Button() image = Icon(icon_name='go-right') - self._next_button.props.widget.set_image(image) + self._next_button.set_image(image) if self._page == self.PAGE_LAST: - self._next_button.props.text = _('Done') + self._next_button.set_label(_('Done')) self._next_button.connect('activated', self._done_activated_cb) else: - self._next_button.props.text = _('Next') + self._next_button.set_label(_('Next')) self._next_button.connect('activated', self._next_activated_cb) self._current_page.activate() self._update_next_button() - button_box.append(self._next_button) + button_box.add(self._next_button) self._current_page.connect('notify::valid', self._page_valid_changed_cb) - self.append(button_box) + self.add(button_box) - if gtk.widget_get_default_direction() == gtk.TEXT_DIR_RTL: - button_box.reverse() + # TODO(rgs): Do we need to do something here or GTK handles this + # for us? + #if gtk.widget_get_default_direction() == gtk.TEXT_DIR_RTL: + # button_box.reverse() + + def remove_all(self): + for child in self.get_children(): + self.remove(child) def _update_next_button(self): - widget = self._next_button.props.widget - widget.props.sensitive = self._current_page.props.valid + self._next_button.set_sensitive(self._current_page.props.valid) def _page_valid_changed_cb(self, page, pspec): self._update_next_button() @@ -250,7 +252,6 @@ class _IntroBox(hippo.CanvasBox): self.emit('done', name, color) - class IntroWindow(gtk.Window): def __init__(self): gtk.Window.__init__(self) @@ -258,13 +259,11 @@ class IntroWindow(gtk.Window): self.props.decorated = False self.maximize() - self._canvas = hippo.Canvas() self._intro_box = _IntroBox() self._intro_box.connect('done', self._done_cb) - self._canvas.set_root(self._intro_box) - self.add(self._canvas) - self._canvas.show() + self.add(self._intro_box) + self._intro_box.show() self.connect('key-press-event', self.__key_press_cb) def _done_cb(self, box, name, color): |