[Sugar-devel] [PATCH sugar-toolkit-gtk3] Fixing deprecations: Using Gtk.Orientation

S. Daniel Francis francis at sugarlabs.org
Wed Jun 27 08:28:54 EDT 2012


> [1] states for example: "GtkHBox has been deprecated. You can use GtkBox
> instead, which is a very quick and easy change. If you have derived your own
> classes from GtkHBox, you can simply change the inheritance to derive
> directly from GtkBox. No further changes are needed, since the default value
> of the "orientation" property is GTK_ORIENTATION_HORIZONTAL. If you want
> your code to be future-proof, the recommendation is to switch to GtkGrid,
> since GtkBox is going to be deprecated in favor of the more flexible grid
> widget eventually. For more information about migrating to GtkGrid, see
> Migrating from other containers to GtkGrid".

Why not? Lets migrate all our gtk3 components to GtkGrid!

> So the first question that arises is: should we switch directly to GtkGrid
> [2]? Best would be to do a simple test program and compare the different
> containers. If GtkGrid can be used in the same way and it is the intended
> way forward we should switch directly to that. The migrating guide is
> interesting as well [3].
Your articles say the ways to do it with GtkGrid are very different
than with GtkBox, but it's similar than the GtkTable.

I can make another patch with the migration from GtkBox and GtkTable
to GtkGrid and add the information to the Wiki [1], but this patch
hasn't got only corrections of boxes. You decide if I have to make
from this patch a version 2, or make a new patch only with boxes and
tables corrections.

Cheers.

[1] http://wiki.sugarlabs.org/go/Features/GTK3/Porting

> Regards,
>   Simon
>
> [1] http://developer.gnome.org/gtk3/3.4/GtkHBox.html
> [2] http://developer.gnome.org/gtk3/3.4/GtkGrid.html
> [3] http://developer.gnome.org/gtk3/3.4/gtk-migrating-GtkGrid.html
>
>
>
> On 06/27/2012 04:56 AM, Daniel Francis wrote:
>>
>> ---
>>  src/sugar3/activity/widgets.py      |    3 ++-
>>  src/sugar3/graphics/alert.py        |    9 ++++++---
>>  src/sugar3/graphics/notebook.py     |    6 ++++--
>>  src/sugar3/graphics/palette.py      |   27 +++++++++++++++++++--------
>>  src/sugar3/graphics/panel.py        |    3 ++-
>>  src/sugar3/graphics/radiopalette.py |    3 ++-
>>  src/sugar3/graphics/toolbarbox.py   |    3 ++-
>>  src/sugar3/graphics/toolbox.py      |    6 ++++--
>>  src/sugar3/graphics/toolcombobox.py |    3 ++-
>>  src/sugar3/graphics/tray.py         |    6 ++++--
>>  src/sugar3/graphics/window.py       |    6 ++++--
>>  11 files changed, 51 insertions(+), 24 deletions(-)
>>
>> diff --git a/src/sugar3/activity/widgets.py
>> b/src/sugar3/activity/widgets.py
>> index c4015ce..ffb3503 100644
>> --- a/src/sugar3/activity/widgets.py
>> +++ b/src/sugar3/activity/widgets.py
>> @@ -226,7 +226,8 @@ class DescriptionItem(Gtk.ToolItem):
>>          description_button.set_tooltip(_('Description'))
>>          self._palette = description_button.get_palette()
>>
>> -        description_box = Gtk.HBox()
>> +        description_box = Gtk.Box()
>> +        description_box.set_orientation(Gtk.Orientation.HORIZONTAL)
>>          sw = Gtk.ScrolledWindow()
>>          sw.set_size_request(int(Gdk.Screen.width() / 2),
>>                              2 * style.GRID_CELL_SIZE)
>> diff --git a/src/sugar3/graphics/alert.py b/src/sugar3/graphics/alert.py
>> index 16392cd..358fea4 100644
>> --- a/src/sugar3/graphics/alert.py
>> +++ b/src/sugar3/graphics/alert.py
>> @@ -97,11 +97,13 @@ class Alert(Gtk.EventBox):
>>          self._icon = None
>>          self._buttons = {}
>>
>> -        self._hbox = Gtk.HBox()
>> +        self._hbox = Gtk.Box()
>> +        self._hbox.set_orientation(Gtk.Orientation.HORIZONTAL)
>>          self._hbox.set_border_width(style.DEFAULT_SPACING)
>>          self._hbox.set_spacing(style.DEFAULT_SPACING)
>>
>> -        self._msg_box = Gtk.VBox()
>> +        self._msg_box = Gtk.Box()
>> +        self._msg_box.set_orientation(Gtk.Orientation.VERTICAL)
>>          self._title_label = Gtk.Label()
>>          self._title_label.set_alignment(0, 0.5)
>>          self._msg_box.pack_start(self._title_label, False, False, 0)
>> @@ -111,7 +113,8 @@ class Alert(Gtk.EventBox):
>>          self._msg_box.pack_start(self._msg_label, False, False, 0)
>>          self._hbox.pack_start(self._msg_box, False, False, 0)
>>
>> -        self._buttons_box = Gtk.HButtonBox()
>> +        self._buttons_box = Gtk.ButtonBox()
>> +        self._buttons_box.set_orientation(Gtk.Orientation.HORIZONTAL)
>>          self._buttons_box.set_layout(Gtk.ButtonBoxStyle.END)
>>          self._buttons_box.set_spacing(style.DEFAULT_SPACING)
>>          self._hbox.pack_start(self._buttons_box, True, True, 0)
>> diff --git a/src/sugar3/graphics/notebook.py
>> b/src/sugar3/graphics/notebook.py
>> index e14bf0e..0f3e858 100644
>> --- a/src/sugar3/graphics/notebook.py
>> +++ b/src/sugar3/graphics/notebook.py
>> @@ -74,7 +74,8 @@ class Notebook(Gtk.Notebook):
>>              raise AssertionError
>>
>>      def _add_icon_to_button(self, button):
>> -        icon_box = Gtk.HBox()
>> +        icon_box = Gtk.Box()
>> +        icon_box.set_orientation(Gtk.Orientation.HORIZONTAL)
>>          image = Gtk.Image()
>>          image.set_from_stock(Gtk.STOCK_CLOSE, Gtk.IconSize.MENU)
>>          Gtk.Button.set_relief(button, Gtk.ReliefStyle.NONE)
>> @@ -91,7 +92,8 @@ class Notebook(Gtk.Notebook):
>>      def _create_custom_tab(self, text, child):
>>          event_box = Gtk.EventBox()
>>
>> -        tab_box = Gtk.HBox(False, 2)
>> +        tab_box = Gtk.Box(False, 2)
>> +        tab_box.set_orientation(Gtk.Orientation.HORIZONTAL)
>>          tab_label = Gtk.Label(label=text)
>>
>>          tab_button = Gtk.Button()
>> diff --git a/src/sugar3/graphics/palette.py
>> b/src/sugar3/graphics/palette.py
>> index 4bb72ce..b389896 100644
>> --- a/src/sugar3/graphics/palette.py
>> +++ b/src/sugar3/graphics/palette.py
>> @@ -79,14 +79,17 @@ class Palette(PaletteWindow):
>>          self._icon_visible = True
>>          self._palette_state = self.PRIMARY
>>
>> -        self._primary_box = Gtk.HBox()
>> +        self._primary_box = Gtk.Box()
>> +        self._primary_box.set_orientation(Gtk.Orientation.HORIZONTAL)
>>          self._primary_box.show()
>>
>> -        self._icon_box = Gtk.HBox()
>> +        self._icon_box = Gtk.Box()
>> +        self._icon_box.set_orientation(Gtk.Orientation.HORIZONTAL)
>>          self._icon_box.set_size_request(style.GRID_CELL_SIZE, -1)
>>          self._primary_box.pack_start(self._icon_box, False, True, 0)
>>
>> -        labels_box = Gtk.VBox()
>> +        labels_box = Gtk.Box()
>> +        labels_box.set_orientation(Gtk.Orientation.VERTICAL)
>>          self._label_alignment = Gtk.Alignment(xalign=0, yalign=0.5,
>> xscale=1,
>>                                                yscale=0.33)
>>          self._label_alignment.set_padding(0, 0, style.DEFAULT_SPACING,
>> @@ -113,9 +116,11 @@ class Palette(PaletteWindow):
>>
>>          labels_box.pack_start(self._secondary_label, True, True, 0)
>>
>> -        self._secondary_box = Gtk.VBox()
>> +        self._secondary_box = Gtk.Box()
>> +        self._secondary_box.set_orientation(Gtk.Orientation.VERTICAL)
>>
>> -        self._separator = Gtk.HSeparator()
>> +        self._separator = Gtk.Separator()
>> +        self._separator.set_orientation(Gtk.Orientation.HORIZONTAL)
>>          self._secondary_box.pack_start(self._separator, True, True, 0)
>>
>>          self._secondary_anim = animator.Animator(2.0, 10)
>> @@ -204,7 +209,8 @@ class Palette(PaletteWindow):
>>
>>      def _add_content(self):
>>          # The content is not shown until a widget is added
>> -        self._content = Gtk.VBox()
>> +        self._content = Gtk.Box()
>> +        self._content.set_orientation(Gtk.Orientation.VERTICAL)
>>          self._content.set_border_width(style.DEFAULT_SPACING)
>>          self._secondary_box.pack_start(self._content, True, True, 0)
>>
>> @@ -304,7 +310,8 @@ class Palette(PaletteWindow):
>>              self._widget = _PaletteWindowWidget(self)
>>              self._setup_widget()
>>
>> -            self._palette_box = Gtk.VBox()
>> +            self._palette_box = Gtk.Box()
>> +            self._palette_box.set_orientation(Gtk.Orientation.VERTICAL)
>>              self._palette_box.pack_start(self._primary_box, False, True,
>> 0)
>>              self._palette_box.pack_start(self._secondary_box, True, True,
>> 0)
>>
>> @@ -396,7 +403,7 @@ class Palette(PaletteWindow):
>>      menu = GObject.property(type=object, getter=get_menu)
>>
>>
>> -class PaletteActionBar(Gtk.HButtonBox):
>> +class PaletteActionBar(Gtk.ButtonBox):
>>
>>      def add_action(self, label, icon_name=None):
>>          button = Gtk.Button(label)
>> @@ -409,6 +416,10 @@ class PaletteActionBar(Gtk.HButtonBox):
>>          self.pack_start(button, True, True, 0)
>>          button.show()
>>
>> +    def __init__(self):
>> +        GObject.GObject.__init__(self)
>> +        self.set_orientation(Gtk.Orientation.HORIZONTAL)
>> +
>>
>>  class _SecondaryAnimation(animator.Animation):
>>
>> diff --git a/src/sugar3/graphics/panel.py b/src/sugar3/graphics/panel.py
>> index c254c21..8b7126d 100644
>> --- a/src/sugar3/graphics/panel.py
>> +++ b/src/sugar3/graphics/panel.py
>> @@ -23,9 +23,10 @@ from gi.repository import Gtk
>>  from gi.repository import GObject
>>
>>
>> -class Panel(Gtk.VBox):
>> +class Panel(Gtk.Box):
>>
>>      __gtype_name__ = 'SugarPanel'
>>
>>      def __init__(self):
>>          GObject.GObject.__init__(self)
>> +        self.set_orientation(Gtk.Orientation.VERTICAL)
>> diff --git a/src/sugar3/graphics/radiopalette.py
>> b/src/sugar3/graphics/radiopalette.py
>> index c2ff4f6..beae120 100644
>> --- a/src/sugar3/graphics/radiopalette.py
>> +++ b/src/sugar3/graphics/radiopalette.py
>> @@ -63,7 +63,8 @@ class RadioPalette(Palette):
>>      def __init__(self, **kwargs):
>>          Palette.__init__(self, **kwargs)
>>
>> -        self.button_box = Gtk.HBox()
>> +        self.button_box = Gtk.Box()
>> +        self.button_box.set_orientation(Gtk.Orientation.HORIZONTAL)
>>          self.button_box.show()
>>          self.set_content(self.button_box)
>>
>> diff --git a/src/sugar3/graphics/toolbarbox.py
>> b/src/sugar3/graphics/toolbarbox.py
>> index 7e317f7..8ff63b8 100644
>> --- a/src/sugar3/graphics/toolbarbox.py
>> +++ b/src/sugar3/graphics/toolbarbox.py
>> @@ -140,10 +140,11 @@ class ToolbarButton(ToolButton):
>>          return False
>>
>>
>> -class ToolbarBox(Gtk.VBox):
>> +class ToolbarBox(Gtk.Box):
>>
>>      def __init__(self, padding=style.TOOLBOX_HORIZONTAL_PADDING):
>>          GObject.GObject.__init__(self)
>> +        self.set_orientation(Gtk.Orientation.VERTICAL)
>>          self._expanded_button_index = -1
>>          self.background = None
>>
>> diff --git a/src/sugar3/graphics/toolbox.py
>> b/src/sugar3/graphics/toolbox.py
>> index fedca0b..60700ce 100644
>> --- a/src/sugar3/graphics/toolbox.py
>> +++ b/src/sugar3/graphics/toolbox.py
>> @@ -25,7 +25,7 @@ from gi.repository import GObject
>>  from sugar3.graphics import style
>>
>>
>> -class Toolbox(Gtk.VBox):
>> +class Toolbox(Gtk.Box):
>>
>>      __gtype_name__ = 'SugarToolbox'
>>
>> @@ -36,6 +36,7 @@ class Toolbox(Gtk.VBox):
>>
>>      def __init__(self):
>>          GObject.GObject.__init__(self)
>> +        self.set_orientation(Gtk.Orientation.VERTICAL)
>>
>>          self._notebook = Gtk.Notebook()
>>          self._notebook.set_tab_pos(Gtk.PositionType.BOTTOM)
>> @@ -46,7 +47,8 @@ class Toolbox(Gtk.VBox):
>>          self.pack_start(self._notebook, True, True, 0)
>>          self._notebook.show()
>>
>> -        self._separator = Gtk.HSeparator()
>> +        self._separator = Gtk.Separator()
>> +        self._separator.set_orientation(Gtk.Orientation.HORIZONTAL)
>>          self._separator.modify_bg(Gtk.StateType.NORMAL,
>>                                    style.COLOR_PANEL_GREY.get_gdk_color())
>>          self._separator.set_size_request(1,
>> style.TOOLBOX_SEPARATOR_HEIGHT)
>> diff --git a/src/sugar3/graphics/toolcombobox.py
>> b/src/sugar3/graphics/toolcombobox.py
>> index 90bd1f4..798726c 100644
>> --- a/src/sugar3/graphics/toolcombobox.py
>> +++ b/src/sugar3/graphics/toolcombobox.py
>> @@ -40,7 +40,8 @@ class ToolComboBox(Gtk.ToolItem):
>>
>>          self.set_border_width(style.DEFAULT_PADDING)
>>
>> -        hbox = Gtk.HBox(False, style.DEFAULT_SPACING)
>> +        hbox = Gtk.Box(False, style.DEFAULT_SPACING)
>> +        hbox.set_orientation(Gtk.Orientation.HORIZONTAL)
>>
>>          self.label = Gtk.Label(label=self._label_text)
>>          hbox.pack_start(self.label, False, False, 0)
>> diff --git a/src/sugar3/graphics/tray.py b/src/sugar3/graphics/tray.py
>> index d1c0cfd..a9d6d79 100644
>> --- a/src/sugar3/graphics/tray.py
>> +++ b/src/sugar3/graphics/tray.py
>> @@ -223,7 +223,7 @@ ALIGN_TO_START = 0
>>  ALIGN_TO_END = 1
>>
>>
>> -class HTray(Gtk.HBox):
>> +class HTray(Gtk.Box):
>>
>>      __gtype_name__ = 'SugarHTray'
>>
>> @@ -238,6 +238,7 @@ class HTray(Gtk.HBox):
>>          self.align = ALIGN_TO_START
>>
>>          GObject.GObject.__init__(self, **kwargs)
>> +        self.set_orientation(Gtk.Orientation.HORIZONTAL)
>>
>>          scroll_left = _TrayScrollButton('go-left', _PREVIOUS_PAGE)
>>          self.pack_start(scroll_left, False, False, 0)
>> @@ -309,7 +310,7 @@ class HTray(Gtk.HBox):
>>          self._viewport.scroll_to_item(item)
>>
>>
>> -class VTray(Gtk.VBox):
>> +class VTray(Gtk.Box):
>>
>>      __gtype_name__ = 'SugarVTray'
>>
>> @@ -324,6 +325,7 @@ class VTray(Gtk.VBox):
>>          self.align = ALIGN_TO_START
>>
>>          GObject.GObject.__init__(self, **kwargs)
>> +        self..set_orientation(Gtk.Orientation.VERTICAL)
>>
>>          scroll_up = _TrayScrollButton('go-up', _PREVIOUS_PAGE)
>>          self.pack_start(scroll_up, False, False, 0)
>> diff --git a/src/sugar3/graphics/window.py b/src/sugar3/graphics/window.py
>> index 2d9764d..1a955c7 100644
>> --- a/src/sugar3/graphics/window.py
>> +++ b/src/sugar3/graphics/window.py
>> @@ -99,8 +99,10 @@ class Window(Gtk.Window):
>>          self._canvas = None
>>          self.tray = None
>>
>> -        self.__vbox = Gtk.VBox()
>> -        self.__hbox = Gtk.HBox()
>> +        self.__vbox = Gtk.Box()
>> +        self.__vbox.set_orientation(Gtk.Orientation.VERTICAL)
>> +        self.__hbox = Gtk.Box()
>> +        self.__hbox.set_orientation(Gtk.Orientation.HORIZONTAL)
>>          self.__vbox.pack_start(self.__hbox, True, True, 0)
>>          self.__hbox.show()
>>
>>
>
>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel


More information about the Sugar-devel mailing list