Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Silbe <silbe@activitycentral.com>2011-11-15 18:29:07 (GMT)
committer Sascha Silbe <silbe@activitycentral.com>2011-11-22 12:28:05 (GMT)
commit2158c38830e71ec856b962b734a2e6fd2261dcf5 (patch)
treef0ee500035fe52f38dc066f3843ccc725afbef6f
parent1648aca39ee33e05520f6a3266c12dd2fff64b93 (diff)
Run pygi-convert.sh for automatic conversion from GTK2 to GTK3 + pygi.
This is only on a best-effort basis; the code will be in a broken state after this patch and need to be fixed manually. The purpose of committing the intermediate, non-working output is to make it reproducible. It's impractical to manually review the changes. The exact version used was 4f637212f13b197a95c824967a58496b9e3b877c from the main pygobject repository [1] plus a custom patch [2] that hasn't been sent upstream yet. [1] git://git.gnome.org/pygobject [2] https://sascha.silbe.org/patches/pygobject-convert-sugar-20111122.patch Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
-rw-r--r--examples/radiopalette.py14
-rw-r--r--examples/toolbar.py18
-rw-r--r--src/sugar3/activity/activity.py56
-rw-r--r--src/sugar3/activity/activityfactory.py8
-rw-r--r--src/sugar3/activity/i18n.py4
-rw-r--r--src/sugar3/activity/namingalert.py90
-rw-r--r--src/sugar3/activity/widgets.py34
-rw-r--r--src/sugar3/datastore/datastore.py16
-rw-r--r--src/sugar3/graphics/alert.py90
-rw-r--r--src/sugar3/graphics/animator.py12
-rw-r--r--src/sugar3/graphics/colorbutton.py144
-rw-r--r--src/sugar3/graphics/combobox.py38
-rw-r--r--src/sugar3/graphics/icon.py88
-rw-r--r--src/sugar3/graphics/iconentry.py20
-rw-r--r--src/sugar3/graphics/menuitem.py26
-rw-r--r--src/sugar3/graphics/notebook.py36
-rw-r--r--src/sugar3/graphics/objectchooser.py20
-rw-r--r--src/sugar3/graphics/palette.py106
-rw-r--r--src/sugar3/graphics/palettegroup.py10
-rw-r--r--src/sugar3/graphics/palettewindow.py130
-rw-r--r--src/sugar3/graphics/panel.py6
-rw-r--r--src/sugar3/graphics/radiopalette.py6
-rw-r--r--src/sugar3/graphics/radiotoolbutton.py32
-rw-r--r--src/sugar3/graphics/style.py14
-rw-r--r--src/sugar3/graphics/toggletoolbutton.py20
-rw-r--r--src/sugar3/graphics/toolbarbox.py72
-rw-r--r--src/sugar3/graphics/toolbox.py28
-rw-r--r--src/sugar3/graphics/toolbutton.py38
-rw-r--r--src/sugar3/graphics/toolcombobox.py16
-rw-r--r--src/sugar3/graphics/tray.py90
-rw-r--r--src/sugar3/graphics/window.py66
-rw-r--r--src/sugar3/graphics/xocolor.py4
-rw-r--r--src/sugar3/network.py42
-rw-r--r--src/sugar3/presence/activity.py42
-rw-r--r--src/sugar3/presence/buddy.py36
-rw-r--r--src/sugar3/presence/presenceservice.py12
-rw-r--r--src/sugar3/profile.py10
-rw-r--r--src/sugar3/session.py14
-rw-r--r--src/sugar3/wm.py22
-rw-r--r--tests/graphics/common.py14
-rw-r--r--tests/graphics/iconcache.py10
-rw-r--r--tests/graphics/iconwidget.py34
-rw-r--r--tests/graphics/ticket2855.py12
-rw-r--r--tests/graphics/ticket2999.py6
-rw-r--r--tests/graphics/ticket3000.py6
-rw-r--r--tests/graphics/toolbarpalettes.py14
-rw-r--r--tests/graphics/tray.py12
47 files changed, 819 insertions, 819 deletions
diff --git a/examples/radiopalette.py b/examples/radiopalette.py
index 5aa817c..3403dd3 100644
--- a/examples/radiopalette.py
+++ b/examples/radiopalette.py
@@ -1,4 +1,4 @@
-import gtk
+from gi.repository import Gtk
from sugar3.graphics.radiopalette import RadioPalette, RadioMenuButton, \
RadioToolsButton
@@ -6,16 +6,16 @@ from sugar3.graphics.radiotoolbutton import RadioToolButton
from sugar3.graphics.toolbutton import ToolButton
from sugar3.graphics import style
-window = gtk.Window()
+window = Gtk.Window()
-box = gtk.VBox()
+box = Gtk.VBox()
window.add(box)
-toolbar = gtk.Toolbar()
+toolbar = Gtk.Toolbar()
box.pack_start(toolbar, False)
-text_view = gtk.TextView()
-box.pack_start(text_view)
+text_view = Gtk.TextView()
+box.pack_start(text_view, True, True, 0)
def echo(button, label):
@@ -72,4 +72,4 @@ button = RadioToolsButton(palette=palette)
toolbar.insert(button, -1)
window.show_all()
-gtk.main()
+Gtk.main()
diff --git a/examples/toolbar.py b/examples/toolbar.py
index bd6afef..b1cda59 100644
--- a/examples/toolbar.py
+++ b/examples/toolbar.py
@@ -1,41 +1,41 @@
-import gtk
+from gi.repository import Gtk
from sugar3.graphics.toolbutton import ToolButton
from sugar3.graphics.toolbarbox import ToolbarBox, ToolbarButton
from sugar3.graphics import style
-window = gtk.Window()
+window = Gtk.Window()
-box = gtk.VBox()
+box = Gtk.VBox()
window.add(box)
toolbar = ToolbarBox()
box.pack_start(toolbar, False)
tollbarbutton_1 = ToolbarButton(
- page=gtk.Button('sub-widget #1'),
+ page=Gtk.Button('sub-widget #1'),
icon_name='computer-xo')
toolbar.toolbar.insert(tollbarbutton_1, -1)
tollbarbutton_2 = ToolbarButton(
- page=gtk.Button('sub-widget #2'),
+ page=Gtk.Button('sub-widget #2'),
icon_name='button_cancel',
tooltip='with custom palette instead of sub-widget')
toolbar.toolbar.insert(tollbarbutton_2, -1)
-toolbar.toolbar.insert(gtk.SeparatorToolItem(), -1)
+toolbar.toolbar.insert(Gtk.SeparatorToolItem(), -1)
def del_cb(widget):
toolbar.toolbar.remove(tollbarbutton_3)
-del_b = gtk.Button('delete sub-widget #3')
+del_b = Gtk.Button('delete sub-widget #3')
del_b.connect('clicked', del_cb)
tollbarbutton_3 = ToolbarButton(
page=del_b,
icon_name='activity-journal')
toolbar.toolbar.insert(tollbarbutton_3, -1)
-subbar = gtk.Toolbar()
+subbar = Gtk.Toolbar()
subbutton = ToolButton(
icon_name='document-send',
tooltip='document-send')
@@ -48,4 +48,4 @@ tollbarbutton_4 = ToolbarButton(
toolbar.toolbar.insert(tollbarbutton_4, -1)
window.show_all()
-gtk.main()
+Gtk.main()
diff --git a/src/sugar3/activity/activity.py b/src/sugar3/activity/activity.py
index 6f27522..dfa4e15 100644
--- a/src/sugar3/activity/activity.py
+++ b/src/sugar3/activity/activity.py
@@ -55,9 +55,9 @@ import time
from hashlib import sha1
from functools import partial
-import gconf
-import gtk
-import gobject
+from gi.repository import GConf
+from gi.repository import Gtk
+from gi.repository import GObject
import dbus
import dbus.service
from dbus import PROPERTIES_IFACE
@@ -102,15 +102,15 @@ J_DBUS_INTERFACE = 'org.laptop.Journal'
CONN_INTERFACE_ACTIVITY_PROPERTIES = 'org.laptop.Telepathy.ActivityProperties'
-class _ActivitySession(gobject.GObject):
+class _ActivitySession(GObject.GObject):
__gsignals__ = {
- 'quit-requested': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'quit': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'quit-requested': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'quit': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._xsmp_client = XSMPClient()
self._xsmp_client.connect('quit-requested',
@@ -129,7 +129,7 @@ class _ActivitySession(gobject.GObject):
if len(self._activities) == 0:
logging.debug('Quitting the activity process.')
- gtk.main_quit()
+ Gtk.main_quit()
def will_quit(self, activity, will_quit):
if will_quit:
@@ -152,7 +152,7 @@ class _ActivitySession(gobject.GObject):
self.emit('quit')
-class Activity(Window, gtk.Container):
+class Activity(Window, Gtk.Container):
"""This is the base Activity class that all other Activities derive from.
This is where your activity starts.
@@ -206,8 +206,8 @@ class Activity(Window, gtk.Container):
Finaly, your Activity will very likely need some activity specific
buttons and options you can create your own toolbars by deriving a
- class from gtk.Toolbar:
- class MySpecialToolbar(gtk.Toolbar):
+ class from Gtk.Toolbar:
+ class MySpecialToolbar(Gtk.Toolbar):
...
4. Use your creativity. Make your Activity something special and share
@@ -223,11 +223,11 @@ class Activity(Window, gtk.Container):
__gtype_name__ = 'SugarActivity'
__gsignals__ = {
- 'shared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'joined': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'shared': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'joined': (GObject.SignalFlags.RUN_FIRST, None, ([])),
# For internal use only, use can_close() if you want to perform extra
# checks before actually closing
- '_closing': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ '_closing': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, handle, create_jobject=True):
@@ -250,7 +250,7 @@ class Activity(Window, gtk.Container):
Connects our "destroy" message to our _destroy_cb
method.
- Creates a base gtk.Window within this window.
+ Creates a base Gtk.Window within this window.
Creates an ActivityService (self._bus) servicing
this application.
@@ -285,7 +285,7 @@ class Activity(Window, gtk.Container):
# screen. Would be better if it was the shell to do this, but we
# haven't found yet a good way to do it there. See #1263.
self.connect('window-state-event', self.__window_state_event_cb)
- screen = gtk.gdk.screen_get_default()
+ screen = Gdk.Screen.get_default()
screen.connect('size-changed', self.__screen_size_changed_cb)
self._adapt_window_to_screen()
@@ -318,7 +318,7 @@ class Activity(Window, gtk.Container):
self.__session_quit_requested_cb)
self._session.connect('quit', self.__session_quit_cb)
- accel_group = gtk.AccelGroup()
+ accel_group = Gtk.AccelGroup()
self.set_data('sugar-accel-group', accel_group)
self.add_accel_group(accel_group)
@@ -341,7 +341,7 @@ class Activity(Window, gtk.Container):
self._jobject = self._initialize_journal_object()
if handle.invited:
- wait_loop = gobject.MainLoop()
+ wait_loop = GObject.MainLoop()
self._client_handler = _ClientHandler(
self.get_bundle_id(),
partial(self.__got_channel_cb, wait_loop))
@@ -373,7 +373,7 @@ class Activity(Window, gtk.Container):
def _initialize_journal_object(self):
title = _('%s Activity') % get_bundle_name()
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
icon_color = client.get_string('/desktop/sugar/user/color')
jobject = datastore.create()
@@ -456,7 +456,7 @@ class Activity(Window, gtk.Container):
if not self._active and self._jobject:
self.save()
- active = gobject.property(
+ active = GObject.property(
type=bool, default=False, getter=get_active, setter=set_active)
def get_max_participants(self):
@@ -465,7 +465,7 @@ class Activity(Window, gtk.Container):
def set_max_participants(self, participants):
self._max_participants = participants
- max_participants = gobject.property(
+ max_participants = GObject.property(
type=int, default=0, getter=get_max_participants,
setter=set_max_participants)
@@ -491,7 +491,7 @@ class Activity(Window, gtk.Container):
"""Sets the 'work area' of your activity with the canvas of your
choice.
- One commonly used canvas is gtk.ScrolledWindow
+ One commonly used canvas is Gtk.ScrolledWindow
"""
Window.set_canvas(self, canvas)
if not self._read_file_called:
@@ -506,7 +506,7 @@ class Activity(Window, gtk.Container):
self.move(0, 0)
def _adapt_window_to_screen(self):
- screen = gtk.gdk.screen_get_default()
+ screen = Gdk.Screen.get_default()
self.set_geometry_hints(None,
screen.get_width(), screen.get_height(),
screen.get_width(), screen.get_height(),
@@ -638,11 +638,11 @@ class Activity(Window, gtk.Container):
pixmap = self.canvas.get_snapshot((-1, -1, 0, 0))
width, height = pixmap.get_size()
- pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, 0, 8, width, height)
+ pixbuf = GdkPixbuf.Pixbuf(GdkPixbuf.Colorspace.RGB, 0, 8, width, height)
pixbuf = pixbuf.get_from_drawable(pixmap, pixmap.get_colormap(),
0, 0, 0, 0, width, height)
pixbuf = pixbuf.scale_simple(style.zoom(300), style.zoom(225),
- gtk.gdk.INTERP_BILINEAR)
+ GdkPixbuf.InterpType.BILINEAR)
preview_data = []
@@ -837,10 +837,10 @@ class Activity(Window, gtk.Container):
alert.props.msg = _('Keep error: all changes will be lost')
cancel_icon = Icon(icon_name='dialog-cancel')
- alert.add_button(gtk.RESPONSE_CANCEL, _('Don\'t stop'), cancel_icon)
+ alert.add_button(Gtk.ResponseType.CANCEL, _('Don\'t stop'), cancel_icon)
stop_icon = Icon(icon_name='dialog-ok')
- alert.add_button(gtk.RESPONSE_OK, _('Stop anyway'), stop_icon)
+ alert.add_button(Gtk.ResponseType.OK, _('Stop anyway'), stop_icon)
self.add_alert(alert)
alert.connect('response', self._keep_failed_dialog_response_cb)
@@ -849,7 +849,7 @@ class Activity(Window, gtk.Container):
def _keep_failed_dialog_response_cb(self, alert, response_id):
self.remove_alert(alert)
- if response_id == gtk.RESPONSE_OK:
+ if response_id == Gtk.ResponseType.OK:
self.close(skip_save=True)
if self._quit_requested:
self._session.will_quit(self, True)
diff --git a/src/sugar3/activity/activityfactory.py b/src/sugar3/activity/activityfactory.py
index 3b63662..d544cd0 100644
--- a/src/sugar3/activity/activityfactory.py
+++ b/src/sugar3/activity/activityfactory.py
@@ -26,7 +26,7 @@ import logging
import uuid
import dbus
-import gobject
+from gi.repository import GObject
from sugar3.activity.activityhandle import ActivityHandle
from sugar3 import util
@@ -148,7 +148,7 @@ def open_log_file(activity):
raise e
-class ActivityCreationHandler(gobject.GObject):
+class ActivityCreationHandler(GObject.GObject):
"""Sugar-side activity creation interface
This object uses a dbus method on the ActivityFactory
@@ -182,7 +182,7 @@ class ActivityCreationHandler(gobject.GObject):
If the file '/etc/olpc-security' exists, then activity launching
will be delegated to the prototype 'Rainbow' security service.
"""
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._bundle = bundle
self._service_name = bundle.get_bundle_id()
@@ -258,7 +258,7 @@ class ActivityCreationHandler(gobject.GObject):
stdout=log_file.fileno(),
stderr=log_file.fileno())
- gobject.child_watch_add(child.pid,
+ GObject.child_watch_add(child.pid,
_child_watch_cb,
(environment_dir, log_file,
self._handle.activity_id))
diff --git a/src/sugar3/activity/i18n.py b/src/sugar3/activity/i18n.py
index 1ddbd79..92acb96 100644
--- a/src/sugar3/activity/i18n.py
+++ b/src/sugar3/activity/i18n.py
@@ -17,7 +17,7 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-import gconf
+from gi.repository import GConf
from gettext import gettext
import locale
@@ -135,7 +135,7 @@ def get_locale_path(bundle_id):
if 'SUGAR_LOCALEDIR' in os.environ:
candidate_dirs[os.environ['SUGAR_LOCALEDIR']] = 2
- gconf_client = gconf.client_get_default()
+ gconf_client = GConf.Client.get_default()
package_dir = gconf_client.get_string('/desktop/sugar/i18n/langpackdir')
if package_dir is not None and package_dir is not '':
candidate_dirs[package_dir] = 1
diff --git a/src/sugar3/activity/namingalert.py b/src/sugar3/activity/namingalert.py
index e21032d..213ad93 100644
--- a/src/sugar3/activity/namingalert.py
+++ b/src/sugar3/activity/namingalert.py
@@ -18,10 +18,10 @@
import gettext
import os
-import gio
-import gtk
-import gobject
-import gconf
+from gi.repository import Gio
+from gi.repository import Gtk
+from gi.repository import GObject
+from gi.repository import GConf
from sugar3.graphics import style
from sugar3.graphics.icon import Icon
@@ -40,7 +40,7 @@ def _get_icon_name(metadata):
mime_type = metadata.get('mime_type', '')
if not file_name and mime_type:
- icons = gio.content_type_get_icon(mime_type)
+ icons = Gio.content_type_get_icon(mime_type)
for icon_name in icons.props.names:
file_name = get_icon_file_name(icon_name)
if file_name is not None:
@@ -52,30 +52,30 @@ def _get_icon_name(metadata):
return file_name
-class NamingToolbar(gtk.Toolbar):
+class NamingToolbar(Gtk.Toolbar):
""" Toolbar of the naming alert
"""
__gtype_name__ = 'SugarNamingToolbar'
__gsignals__ = {
- 'keep-clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'keep-clicked': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self):
- gtk.Toolbar.__init__(self)
+ Gtk.Toolbar.__init__(self)
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
icon = Icon()
icon.set_from_icon_name('activity-journal',
- gtk.ICON_SIZE_LARGE_TOOLBAR)
+ Gtk.IconSize.LARGE_TOOLBAR)
icon.props.xo_color = color
self._add_widget(icon)
self._add_separator()
- self._title = gtk.Label(_('Name this entry'))
+ self._title = Gtk.Label(label=_('Name this entry'))
self._add_widget(self._title)
self._add_separator(True)
@@ -87,7 +87,7 @@ class NamingToolbar(gtk.Toolbar):
self._keep_button.show()
def _add_separator(self, expand=False):
- separator = gtk.SeparatorToolItem()
+ separator = Gtk.SeparatorToolItem()
separator.props.draw = False
if expand:
separator.set_expand(True)
@@ -97,7 +97,7 @@ class NamingToolbar(gtk.Toolbar):
separator.show()
def _add_widget(self, widget, expand=False):
- tool_item = gtk.ToolItem()
+ tool_item = Gtk.ToolItem()
tool_item.set_expand(expand)
tool_item.add(widget)
@@ -110,11 +110,11 @@ class NamingToolbar(gtk.Toolbar):
self.emit('keep-clicked')
-class FavoriteIcon(gtk.ToggleButton):
+class FavoriteIcon(Gtk.ToggleButton):
def __init__(self):
- gtk.ToggleButton.__init__(self)
- self.set_relief(gtk.RELIEF_NONE)
+ GObject.GObject.__init__(self)
+ self.set_relief(Gtk.ReliefStyle.NONE)
self.set_focus_on_click(False)
self._icon = Icon(icon_name='emblem-favorite',
@@ -127,7 +127,7 @@ class FavoriteIcon(gtk.ToggleButton):
def __toggled_cb(self, widget):
if self.get_active():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
self._icon.props.xo_color = color
else:
@@ -143,12 +143,12 @@ class FavoriteIcon(gtk.ToggleButton):
self._icon.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
-class NamingAlert(gtk.Window):
+class NamingAlert(Gtk.Window):
__gtype_name__ = 'SugarNamingAlert'
def __init__(self, activity, bundle_path):
- gtk.Window.__init__(self)
+ GObject.GObject.__init__(self)
self._bundle_path = bundle_path
self._favorite_icon = None
@@ -156,16 +156,16 @@ class NamingAlert(gtk.Window):
self._description = None
self._tags = None
- accel_group = gtk.AccelGroup()
+ accel_group = Gtk.AccelGroup()
self.set_data('sugar-accel-group', accel_group)
self.add_accel_group(accel_group)
self.set_border_width(style.LINE_WIDTH)
offset = style.GRID_CELL_SIZE
- width = gtk.gdk.screen_width() - offset * 2
- height = gtk.gdk.screen_height() - offset * 2
+ width = Gdk.Screen.width() - offset * 2
+ height = Gdk.Screen.height() - offset * 2
self.set_size_request(width, height)
- self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
+ self.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
self.set_decorated(False)
self.set_resizable(False)
self.set_modal(True)
@@ -173,7 +173,7 @@ class NamingAlert(gtk.Window):
self._activity = activity
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.add(vbox)
vbox.show()
@@ -189,23 +189,23 @@ class NamingAlert(gtk.Window):
self._title.grab_focus()
def _create_body(self):
- body = gtk.VBox(spacing=style.DEFAULT_SPACING)
+ body = Gtk.VBox(spacing=style.DEFAULT_SPACING)
body.set_border_width(style.DEFAULT_SPACING * 3)
header = self._create_header()
body.pack_start(header, False, False, style.DEFAULT_PADDING)
- body.pack_start(self._create_separator(style.DEFAULT_SPACING), False, False, 0)
+ body.pack_start(self._create_separator(style.DEFAULT_SPACING, True, True, 0), False, False, 0)
- body.pack_start(self._create_label(_('Description:')), False, False, 0)
+ body.pack_start(self._create_label(_('Description:', True, True, 0)), False, False, 0)
description = self._activity.metadata.get('description', '')
description_box, self._description = self._create_text_view(description)
body.pack_start(description_box, True, True, 0)
- body.pack_start(self._create_separator(style.DEFAULT_PADDING), False, False, 0)
+ body.pack_start(self._create_separator(style.DEFAULT_PADDING, True, True, 0), False, False, 0)
- body.pack_start(self._create_label(_('Tags:')), False, False, 0)
+ body.pack_start(self._create_label(_('Tags:', True, True, 0)), False, False, 0)
tags = self._activity.metadata.get('tags', '')
tags_box, self._tags = self._create_text_view(tags)
@@ -215,29 +215,29 @@ class NamingAlert(gtk.Window):
return body
def _create_label(self, text):
- text = gtk.Label(text)
+ text = Gtk.Label(label=text)
text.set_alignment(0, 0.5)
- text.modify_fg(gtk.STATE_NORMAL,
+ text.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_BUTTON_GREY.get_gdk_color())
return text
def _create_separator(self, height):
- separator = gtk.HSeparator()
- separator.modify_bg(gtk.STATE_NORMAL, style.COLOR_WHITE.get_gdk_color())
+ separator = Gtk.HSeparator()
+ separator.modify_bg(Gtk.StateType.NORMAL, style.COLOR_WHITE.get_gdk_color())
separator.set_size_request(-1, height)
return separator
def _create_header(self):
- header = gtk.HBox(spacing=style.DEFAULT_SPACING)
+ header = Gtk.HBox(spacing=style.DEFAULT_SPACING)
self._favorite_icon = FavoriteIcon()
- header.pack_start(self._favorite_icon, expand=False)
+ header.pack_start(self._favorite_icon, False, True, 0)
entry_icon = self._create_entry_icon()
- header.pack_start(entry_icon, expand=False)
+ header.pack_start(entry_icon, False, True, 0)
self._title = self._create_title()
- header.pack_start(self._title, expand=True)
+ header.pack_start(self._title, True, True, 0)
return header
@@ -251,26 +251,26 @@ class NamingAlert(gtk.Window):
else:
activity_bundle = ActivityBundle(self._bundle_path)
file_name = activity_bundle.get_icon()
- entry_icon = Icon(file=file_name, icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
+ entry_icon = Icon(file=file_name, icon_size=Gtk.IconSize.LARGE_TOOLBAR)
if self._activity.metadata.get('icon-color'):
entry_icon.props.xo_color = XoColor( \
self._activity.metadata['icon-color'])
return entry_icon
def _create_title(self):
- title = gtk.Entry()
+ title = Gtk.Entry()
title.set_text(self._activity.metadata.get('title', _('Untitled')))
return title
def _create_text_view(self, text):
- scrolled_window = gtk.ScrolledWindow()
- scrolled_window.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+ scrolled_window = Gtk.ScrolledWindow()
+ scrolled_window.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
scrolled_window.set_border_width(style.LINE_WIDTH)
- scrolled_window.set_shadow_type(gtk.SHADOW_IN)
+ scrolled_window.set_shadow_type(Gtk.ShadowType.IN)
- text_view = gtk.TextView()
+ text_view = Gtk.TextView()
text_view.set_left_margin(style.DEFAULT_PADDING)
- text_view.set_wrap_mode(gtk.WRAP_WORD_CHAR)
+ text_view.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
text_view.set_accepts_tab(False)
text_view.get_buffer().set_text(text)
scrolled_window.add(text_view)
@@ -278,7 +278,7 @@ class NamingAlert(gtk.Window):
return scrolled_window, text_view
def __realize_cb(self, widget):
- self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+ self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
self.window.set_accept_focus(True)
def __keep_cb(self, widget):
diff --git a/src/sugar3/activity/widgets.py b/src/sugar3/activity/widgets.py
index 8ca7fd9..95fe0fc 100644
--- a/src/sugar3/activity/widgets.py
+++ b/src/sugar3/activity/widgets.py
@@ -15,10 +15,10 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-from gtk import gdk
-import gtk
+from gi.repository import Gdk
+from gi.repository import Gtk
import gettext
-import gconf
+from gi.repository import GConf
import logging
from sugar3.graphics.toolbutton import ToolButton
@@ -38,7 +38,7 @@ def _create_activity_icon(metadata):
if metadata is not None and metadata.get('icon-color'):
color = XoColor(metadata['icon-color'])
else:
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
from sugar3.activity.activity import get_bundle_path
@@ -173,7 +173,7 @@ class KeepButton(ToolButton):
self.props.tooltip = _('Keep')
self.props.accelerator = '<Ctrl>S'
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
keep_icon = Icon(icon_name='document-save', xo_color=color)
keep_icon.show()
@@ -185,14 +185,14 @@ class KeepButton(ToolButton):
activity.copy()
-class TitleEntry(gtk.ToolItem):
+class TitleEntry(Gtk.ToolItem):
def __init__(self, activity, **kwargs):
- gtk.ToolItem.__init__(self)
+ Gtk.ToolItem.__init__(self)
self.set_expand(False)
- self.entry = gtk.Entry(**kwargs)
- self.entry.set_size_request(int(gtk.gdk.screen_width() / 3), -1)
+ self.entry = Gtk.Entry(**kwargs)
+ self.entry.set_size_request(int(Gdk.Screen.width() / 3), -1)
self.entry.set_text(activity.metadata['title'])
self.entry.connect('focus-out-event', self.__title_changed_cb, activity)
self.entry.show()
@@ -202,11 +202,11 @@ class TitleEntry(gtk.ToolItem):
activity.connect('_closing', self.__closing_cb)
def modify_bg(self, state, color):
- gtk.ToolItem.modify_bg(self, state, color)
+ Gtk.ToolItem.modify_bg(self, state, color)
self.entry.modify_bg(state, color)
def __jobject_updated_cb(self, jobject):
- if self.entry.flags() & gtk.HAS_FOCUS:
+ if self.entry.has_focus():
return
if self.entry.get_text() == jobject['title']:
return
@@ -236,7 +236,7 @@ class TitleEntry(gtk.ToolItem):
shared_activity.props.name = title
-class ActivityToolbar(gtk.Toolbar):
+class ActivityToolbar(Gtk.Toolbar):
"""The Activity toolbar with the Journal entry title, sharing
and Stop buttons
@@ -245,7 +245,7 @@ class ActivityToolbar(gtk.Toolbar):
"""
def __init__(self, activity, orientation_left=False):
- gtk.Toolbar.__init__(self)
+ Gtk.Toolbar.__init__(self)
self._activity = activity
@@ -256,7 +256,7 @@ class ActivityToolbar(gtk.Toolbar):
self.title = title_button.entry
if orientation_left == False:
- separator = gtk.SeparatorToolItem()
+ separator = Gtk.SeparatorToolItem()
separator.props.draw = False
separator.set_expand(True)
self.insert(separator, -1)
@@ -274,7 +274,7 @@ class ActivityToolbar(gtk.Toolbar):
self.stop.show()
-class EditToolbar(gtk.Toolbar):
+class EditToolbar(Gtk.Toolbar):
"""Provides the standard edit toolbar for Activities.
Members:
@@ -309,7 +309,7 @@ class EditToolbar(gtk.Toolbar):
"""
def __init__(self):
- gtk.Toolbar.__init__(self)
+ Gtk.Toolbar.__init__(self)
self.undo = UndoButton()
self.insert(self.undo, -1)
@@ -319,7 +319,7 @@ class EditToolbar(gtk.Toolbar):
self.insert(self.redo, -1)
self.redo.show()
- self.separator = gtk.SeparatorToolItem()
+ self.separator = Gtk.SeparatorToolItem()
self.separator.set_draw(True)
self.insert(self.separator, -1)
self.separator.show()
diff --git a/src/sugar3/datastore/datastore.py b/src/sugar3/datastore/datastore.py
index ed6c2d7..2ada474 100644
--- a/src/sugar3/datastore/datastore.py
+++ b/src/sugar3/datastore/datastore.py
@@ -25,9 +25,9 @@ import time
from datetime import datetime
import os
import tempfile
-import gobject
-import gconf
-import gio
+from gi.repository import GObject
+from gi.repository import GConf
+from gi.repository import Gio
import dbus
import dbus.glib
@@ -77,14 +77,14 @@ updated = dispatch.Signal()
_get_data_store()
-class DSMetadata(gobject.GObject):
+class DSMetadata(GObject.GObject):
"""A representation of the metadata associated with a DS entry."""
__gsignals__ = {
- 'updated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'updated': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, properties=None):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
if not properties:
self._properties = {}
else:
@@ -226,12 +226,12 @@ class RawObject(object):
def __init__(self, file_path):
stat = os.stat(file_path)
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
metadata = {
'uid': file_path,
'title': os.path.basename(file_path),
'timestamp': stat.st_mtime,
- 'mime_type': gio.content_type_guess(filename=file_path),
+ 'mime_type': Gio.content_type_guess(filename=file_path),
'activity': '',
'activity_id': '',
'icon-color': client.get_string('/desktop/sugar/user/color'),
diff --git a/src/sugar3/graphics/alert.py b/src/sugar3/graphics/alert.py
index f5a850c..f72a2bd 100644
--- a/src/sugar3/graphics/alert.py
+++ b/src/sugar3/graphics/alert.py
@@ -47,9 +47,9 @@ STABLE.
import gettext
-import gtk
-import gobject
-import pango
+from gi.repository import Gtk
+from gi.repository import GObject
+from gi.repository import Pango
import math
from sugar3.graphics import style
@@ -59,7 +59,7 @@ from sugar3.graphics.icon import Icon
_ = lambda msg: gettext.dgettext('sugar-toolkit', msg)
-class Alert(gtk.EventBox):
+class Alert(Gtk.EventBox):
"""
UI interface for Alerts
@@ -81,13 +81,13 @@ class Alert(gtk.EventBox):
__gtype_name__ = 'SugarAlert'
__gsignals__ = {
- 'response': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([object])),
+ 'response': (GObject.SignalFlags.RUN_FIRST, None, ([object])),
}
__gproperties__ = {
- 'title': (str, None, None, None, gobject.PARAM_READWRITE),
- 'msg': (str, None, None, None, gobject.PARAM_READWRITE),
- 'icon': (object, None, None, gobject.PARAM_WRITABLE),
+ 'title': (str, None, None, None, GObject.PARAM_READWRITE),
+ 'msg': (str, None, None, None, GObject.PARAM_READWRITE),
+ 'icon': (object, None, None, GObject.PARAM_WRITABLE),
}
def __init__(self, **kwargs):
@@ -97,26 +97,26 @@ class Alert(gtk.EventBox):
self._icon = None
self._buttons = {}
- self._hbox = gtk.HBox()
+ self._hbox = Gtk.HBox()
self._hbox.set_border_width(style.DEFAULT_SPACING)
self._hbox.set_spacing(style.DEFAULT_SPACING)
- self._msg_box = gtk.VBox()
- self._title_label = gtk.Label()
+ self._msg_box = Gtk.VBox()
+ self._title_label = Gtk.Label()
self._title_label.set_alignment(0, 0.5)
self._msg_box.pack_start(self._title_label, False, False, 0)
- self._msg_label = gtk.Label()
+ self._msg_label = Gtk.Label()
self._msg_label.set_alignment(0, 0.5)
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.set_layout(gtk.BUTTONBOX_END)
+ self._buttons_box = Gtk.HButtonBox()
+ self._buttons_box.set_layout(Gtk.ButtonBoxStyle.END)
self._buttons_box.set_spacing(style.DEFAULT_SPACING)
- self._hbox.pack_start(self._buttons_box)
+ self._hbox.pack_start(self._buttons_box, True, True, 0)
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
self.set_visible_window(True)
self.add(self._hbox)
@@ -189,22 +189,22 @@ class Alert(gtk.EventBox):
that will occure right to the buttom
icon :
- this can be a SugarIcon or a gtk.Image
+ this can be a SugarIcon or a Gtk.Image
postion :
the position of the button in the box (optional)
Returns
-------
- button :gtk.Button
+ button :Gtk.Button
"""
- button = gtk.Button()
+ button = Gtk.Button()
self._buttons[response_id] = button
if icon is not None:
button.set_image(icon)
button.set_label(label)
- self._buttons_box.pack_start(button)
+ self._buttons_box.pack_start(button, True, True, 0)
button.show()
button.connect('clicked', self.__button_clicked_cb, response_id)
if position != -1:
@@ -245,8 +245,8 @@ class ConfirmationAlert(Alert):
A confirmation alert is a nice shortcut from a standard Alert because it
comes with 'OK' and 'Cancel' buttons already built-in. When clicked, the
- 'OK' button will emit a response with a response_id of gtk.RESPONSE_OK,
- while the 'Cancel' button will emit gtk.RESPONSE_CANCEL.
+ 'OK' button will emit a response with a response_id of Gtk.ResponseType.OK,
+ while the 'Cancel' button will emit Gtk.ResponseType.CANCEL.
Examples
--------
@@ -273,9 +273,9 @@ class ConfirmationAlert(Alert):
self.remove_alert(alert)
#Do any work that is specific to the type of button clicked.
- if response_id is gtk.RESPONSE_OK:
+ if response_id is Gtk.ResponseType.OK:
print 'Ok Button was clicked. Do any work upon ok here ...'
- elif response_id is gtk.RESPONSE_CANCEL:
+ elif response_id is Gtk.ResponseType.CANCEL:
print 'Cancel Button was clicked.'
"""
@@ -284,11 +284,11 @@ class ConfirmationAlert(Alert):
Alert.__init__(self, **kwargs)
icon = Icon(icon_name='dialog-cancel')
- self.add_button(gtk.RESPONSE_CANCEL, _('Cancel'), icon)
+ self.add_button(Gtk.ResponseType.CANCEL, _('Cancel'), icon)
icon.show()
icon = Icon(icon_name='dialog-ok')
- self.add_button(gtk.RESPONSE_OK, _('Ok'), icon)
+ self.add_button(Gtk.ResponseType.OK, _('Ok'), icon)
icon.show()
@@ -298,7 +298,7 @@ class ErrorAlert(Alert):
An error alert is a nice shortcut from a standard Alert because it
comes with the 'OK' button already built-in. When clicked, the
- 'OK' button will emit a response with a response_id of gtk.RESPONSE_OK.
+ 'OK' button will emit a response with a response_id of Gtk.ResponseType.OK.
Examples
--------
@@ -325,7 +325,7 @@ class ErrorAlert(Alert):
self.remove_alert(alert)
#Do any work that is specific to the response_id.
- if response_id is gtk.RESPONSE_OK:
+ if response_id is Gtk.ResponseType.OK:
print 'Ok Button was clicked. Do any work upon ok here ...'
"""
@@ -334,33 +334,33 @@ class ErrorAlert(Alert):
Alert.__init__(self, **kwargs)
icon = Icon(icon_name='dialog-ok')
- self.add_button(gtk.RESPONSE_OK, _('Ok'), icon)
+ self.add_button(Gtk.ResponseType.OK, _('Ok'), icon)
icon.show()
-class _TimeoutIcon(gtk.Alignment):
+class _TimeoutIcon(Gtk.Alignment):
__gtype_name__ = 'SugarTimeoutIcon'
def __init__(self):
- gtk.Alignment.__init__(self, 0, 0, 1, 1)
+ GObject.GObject.__init__(self, 0, 0, 1, 1)
self.set_app_paintable(True)
- self._text = gtk.Label()
+ self._text = Gtk.Label()
self._text.set_alignment(0.5, 0.5)
- attrlist = pango.AttrList()
- attrlist.insert(pango.AttrWeight(pango.WEIGHT_BOLD))
+ attrlist = Pango.AttrList()
+ attrlist.insert(Pango.AttrWeight(Pango.Weight.BOLD))
self._text.set_attributes(attrlist)
self.add(self._text)
self._text.show()
self.connect("expose_event", self.__expose_cb)
def __expose_cb(self, widget, event):
- context = widget.window.cairo_create()
+ context = widget.get_window().cairo_create()
self._draw(context)
return False
def do_size_request(self, requisition):
requisition.height, requisition.width = \
- gtk.icon_size_lookup(gtk.ICON_SIZE_BUTTON)
+ Gtk.icon_size_lookup(Gtk.IconSize.BUTTON)
self._text.size_request()
def _draw(self, context):
@@ -410,9 +410,9 @@ class TimeoutAlert(Alert):
self.remove_alert(alert)
#Do any work that is specific to the type of button clicked.
- if response_id is gtk.RESPONSE_OK:
+ if response_id is Gtk.ResponseType.OK:
print 'Ok Button was clicked. Do any work upon ok here ...'
- elif response_id is gtk.RESPONSE_CANCEL:
+ elif response_id is Gtk.ResponseType.CANCEL:
print 'Cancel Button was clicked.'
elif response_id == -1:
print 'Timout occurred'
@@ -425,21 +425,21 @@ class TimeoutAlert(Alert):
self._timeout = timeout
icon = Icon(icon_name='dialog-cancel')
- self.add_button(gtk.RESPONSE_CANCEL, _('Cancel'), icon)
+ self.add_button(Gtk.ResponseType.CANCEL, _('Cancel'), icon)
icon.show()
self._timeout_text = _TimeoutIcon()
self._timeout_text.set_text(self._timeout)
- self.add_button(gtk.RESPONSE_OK, _('Continue'), self._timeout_text)
+ self.add_button(Gtk.ResponseType.OK, _('Continue'), self._timeout_text)
self._timeout_text.show()
- gobject.timeout_add_seconds(1, self.__timeout)
+ GObject.timeout_add_seconds(1, self.__timeout)
def __timeout(self):
self._timeout -= 1
self._timeout_text.set_text(self._timeout)
if self._timeout == 0:
- self._response(gtk.RESPONSE_OK)
+ self._response(Gtk.ResponseType.OK)
return False
return True
@@ -475,15 +475,15 @@ class NotifyAlert(Alert):
self._timeout_text = _TimeoutIcon()
self._timeout_text.set_text(self._timeout)
- self.add_button(gtk.RESPONSE_OK, _('Ok'), self._timeout_text)
+ self.add_button(Gtk.ResponseType.OK, _('Ok'), self._timeout_text)
self._timeout_text.show()
- gobject.timeout_add(1000, self.__timeout)
+ GObject.timeout_add(1000, self.__timeout)
def __timeout(self):
self._timeout -= 1
self._timeout_text.set_text(self._timeout)
if self._timeout == 0:
- self._response(gtk.RESPONSE_OK)
+ self._response(Gtk.ResponseType.OK)
return False
return True
diff --git a/src/sugar3/graphics/animator.py b/src/sugar3/graphics/animator.py
index 8fb298b..5cb4ca1 100644
--- a/src/sugar3/graphics/animator.py
+++ b/src/sugar3/graphics/animator.py
@@ -21,20 +21,20 @@ STABLE.
import time
-import gobject
+from gi.repository import GObject
EASE_OUT_EXPO = 0
EASE_IN_EXPO = 1
-class Animator(gobject.GObject):
+class Animator(GObject.GObject):
__gsignals__ = {
- 'completed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'completed': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, duration, fps=20, easing=EASE_OUT_EXPO):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._animations = []
self._duration = duration
self._interval = 1.0 / fps
@@ -80,7 +80,7 @@ class Animator(gobject.GObject):
self.stop()
self._start_time = time.time()
- self._timeout_sid = gobject.timeout_add(
+ self._timeout_sid = GObject.timeout_add(
int(self._interval * 1000), self._next_frame_cb)
def stop(self):
@@ -95,7 +95,7 @@ class Animator(gobject.GObject):
"""
if self._timeout_sid:
- gobject.source_remove(self._timeout_sid)
+ GObject.source_remove(self._timeout_sid)
self._timeout_sid = 0
self.emit('completed')
diff --git a/src/sugar3/graphics/colorbutton.py b/src/sugar3/graphics/colorbutton.py
index 84fda5a..fbda30d 100644
--- a/src/sugar3/graphics/colorbutton.py
+++ b/src/sugar3/graphics/colorbutton.py
@@ -17,8 +17,8 @@
# Boston, MA 02111-1307, USA.
import gettext
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
import struct
import logging
@@ -35,8 +35,8 @@ def get_svg_color_string(color):
color.blue / 257)
-class _ColorButton(gtk.Button):
- """This is a ColorButton for Sugar. It is similar to the gtk.ColorButton,
+class _ColorButton(Gtk.Button):
+ """This is a ColorButton for Sugar. It is similar to the Gtk.ColorButton,
but does not have any alpha support.
Instead of a color selector dialog it will pop up a Sugar palette.
@@ -45,37 +45,37 @@ class _ColorButton(gtk.Button):
"""
__gtype_name__ = 'SugarColorButton'
- __gsignals__ = {'color-set': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ __gsignals__ = {'color-set': (GObject.SignalFlags.RUN_FIRST, None,
tuple())}
def __init__(self, **kwargs):
self._title = _('Choose a color')
- self._color = gtk.gdk.Color(0, 0, 0)
+ self._color = Gdk.Color(0, 0, 0)
self._has_palette = True
self._has_invoker = True
self._palette = None
self._accept_drag = True
self._preview = Icon(icon_name='color-preview',
- icon_size=gtk.ICON_SIZE_BUTTON)
+ icon_size=Gtk.IconSize.BUTTON)
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
if self._accept_drag:
- self.drag_dest_set(gtk.DEST_DEFAULT_MOTION |
- gtk.DEST_DEFAULT_HIGHLIGHT |
- gtk.DEST_DEFAULT_DROP,
+ Gtk.drag_dest_set(self, Gtk.DEST_DEFAULT_MOTION |
+ Gtk.DEST_DEFAULT_HIGHLIGHT |
+ Gtk.DEST_DEFAULT_DROP,
[('application/x-color', 0, 0)],
- gtk.gdk.ACTION_COPY)
- self.drag_source_set(gtk.gdk.BUTTON1_MASK | gtk.gdk.BUTTON3_MASK,
+ Gdk.DragAction.COPY)
+ self.drag_source_set(Gdk.EventMask.BUTTON1_MASK | Gdk.EventMask.BUTTON3_MASK,
[('application/x-color', 0, 0)],
- gtk.gdk.ACTION_COPY)
+ Gdk.DragAction.COPY)
self.connect('drag_data_received', self.__drag_data_received_cb)
self.connect('drag_data_get', self.__drag_data_get_cb)
self._preview.fill_color = get_svg_color_string(self._color)
self._preview.stroke_color = \
- get_svg_color_string(self.style.fg[gtk.STATE_NORMAL])
+ get_svg_color_string(self.style.fg[Gtk.StateType.NORMAL])
self.set_image(self._preview)
if self._has_palette and self._has_invoker:
@@ -102,7 +102,7 @@ class _ColorButton(gtk.Button):
def do_style_set(self, previous_style):
self._preview.stroke_color = \
- get_svg_color_string(self.style.fg[gtk.STATE_NORMAL])
+ get_svg_color_string(self.style.fg[Gtk.StateType.NORMAL])
def do_clicked(self):
if self._palette:
@@ -114,14 +114,14 @@ class _ColorButton(gtk.Button):
return True
def set_color(self, color):
- assert isinstance(color, gtk.gdk.Color)
+ assert isinstance(color, Gdk.Color)
if self._color.red == color.red and \
self._color.green == color.green and \
self._color.blue == color.blue:
return
- self._color = gtk.gdk.Color(color.red, color.green, color.blue)
+ self._color = Gdk.Color(color.red, color.green, color.blue)
self._preview.fill_color = get_svg_color_string(self._color)
if self._palette:
self._palette.props.color = self._color
@@ -130,7 +130,7 @@ class _ColorButton(gtk.Button):
def get_color(self):
return self._color
- color = gobject.property(type=object, getter=get_color, setter=set_color)
+ color = GObject.property(type=object, getter=get_color, setter=set_color)
def set_icon_name(self, icon_name):
self._preview.props.icon_name = icon_name
@@ -138,7 +138,7 @@ class _ColorButton(gtk.Button):
def get_icon_name(self):
return self._preview.props.icon_name
- icon_name = gobject.property(type=str,
+ icon_name = GObject.property(type=str,
getter=get_icon_name, setter=set_icon_name)
def set_icon_size(self, icon_size):
@@ -147,7 +147,7 @@ class _ColorButton(gtk.Button):
def get_icon_size(self):
return self._preview.props.icon_size
- icon_size = gobject.property(type=int,
+ icon_size = GObject.property(type=int,
getter=get_icon_size, setter=set_icon_size)
def set_title(self, title):
@@ -158,7 +158,7 @@ class _ColorButton(gtk.Button):
def get_title(self):
return self._title
- title = gobject.property(type=str, getter=get_title, setter=set_title)
+ title = GObject.property(type=str, getter=get_title, setter=set_title)
def _set_has_invoker(self, has_invoker):
self._has_invoker = has_invoker
@@ -166,9 +166,9 @@ class _ColorButton(gtk.Button):
def _get_has_invoker(self):
return self._has_invoker
- has_invoker = gobject.property(type=bool, default=True,
- flags=gobject.PARAM_READWRITE |
- gobject.PARAM_CONSTRUCT_ONLY,
+ has_invoker = GObject.property(type=bool, default=True,
+ flags=GObject.PARAM_READWRITE |
+ GObject.PARAM_CONSTRUCT_ONLY,
getter=_get_has_invoker,
setter=_set_has_invoker)
@@ -178,9 +178,9 @@ class _ColorButton(gtk.Button):
def _get_has_palette(self):
return self._has_palette
- has_palette = gobject.property(type=bool, default=True,
- flags=gobject.PARAM_READWRITE |
- gobject.PARAM_CONSTRUCT_ONLY,
+ has_palette = GObject.property(type=bool, default=True,
+ flags=GObject.PARAM_READWRITE |
+ GObject.PARAM_CONSTRUCT_ONLY,
getter=_get_has_palette,
setter=_set_has_palette)
@@ -190,15 +190,15 @@ class _ColorButton(gtk.Button):
def _get_accept_drag(self):
return self._accept_drag
- accept_drag = gobject.property(type=bool, default=True,
- flags=gobject.PARAM_READWRITE |
- gobject.PARAM_CONSTRUCT_ONLY,
+ accept_drag = GObject.property(type=bool, default=True,
+ flags=GObject.PARAM_READWRITE |
+ GObject.PARAM_CONSTRUCT_ONLY,
getter=_get_accept_drag,
setter=_set_accept_drag)
def __drag_begin_cb(self, widget, context):
# Drag and Drop
- pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8,
+ pixbuf = GdkPixbuf.Pixbuf(GdkPixbuf.Colorspace.RGB, True, 8,
style.SMALL_ICON_SIZE,
style.SMALL_ICON_SIZE)
@@ -226,7 +226,7 @@ class _ColorButton(gtk.Button):
blue = struct.unpack_from('=H', dropped, 4)[0]
# dropped[6] and dropped[7] is alpha, but we ignore the alpha channel
- color = gtk.gdk.Color(red, green, blue)
+ color = Gdk.Color(red, green, blue)
self.set_color(color)
@@ -242,11 +242,11 @@ class _ColorPalette(Palette):
# The color-set signal is emitted when the user is finished selecting
# a color.
- __gsignals__ = {'color-set': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ __gsignals__ = {'color-set': (GObject.SignalFlags.RUN_FIRST, None,
tuple())}
def __init__(self, **kwargs):
- self._color = gtk.gdk.Color(0, 0, 0)
+ self._color = Gdk.Color(0, 0, 0)
self._previous_color = self._color.copy()
self._scales = None
@@ -255,16 +255,16 @@ class _ColorPalette(Palette):
self.connect('popup', self.__popup_cb)
self.connect('popdown', self.__popdown_cb)
- self._picker_hbox = gtk.HBox()
+ self._picker_hbox = Gtk.HBox()
self.set_content(self._picker_hbox)
- self._swatch_tray = gtk.Table()
+ self._swatch_tray = Gtk.Table()
- self._picker_hbox.pack_start(self._swatch_tray)
- self._picker_hbox.pack_start(gtk.VSeparator(),
+ self._picker_hbox.pack_start(self._swatch_tray, True, True, 0)
+ self._picker_hbox.pack_start(Gtk.VSeparator(, True, True, 0),
padding=style.DEFAULT_SPACING)
- self._chooser_table = gtk.Table(3, 2)
+ self._chooser_table = Gtk.Table(3, 2)
self._chooser_table.set_col_spacing(0, style.DEFAULT_PADDING)
self._scales = []
@@ -282,9 +282,9 @@ class _ColorPalette(Palette):
self._build_swatches()
def _create_color_scale(self, text, color, row):
- label = gtk.Label(text)
+ label = Gtk.Label(label=text)
label.props.xalign = 1.0
- scale = gtk.HScale()
+ scale = Gtk.HScale()
scale.set_size_request(style.zoom(250), -1)
scale.set_draw_value(False)
scale.set_range(0, 1.0)
@@ -322,10 +322,10 @@ class _ColorPalette(Palette):
self._swatch_tray.props.n_columns = (len(colors) + rows - 1) / rows
for color in colors:
button = _ColorButton(has_palette=False,
- color=gtk.gdk.color_parse(color),
+ color=Gdk.color_parse(color),
accept_drag=False,
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
- button.set_relief(gtk.RELIEF_NONE)
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR)
+ button.set_relief(Gtk.ReliefStyle.NONE)
self._swatch_tray.attach(button,
i % rows, i % rows + 1,
i / rows, i / rows + 1,
@@ -352,11 +352,11 @@ class _ColorPalette(Palette):
self.color = new_color
def do_key_press_event(self, event):
- if event.keyval == gtk.keysyms.Escape:
+ if event.keyval == Gdk.KEY_Escape:
self.props.color = self._previous_color
self.popdown(immediate=True)
return True
- elif event.keyval == gtk.keysyms.Return:
+ elif event.keyval == Gdk.KEY_Return:
self.popdown(immediate=True)
return True
return False
@@ -365,7 +365,7 @@ class _ColorPalette(Palette):
self.props.color = button.get_color()
def set_color(self, color):
- assert isinstance(color, gtk.gdk.Color)
+ assert isinstance(color, Gdk.Color)
if self._color.red == color.red and \
self._color.green == color.green and \
@@ -384,26 +384,26 @@ class _ColorPalette(Palette):
def get_color(self):
return self._color
- color = gobject.property(type=object, getter=get_color, setter=set_color)
+ color = GObject.property(type=object, getter=get_color, setter=set_color)
def _add_accelerator(tool_button):
if not tool_button.props.accelerator or not tool_button.get_toplevel() or \
- not tool_button.child:
+ not tool_button.get_child():
return
# TODO: should we remove the accelerator from the prev top level?
accel_group = tool_button.get_toplevel().get_data('sugar-accel-group')
if not accel_group:
- logging.warning('No gtk.AccelGroup in the top level window.')
+ logging.warning('No Gtk.AccelGroup in the top level window.')
return
- keyval, mask = gtk.accelerator_parse(tool_button.props.accelerator)
- # the accelerator needs to be set at the child, so the gtk.AccelLabel
+ keyval, mask = Gtk.accelerator_parse(tool_button.props.accelerator)
+ # the accelerator needs to be set at the child, so the Gtk.AccelLabel
# in the palette can pick it up.
- tool_button.child.add_accelerator('clicked', accel_group, keyval, mask,
- gtk.ACCEL_LOCKED | gtk.ACCEL_VISIBLE)
+ tool_button.get_child().add_accelerator('clicked', accel_group, keyval, mask,
+ Gtk.AccelFlags.LOCKED | Gtk.AccelFlags.VISIBLE)
def _hierarchy_changed_cb(tool_button, previous_toplevel):
@@ -415,13 +415,13 @@ def setup_accelerator(tool_button):
tool_button.connect('hierarchy-changed', _hierarchy_changed_cb)
-class ColorToolButton(gtk.ToolItem):
- # This not ideal. It would be better to subclass gtk.ToolButton, however
+class ColorToolButton(Gtk.ToolItem):
+ # This not ideal. It would be better to subclass Gtk.ToolButton, however
# the python bindings do not seem to be powerfull enough for that.
# (As we need to change a variable in the class structure.)
__gtype_name__ = 'SugarColorToolButton'
- __gsignals__ = {'color-set': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ __gsignals__ = {'color-set': (GObject.SignalFlags.RUN_FIRST, None,
tuple())}
def __init__(self, icon_name='color-preview', **kwargs):
@@ -430,16 +430,16 @@ class ColorToolButton(gtk.ToolItem):
self._palette_invoker = ToolInvoker()
self._palette = None
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
- # The gtk.ToolButton has already added a normal button.
+ # The Gtk.ToolButton has already added a normal button.
# Replace it with a ColorButton
color_button = _ColorButton(icon_name=icon_name, has_invoker=False)
self.add(color_button)
# The following is so that the behaviour on the toolbar is correct.
- color_button.set_relief(gtk.RELIEF_NONE)
- color_button.icon_size = gtk.ICON_SIZE_LARGE_TOOLBAR
+ color_button.set_relief(Gtk.ReliefStyle.NONE)
+ color_button.icon_size = Gtk.IconSize.LARGE_TOOLBAR
self._palette_invoker.attach_tool(self)
@@ -463,7 +463,7 @@ class ColorToolButton(gtk.ToolItem):
def get_accelerator(self):
return self._accelerator
- accelerator = gobject.property(type=str, setter=set_accelerator,
+ accelerator = GObject.property(type=str, setter=set_accelerator,
getter=get_accelerator)
def create_palette(self):
@@ -477,7 +477,7 @@ class ColorToolButton(gtk.ToolItem):
self._palette_invoker.detach()
self._palette_invoker = palette_invoker
- palette_invoker = gobject.property(
+ palette_invoker = GObject.property(
type=object, setter=set_palette_invoker, getter=get_palette_invoker)
def set_color(self, color):
@@ -486,7 +486,7 @@ class ColorToolButton(gtk.ToolItem):
def get_color(self):
return self.get_child().props.color
- color = gobject.property(type=object, getter=get_color, setter=set_color)
+ color = GObject.property(type=object, getter=get_color, setter=set_color)
def set_icon_name(self, icon_name):
self.get_child().props.icon_name = icon_name
@@ -494,7 +494,7 @@ class ColorToolButton(gtk.ToolItem):
def get_icon_name(self):
return self.get_child().props.icon_name
- icon_name = gobject.property(type=str,
+ icon_name = GObject.property(type=str,
getter=get_icon_name, setter=set_icon_name)
def set_icon_size(self, icon_size):
@@ -503,7 +503,7 @@ class ColorToolButton(gtk.ToolItem):
def get_icon_size(self):
return self.get_child().props.icon_size
- icon_size = gobject.property(type=int,
+ icon_size = GObject.property(type=int,
getter=get_icon_size, setter=set_icon_size)
def set_title(self, title):
@@ -512,7 +512,7 @@ class ColorToolButton(gtk.ToolItem):
def get_title(self):
return self.get_child().props.title
- title = gobject.property(type=str, getter=get_title, setter=set_title)
+ title = GObject.property(type=str, getter=get_title, setter=set_title)
def do_expose_event(self, event):
child = self.get_child()
@@ -520,14 +520,14 @@ class ColorToolButton(gtk.ToolItem):
if self._palette and self._palette.is_up():
invoker = self._palette.props.invoker
invoker.draw_rectangle(event, self._palette)
- elif child.state == gtk.STATE_PRELIGHT:
- child.style.paint_box(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_NONE, event.area,
+ elif child.state == Gtk.StateType.PRELIGHT:
+ child.style.paint_box(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.NONE, event.area,
child, 'toolbutton-prelight',
allocation.x, allocation.y,
allocation.width, allocation.height)
- gtk.ToolButton.do_expose_event(self, event)
+ Gtk.ToolButton.do_expose_event(self, event)
def __notify_change(self, widget, pspec):
self.notify(pspec.name)
diff --git a/src/sugar3/graphics/combobox.py b/src/sugar3/graphics/combobox.py
index b56604a..32700d1 100644
--- a/src/sugar3/graphics/combobox.py
+++ b/src/sugar3/graphics/combobox.py
@@ -19,24 +19,24 @@
STABLE.
"""
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
-class ComboBox(gtk.ComboBox):
+class ComboBox(Gtk.ComboBox):
__gtype_name__ = 'SugarComboBox'
def __init__(self):
- gtk.ComboBox.__init__(self)
+ GObject.GObject.__init__(self)
self._text_renderer = None
self._icon_renderer = None
- self._model = gtk.ListStore(gobject.TYPE_PYOBJECT,
- gobject.TYPE_STRING,
- gtk.gdk.Pixbuf,
- gobject.TYPE_BOOLEAN)
+ self._model = Gtk.ListStore(GObject.TYPE_PYOBJECT,
+ GObject.TYPE_STRING,
+ GdkPixbuf.Pixbuf,
+ GObject.TYPE_BOOLEAN)
self.set_model(self._model)
self.set_row_separator_func(self._is_separator, None)
@@ -57,12 +57,12 @@ class ComboBox(gtk.ComboBox):
return None
return row[0]
- value = gobject.property(
+ value = GObject.property(
type=object, getter=get_value, setter=None)
def _get_real_name_from_theme(self, name, size):
- icon_theme = gtk.icon_theme_get_default()
- width, height = gtk.icon_size_lookup(size)
+ icon_theme = Gtk.IconTheme.get_default()
+ width, height = Gtk.icon_size_lookup(size)
info = icon_theme.lookup_icon(name, max(width, height), 0)
if not info:
raise ValueError('Icon %r not found.' % name)
@@ -88,32 +88,32 @@ class ComboBox(gtk.ComboBox):
"""
if not self._icon_renderer and (icon_name or file_name):
- self._icon_renderer = gtk.CellRendererPixbuf()
+ self._icon_renderer = Gtk.CellRendererPixbuf()
settings = self.get_settings()
- w, h = gtk.icon_size_lookup_for_settings(
- settings, gtk.ICON_SIZE_MENU)
+ w, h = Gtk.icon_size_lookup_for_settings(
+ settings, Gtk.IconSize.MENU)
self._icon_renderer.props.stock_size = max(w, h)
self.pack_start(self._icon_renderer, False)
self.add_attribute(self._icon_renderer, 'pixbuf', 2)
if not self._text_renderer and text:
- self._text_renderer = gtk.CellRendererText()
+ self._text_renderer = Gtk.CellRendererText()
self.pack_end(self._text_renderer, True)
self.add_attribute(self._text_renderer, 'text', 1)
if icon_name or file_name:
if text:
- size = gtk.ICON_SIZE_MENU
+ size = Gtk.IconSize.MENU
else:
- size = gtk.ICON_SIZE_LARGE_TOOLBAR
- width, height = gtk.icon_size_lookup(size)
+ size = Gtk.IconSize.LARGE_TOOLBAR
+ width, height = Gtk.icon_size_lookup(size)
if icon_name:
file_name = self._get_real_name_from_theme(icon_name, size)
- pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
file_name, width, height)
else:
pixbuf = None
diff --git a/src/sugar3/graphics/icon.py b/src/sugar3/graphics/icon.py
index 3b10f8a..65e576f 100644
--- a/src/sugar3/graphics/icon.py
+++ b/src/sugar3/graphics/icon.py
@@ -25,8 +25,8 @@ import re
import math
import logging
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
import cairo
from sugar3.graphics.xocolor import XoColor
@@ -120,11 +120,11 @@ class _IconBuffer(object):
return self._loader.load(file_name, entities, self.cache)
def _get_attach_points(self, info, size_request):
- attach_points = info.get_attach_points()
+ return 0,0;has_attach_points_, attach_points = info.get_attach_points()
if attach_points:
- attach_x = float(attach_points[0][0]) / size_request
- attach_y = float(attach_points[0][1]) / size_request
+ attach_x = float(attach_points[0].x) / size_request
+ attach_y = float(attach_points[0].y) / size_request
else:
attach_x = attach_y = 0
@@ -136,7 +136,7 @@ class _IconBuffer(object):
if self.file_name:
icon_info.file_name = self.file_name
elif self.icon_name:
- theme = gtk.icon_theme_get_default()
+ theme = Gtk.IconTheme.get_default()
size = 50
if self.width != None:
@@ -158,7 +158,7 @@ class _IconBuffer(object):
return icon_info
def _draw_badge(self, context, size, sensitive, widget):
- theme = gtk.icon_theme_get_default()
+ theme = Gtk.IconTheme.get_default()
badge_info = theme.lookup_icon(self.badge_name, int(size), 0)
if badge_info:
badge_file_name = badge_info.get_filename()
@@ -171,7 +171,7 @@ class _IconBuffer(object):
pixbuf = handle.get_pixbuf()
else:
- pixbuf = gtk.gdk.pixbuf_new_from_file(badge_file_name)
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file(badge_file_name)
icon_width = pixbuf.get_width()
icon_height = pixbuf.get_height()
@@ -231,16 +231,16 @@ class _IconBuffer(object):
if not (widget and widget.style):
return pixbuf
- icon_source = gtk.IconSource()
+ icon_source = Gtk.IconSource()
# Special size meaning "don't touch"
icon_source.set_size(-1)
icon_source.set_pixbuf(pixbuf)
- icon_source.set_state(gtk.STATE_INSENSITIVE)
+ icon_source.set_state(Gtk.StateType.INSENSITIVE)
icon_source.set_direction_wildcarded(False)
icon_source.set_size_wildcarded(False)
pixbuf = widget.style.render_icon(icon_source, widget.get_direction(),
- gtk.STATE_INSENSITIVE, -1, widget,
+ Gtk.StateType.INSENSITIVE, -1, widget,
'sugar-icon')
return pixbuf
@@ -262,7 +262,7 @@ class _IconBuffer(object):
icon_width = int(dimensions[0])
icon_height = int(dimensions[1])
else:
- pixbuf = gtk.gdk.pixbuf_new_from_file(icon_info.file_name)
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file(icon_info.file_name)
icon_width = pixbuf.get_width()
icon_height = pixbuf.get_height()
@@ -278,7 +278,7 @@ class _IconBuffer(object):
surface = cairo.ImageSurface(cairo.FORMAT_RGB24, int(width),
int(height))
context = cairo.Context(surface)
- context = gtk.gdk.CairoContext(context)
+ context = Gdk.CairoContext(context)
context.set_source_color(self.background_color)
context.paint()
@@ -314,7 +314,7 @@ class _IconBuffer(object):
xo_color = property(_get_xo_color, _set_xo_color)
-class Icon(gtk.Image):
+class Icon(Gtk.Image):
__gtype_name__ = 'SugarIcon'
@@ -327,7 +327,7 @@ class Icon(gtk.Image):
self._alpha = 1.0
self._scale = 1.0
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
def get_file(self):
return self._file
@@ -336,7 +336,7 @@ class Icon(gtk.Image):
self._file = file_name
self._buffer.file_name = file_name
- file = gobject.property(type=object, setter=set_file, getter=get_file)
+ file = GObject.property(type=object, setter=set_file, getter=get_file)
def _sync_image_properties(self):
if self._buffer.icon_name != self.props.icon_name:
@@ -346,7 +346,7 @@ class Icon(gtk.Image):
self._buffer.file_name = self.props.file
if self.props.pixel_size == -1:
- width, height = gtk.icon_size_lookup(self.props.icon_size)
+ width, height = Gtk.icon_size_lookup(self.props.icon_size)
else:
width = height = self.props.pixel_size
if self._buffer.width != width or self._buffer.height != height:
@@ -396,7 +396,7 @@ class Icon(gtk.Image):
"""
self._sync_image_properties()
- sensitive = (self.state != gtk.STATE_INSENSITIVE)
+ sensitive = (self.is_sensitive())
surface = self._buffer.get_surface(sensitive, self)
if surface is None:
return
@@ -404,7 +404,7 @@ class Icon(gtk.Image):
xpad, ypad = self.get_padding()
xalign, yalign = self.get_alignment()
requisition = self.get_child_requisition()
- if self.get_direction() != gtk.TEXT_DIR_LTR:
+ if self.get_direction() != Gtk.TextDirection.LTR:
xalign = 1.0 - xalign
allocation = self.get_allocation()
@@ -413,7 +413,7 @@ class Icon(gtk.Image):
y = math.floor(allocation.y + ypad +
(allocation.height - requisition[1]) * yalign)
- cr = self.window.cairo_create()
+ cr = self.get_window().cairo_create()
if self._scale != 1.0:
cr.scale(self._scale, self._scale)
@@ -446,7 +446,7 @@ class Icon(gtk.Image):
self._buffer.xo_color = value
self.queue_draw()
- xo_color = gobject.property(
+ xo_color = GObject.property(
type=object, getter=None, setter=set_xo_color)
def set_fill_color(self, value):
@@ -477,7 +477,7 @@ class Icon(gtk.Image):
"""
return self._buffer.fill_color
- fill_color = gobject.property(
+ fill_color = GObject.property(
type=object, getter=get_fill_color, setter=set_fill_color)
def set_stroke_color(self, value):
@@ -508,7 +508,7 @@ class Icon(gtk.Image):
"""
return self._buffer.stroke_color
- stroke_color = gobject.property(
+ stroke_color = GObject.property(
type=object, getter=get_stroke_color, setter=set_stroke_color)
def set_badge_name(self, value):
@@ -529,7 +529,7 @@ class Icon(gtk.Image):
def get_badge_name(self):
return self._buffer.badge_name
- badge_name = gobject.property(
+ badge_name = GObject.property(
type=str, getter=get_badge_name, setter=set_badge_name)
def set_alpha(self, value):
@@ -537,7 +537,7 @@ class Icon(gtk.Image):
self._alpha = value
self.queue_draw()
- alpha = gobject.property(
+ alpha = GObject.property(
type=float, setter=set_alpha)
def set_scale(self, value):
@@ -545,16 +545,16 @@ class Icon(gtk.Image):
self._scale = value
self.queue_draw()
- scale = gobject.property(
+ scale = GObject.property(
type=float, setter=set_scale)
-class CellRendererIcon(gtk.GenericCellRenderer):
+class CellRendererIcon(Gtk.CellRenderer):
__gtype_name__ = 'SugarCellRendererIcon'
__gsignals__ = {
- 'clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, [object]),
+ 'clicked': (GObject.SignalFlags.RUN_FIRST, None, [object]),
}
def __init__(self, tree_view):
@@ -569,7 +569,7 @@ class CellRendererIcon(gtk.GenericCellRenderer):
self._prelit_stroke_color = None
self._palette_invoker = CellRendererInvoker()
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._palette_invoker.attach_cell_renderer(tree_view, self)
@@ -584,19 +584,19 @@ class CellRendererIcon(gtk.GenericCellRenderer):
def get_palette_invoker(self):
return self._palette_invoker
- palette_invoker = gobject.property(type=object, getter=get_palette_invoker)
+ palette_invoker = GObject.property(type=object, getter=get_palette_invoker)
def set_file_name(self, value):
if self._buffer.file_name != value:
self._buffer.file_name = value
- file_name = gobject.property(type=str, setter=set_file_name)
+ file_name = GObject.property(type=str, setter=set_file_name)
def set_icon_name(self, value):
if self._buffer.icon_name != value:
self._buffer.icon_name = value
- icon_name = gobject.property(type=str, setter=set_icon_name)
+ icon_name = GObject.property(type=str, setter=set_icon_name)
def get_xo_color(self):
return self._xo_color
@@ -604,40 +604,40 @@ class CellRendererIcon(gtk.GenericCellRenderer):
def set_xo_color(self, value):
self._xo_color = value
- xo_color = gobject.property(type=object,
+ xo_color = GObject.property(type=object,
getter=get_xo_color, setter=set_xo_color)
def set_fill_color(self, value):
if self._fill_color != value:
self._fill_color = value
- fill_color = gobject.property(type=object, setter=set_fill_color)
+ fill_color = GObject.property(type=object, setter=set_fill_color)
def set_stroke_color(self, value):
if self._stroke_color != value:
self._stroke_color = value
- stroke_color = gobject.property(type=object, setter=set_stroke_color)
+ stroke_color = GObject.property(type=object, setter=set_stroke_color)
def set_prelit_fill_color(self, value):
if self._prelit_fill_color != value:
self._prelit_fill_color = value
- prelit_fill_color = gobject.property(type=object,
+ prelit_fill_color = GObject.property(type=object,
setter=set_prelit_fill_color)
def set_prelit_stroke_color(self, value):
if self._prelit_stroke_color != value:
self._prelit_stroke_color = value
- prelit_stroke_color = gobject.property(type=object,
+ prelit_stroke_color = GObject.property(type=object,
setter=set_prelit_stroke_color)
def set_background_color(self, value):
if self._buffer.background_color != value:
self._buffer.background_color = value
- background_color = gobject.property(type=object,
+ background_color = GObject.property(type=object,
setter=set_background_color)
def set_size(self, value):
@@ -645,7 +645,7 @@ class CellRendererIcon(gtk.GenericCellRenderer):
self._buffer.width = value
self._buffer.height = value
- size = gobject.property(type=object, setter=set_size)
+ size = GObject.property(type=object, setter=set_size)
def on_get_size(self, widget, cell_area):
width = self._buffer.width + self.props.xpad * 2
@@ -655,7 +655,7 @@ class CellRendererIcon(gtk.GenericCellRenderer):
if width > 0 and height > 0 and cell_area is not None:
- if widget.get_direction() == gtk.TEXT_DIR_RTL:
+ if widget.get_direction() == Gtk.TextDirection.RTL:
xoffset = 1.0 - self.props.xalign
else:
xoffset = self.props.xalign
@@ -707,7 +707,7 @@ class CellRendererIcon(gtk.GenericCellRenderer):
has_prelit_colors = None not in [prelit_fill_color,
prelit_stroke_color]
- if flags & gtk.CELL_RENDERER_PRELIT and has_prelit_colors and \
+ if flags & Gtk.CELL_RENDERER_PRELIT and has_prelit_colors and \
self._is_prelit(widget):
self._buffer.fill_color = prelit_fill_color
@@ -733,7 +733,7 @@ class CellRendererIcon(gtk.GenericCellRenderer):
def get_icon_state(base_name, perc, step=5):
strength = round(perc / step) * step
- icon_theme = gtk.icon_theme_get_default()
+ icon_theme = Gtk.IconTheme.get_default()
while strength <= 100 and strength >= 0:
icon_name = '%s-%03d' % (base_name, strength)
@@ -744,8 +744,8 @@ def get_icon_state(base_name, perc, step=5):
def get_icon_file_name(icon_name):
- icon_theme = gtk.icon_theme_get_default()
- info = icon_theme.lookup_icon(icon_name, gtk.ICON_SIZE_LARGE_TOOLBAR, 0)
+ icon_theme = Gtk.IconTheme.get_default()
+ info = icon_theme.lookup_icon(icon_name, Gtk.IconSize.LARGE_TOOLBAR, 0)
if not info:
return None
filename = info.get_filename()
diff --git a/src/sugar3/graphics/iconentry.py b/src/sugar3/graphics/iconentry.py
index 65c0fce..6e1d341 100644
--- a/src/sugar3/graphics/iconentry.py
+++ b/src/sugar3/graphics/iconentry.py
@@ -15,19 +15,19 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-import gtk
+from gi.repository import Gtk
from sugar3.graphics import style
from sugar3.graphics.icon import _SVGLoader
-ICON_ENTRY_PRIMARY = gtk.ENTRY_ICON_PRIMARY
-ICON_ENTRY_SECONDARY = gtk.ENTRY_ICON_SECONDARY
+ICON_ENTRY_PRIMARY = Gtk.EntryIconPosition.PRIMARY
+ICON_ENTRY_SECONDARY = Gtk.EntryIconPosition.SECONDARY
-class IconEntry(gtk.Entry):
+class IconEntry(Gtk.Entry):
def __init__(self):
- gtk.Entry.__init__(self)
+ GObject.GObject.__init__(self)
self._clear_icon = None
self._clear_shown = False
@@ -35,9 +35,9 @@ class IconEntry(gtk.Entry):
self.connect('key_press_event', self._keypress_event_cb)
def set_icon_from_name(self, position, name):
- icon_theme = gtk.icon_theme_get_default()
+ icon_theme = Gtk.IconTheme.get_default()
icon_info = icon_theme.lookup_icon(name,
- gtk.ICON_SIZE_SMALL_TOOLBAR,
+ Gtk.IconSize.SMALL_TOOLBAR,
0)
if icon_info.get_filename().endswith('.svg'):
@@ -47,12 +47,12 @@ class IconEntry(gtk.Entry):
handle = loader.load(icon_info.get_filename(), entities, None)
pixbuf = handle.get_pixbuf()
else:
- pixbuf = gtk.gdk.pixbuf_new_from_file(icon_info.get_filename())
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file(icon_info.get_filename())
del icon_info
self.set_icon(position, pixbuf)
def set_icon(self, position, pixbuf):
- if type(pixbuf) is not gtk.gdk.Pixbuf:
+ if type(pixbuf) is not GdkPixbuf.Pixbuf:
raise ValueError('Argument must be a pixbuf, not %r.' % pixbuf)
self.set_icon_from_pixbuf(position, pixbuf)
@@ -80,7 +80,7 @@ class IconEntry(gtk.Entry):
self._clear_shown = False
def _keypress_event_cb(self, widget, event):
- keyval = gtk.gdk.keyval_name(event.keyval)
+ keyval = Gdk.keyval_name(event.keyval)
if keyval == 'Escape':
self.props.text = ''
return True
diff --git a/src/sugar3/graphics/menuitem.py b/src/sugar3/graphics/menuitem.py
index 8cfff7e..0844e9a 100644
--- a/src/sugar3/graphics/menuitem.py
+++ b/src/sugar3/graphics/menuitem.py
@@ -21,39 +21,39 @@ STABLE.
import logging
-import gobject
-import pango
-import gtk
+from gi.repository import GObject
+from gi.repository import Pango
+from gi.repository import Gtk
from sugar3.graphics.icon import Icon
-class MenuItem(gtk.ImageMenuItem):
+class MenuItem(Gtk.ImageMenuItem):
def __init__(self, text_label=None, icon_name=None, text_maxlen=60,
xo_color=None, file_name=None):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._accelerator = None
- label = gtk.AccelLabel(text_label)
+ label = Gtk.AccelLabel(label=text_label)
label.set_alignment(0.0, 0.5)
label.set_accel_widget(self)
if text_maxlen > 0:
- label.set_ellipsize(pango.ELLIPSIZE_MIDDLE)
+ label.set_ellipsize(Pango.EllipsizeMode.MIDDLE)
label.set_max_width_chars(text_maxlen)
self.add(label)
label.show()
if icon_name is not None:
icon = Icon(icon_name=icon_name,
- icon_size=gtk.ICON_SIZE_SMALL_TOOLBAR)
+ icon_size=Gtk.IconSize.SMALL_TOOLBAR)
if xo_color is not None:
icon.props.xo_color = xo_color
self.set_image(icon)
icon.show()
elif file_name is not None:
- icon = Icon(file=file_name, icon_size=gtk.ICON_SIZE_SMALL_TOOLBAR)
+ icon = Icon(file=file_name, icon_size=Gtk.IconSize.SMALL_TOOLBAR)
if xo_color is not None:
icon.props.xo_color = xo_color
self.set_image(icon)
@@ -77,12 +77,12 @@ class MenuItem(gtk.ImageMenuItem):
accel_group = self.get_toplevel().get_data('sugar-accel-group')
if not accel_group:
- logging.warning('No gtk.AccelGroup in the top level window.')
+ logging.warning('No Gtk.AccelGroup in the top level window.')
return
- keyval, mask = gtk.accelerator_parse(self._accelerator)
+ keyval, mask = Gtk.accelerator_parse(self._accelerator)
self.add_accelerator('activate', accel_group, keyval, mask,
- gtk.ACCEL_LOCKED | gtk.ACCEL_VISIBLE)
+ Gtk.AccelFlags.LOCKED | Gtk.AccelFlags.VISIBLE)
def set_accelerator(self, accelerator):
self._accelerator = accelerator
@@ -91,5 +91,5 @@ class MenuItem(gtk.ImageMenuItem):
def get_accelerator(self):
return self._accelerator
- accelerator = gobject.property(type=str, setter=set_accelerator,
+ accelerator = GObject.property(type=str, setter=set_accelerator,
getter=get_accelerator)
diff --git a/src/sugar3/graphics/notebook.py b/src/sugar3/graphics/notebook.py
index 7fb6b76..6e96fba 100644
--- a/src/sugar3/graphics/notebook.py
+++ b/src/sugar3/graphics/notebook.py
@@ -17,24 +17,24 @@
"""Notebook class
-This class create a gtk.Notebook() widget supporting
+This class create a Gtk.Notebook() widget supporting
a close button in every tab when the 'can-close-tabs' gproperty
is enabled (True)
STABLE.
"""
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
-class Notebook(gtk.Notebook):
+class Notebook(Gtk.Notebook):
__gtype_name__ = 'SugarNotebook'
__gproperties__ = {
'can-close-tabs': (bool, None, None, False,
- gobject.PARAM_READWRITE | gobject.PARAM_CONSTRUCT_ONLY),
+ GObject.PARAM_READWRITE | GObject.PARAM_CONSTRUCT_ONLY),
}
def __init__(self, **kwargs):
@@ -74,26 +74,26 @@ class Notebook(gtk.Notebook):
raise AssertionError
def _add_icon_to_button(self, button):
- icon_box = gtk.HBox()
- image = gtk.Image()
- image.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU)
- gtk.Button.set_relief(button, gtk.RELIEF_NONE)
-
- settings = gtk.Widget.get_settings(button)
- w, h = gtk.icon_size_lookup_for_settings(settings, gtk.ICON_SIZE_MENU)
- gtk.Widget.set_size_request(button, w + 4, h + 4)
+ icon_box = Gtk.HBox()
+ image = Gtk.Image()
+ image.set_from_stock(Gtk.STOCK_CLOSE, Gtk.IconSize.MENU)
+ Gtk.Button.set_relief(button, Gtk.ReliefStyle.NONE)
+
+ settings = Gtk.Widget.get_settings(button)
+ w, h = Gtk.icon_size_lookup_for_settings(settings, Gtk.IconSize.MENU)
+ Gtk.Widget.set_size_request(button, w + 4, h + 4)
image.show()
icon_box.pack_start(image, True, False, 0)
button.add(icon_box)
icon_box.show()
def _create_custom_tab(self, text, child):
- event_box = gtk.EventBox()
+ event_box = Gtk.EventBox()
- tab_box = gtk.HBox(False, 2)
- tab_label = gtk.Label(text)
+ tab_box = Gtk.HBox(False, 2)
+ tab_label = Gtk.Label(label=text)
- tab_button = gtk.Button()
+ tab_button = Gtk.Button()
tab_button.connect('clicked', self._close_page, child)
# Add a picture on a button
@@ -132,7 +132,7 @@ class Notebook(gtk.Notebook):
eventbox = self._create_custom_tab(text_label, widget)
self.append_page(widget, eventbox)
else:
- self.append_page(widget, gtk.Label(text_label))
+ self.append_page(widget, Gtk.Label(label=text_label))
pages = self.get_n_pages()
diff --git a/src/sugar3/graphics/objectchooser.py b/src/sugar3/graphics/objectchooser.py
index 68d2a11..5b3eee3 100644
--- a/src/sugar3/graphics/objectchooser.py
+++ b/src/sugar3/graphics/objectchooser.py
@@ -21,8 +21,8 @@ STABLE.
import logging
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
import dbus
from sugar3.datastore import datastore
@@ -39,7 +39,7 @@ class ObjectChooser(object):
what_filter=None):
# For backwards compatibility:
# - We ignore title, flags and buttons.
- # - 'parent' can be a xid or a gtk.Window
+ # - 'parent' can be a xid or a Gtk.Window
if title is not None or flags is not None or buttons is not None:
logging.warning('Invocation of ObjectChooser() has deprecated '
@@ -57,13 +57,13 @@ class ObjectChooser(object):
self._object_id = None
self._bus = None
self._chooser_id = None
- self._response_code = gtk.RESPONSE_NONE
+ self._response_code = Gtk.ResponseType.NONE
self._what_filter = what_filter
def run(self):
self._object_id = None
- self._main_loop = gobject.MainLoop()
+ self._main_loop = GObject.MainLoop()
self._bus = dbus.SessionBus(mainloop=self._main_loop)
self._bus.add_signal_receiver(
@@ -86,11 +86,11 @@ class ObjectChooser(object):
self._chooser_id = journal.ChooseObject(self._parent_xid, what_filter)
- gtk.gdk.threads_leave()
+ Gdk.threads_leave()
try:
self._main_loop.run()
finally:
- gtk.gdk.threads_enter()
+ Gdk.threads_enter()
self._main_loop = None
return self._response_code
@@ -114,7 +114,7 @@ class ObjectChooser(object):
if chooser_id != self._chooser_id:
return
logging.debug('ObjectChooser.__chooser_response_cb: %r', object_id)
- self._response_code = gtk.RESPONSE_ACCEPT
+ self._response_code = Gtk.ResponseType.ACCEPT
self._object_id = object_id
self._cleanup()
@@ -122,11 +122,11 @@ class ObjectChooser(object):
if chooser_id != self._chooser_id:
return
logging.debug('ObjectChooser.__chooser_cancelled_cb: %r', chooser_id)
- self._response_code = gtk.RESPONSE_CANCEL
+ self._response_code = Gtk.ResponseType.CANCEL
self._cleanup()
def __name_owner_changed_cb(self, name, old, new):
logging.debug('ObjectChooser.__name_owner_changed_cb')
# Journal service disappeared from the bus
- self._response_code = gtk.RESPONSE_CANCEL
+ self._response_code = Gtk.ResponseType.CANCEL
self._cleanup()
diff --git a/src/sugar3/graphics/palette.py b/src/sugar3/graphics/palette.py
index 465a8fc..aed1744 100644
--- a/src/sugar3/graphics/palette.py
+++ b/src/sugar3/graphics/palette.py
@@ -21,16 +21,16 @@
STABLE.
"""
-import gtk
-import gobject
-import pango
+from gi.repository import Gtk
+from gi.repository import GObject
+from gi.repository import Pango
from sugar3.graphics import palettegroup
from sugar3.graphics import animator
from sugar3.graphics import style
from sugar3.graphics.icon import Icon
from sugar3.graphics.palettewindow import PaletteWindow
-from sugar import _sugarext
+from gi.repository import SugarExt
# DEPRECATED
# Import these for backwards compatibility
@@ -56,50 +56,50 @@ class Palette(PaletteWindow):
self._icon_visible = True
self._palette_state = self.PRIMARY
- palette_box = gtk.VBox()
+ palette_box = Gtk.VBox()
- primary_box = gtk.HBox()
- palette_box.pack_start(primary_box, expand=False)
+ primary_box = Gtk.HBox()
+ palette_box.pack_start(primary_box, False, True, 0)
primary_box.show()
- self._icon_box = gtk.HBox()
+ self._icon_box = Gtk.HBox()
self._icon_box.set_size_request(style.GRID_CELL_SIZE, -1)
- primary_box.pack_start(self._icon_box, expand=False)
+ primary_box.pack_start(self._icon_box, False, True, 0)
- labels_box = gtk.VBox()
- self._label_alignment = gtk.Alignment(xalign=0, yalign=0.5,
+ labels_box = Gtk.VBox()
+ self._label_alignment = Gtk.Alignment.new(xalign=0, yalign=0.5,
xscale=1, yscale=0.33)
self._label_alignment.set_padding(0, 0, style.DEFAULT_SPACING,
style.DEFAULT_SPACING)
self._label_alignment.add(labels_box)
self._label_alignment.show()
- primary_box.pack_start(self._label_alignment, expand=True)
+ primary_box.pack_start(self._label_alignment, True, True, 0)
labels_box.show()
- self._label = gtk.AccelLabel('')
+ self._label = Gtk.AccelLabel(label='')
self._label.set_alignment(0, 0.5)
if text_maxlen > 0:
self._label.set_max_width_chars(text_maxlen)
- self._label.set_ellipsize(pango.ELLIPSIZE_MIDDLE)
- labels_box.pack_start(self._label, expand=True)
+ self._label.set_ellipsize(Pango.EllipsizeMode.MIDDLE)
+ labels_box.pack_start(self._label, True, True, 0)
- self._secondary_label = gtk.Label()
+ self._secondary_label = Gtk.Label()
self._secondary_label.set_alignment(0, 0.5)
if text_maxlen > 0:
self._secondary_label.set_max_width_chars(text_maxlen)
- self._secondary_label.set_ellipsize(pango.ELLIPSIZE_END)
+ self._secondary_label.set_ellipsize(Pango.EllipsizeMode.END)
- labels_box.pack_start(self._secondary_label, expand=True)
+ labels_box.pack_start(self._secondary_label, True, True, 0)
- self._secondary_box = gtk.VBox()
- palette_box.pack_start(self._secondary_box)
+ self._secondary_box = Gtk.VBox()
+ palette_box.pack_start(self._secondary_box, True, True, 0)
- self._separator = gtk.HSeparator()
- self._secondary_box.pack_start(self._separator)
+ self._separator = Gtk.HSeparator()
+ self._secondary_box.pack_start(self._separator, True, True, 0)
- self._menu_content_separator = gtk.HSeparator()
+ self._menu_content_separator = Gtk.HSeparator()
self._secondary_anim = animator.Animator(2.0, 10)
self._secondary_anim.add(_SecondaryAnimation(self))
@@ -119,11 +119,11 @@ class Palette(PaletteWindow):
self.props.primary_text = label
self._add_menu()
- self._secondary_box.pack_start(self._menu_content_separator)
+ self._secondary_box.pack_start(self._menu_content_separator, True, True, 0)
self._add_content()
self.action_bar = PaletteActionBar()
- self._secondary_box.pack_start(self.action_bar)
+ self._secondary_box.pack_start(self.action_bar, True, True, 0)
self.action_bar.show()
self.add(palette_box)
@@ -145,7 +145,7 @@ class Palette(PaletteWindow):
def do_style_set(self, previous_style):
# Prevent a warning from pygtk
if previous_style is not None:
- gtk.Window.do_style_set(self, previous_style)
+ Gtk.Window.do_style_set(self, previous_style)
self.set_border_width(self.get_style().xthickness)
def __menu_item_inserted_cb(self, menu):
@@ -155,7 +155,7 @@ class Palette(PaletteWindow):
self._secondary_anim.stop()
self.popdown(immediate=True)
# Break the reference cycle. It looks like the gc is not able to free
- # it, possibly because gtk.Menu memory handling is very special.
+ # it, possibly because Gtk.Menu memory handling is very special.
self.menu.disconnect_by_func(self.__menu_item_inserted_cb)
self.menu = None
@@ -216,15 +216,15 @@ class Palette(PaletteWindow):
self._secondary_anim.start()
def _add_menu(self):
- self._menu_box = gtk.VBox()
- self._secondary_box.pack_start(self._menu_box)
+ self._menu_box = Gtk.VBox()
+ self._secondary_box.pack_start(self._menu_box, True, True, 0)
self._menu_box.show()
def _add_content(self):
# The content is not shown until a widget is added
- self._content = gtk.VBox()
+ self._content = Gtk.VBox()
self._content.set_border_width(style.DEFAULT_SPACING)
- self._secondary_box.pack_start(self._content)
+ self._secondary_box.pack_start(self._content, True, True, 0)
def _update_accel_widget(self):
assert self.props.invoker is not None
@@ -240,7 +240,7 @@ class Palette(PaletteWindow):
def get_primary_text(self):
return self._primary_text
- primary_text = gobject.property(type=str,
+ primary_text = GObject.property(type=str,
getter=get_primary_text,
setter=set_primary_text)
@@ -258,7 +258,7 @@ class Palette(PaletteWindow):
def get_secondary_text(self):
return self._secondary_text
- secondary_text = gobject.property(type=str, getter=get_secondary_text,
+ secondary_text = GObject.property(type=str, getter=get_secondary_text,
setter=set_secondary_text)
def _show_icon(self):
@@ -278,14 +278,14 @@ class Palette(PaletteWindow):
if self._icon:
self._icon_box.remove(self._icon_box.get_children()[0])
- event_box = gtk.EventBox()
+ event_box = Gtk.EventBox()
event_box.connect('button-release-event',
self.__icon_button_release_event_cb)
- self._icon_box.pack_start(event_box)
+ self._icon_box.pack_start(event_box, True, True, 0)
event_box.show()
self._icon = icon
- self._icon.props.icon_size = gtk.ICON_SIZE_LARGE_TOOLBAR
+ self._icon.props.icon_size = Gtk.IconSize.LARGE_TOOLBAR
event_box.add(self._icon)
self._icon.show()
self._show_icon()
@@ -293,7 +293,7 @@ class Palette(PaletteWindow):
def get_icon(self):
return self._icon
- icon = gobject.property(type=object, getter=get_icon, setter=set_icon)
+ icon = GObject.property(type=object, getter=get_icon, setter=set_icon)
def __icon_button_release_event_cb(self, icon, event):
self.emit('activate')
@@ -309,13 +309,13 @@ class Palette(PaletteWindow):
def get_icon_visible(self):
return self._icon_visilbe
- icon_visible = gobject.property(type=bool,
+ icon_visible = GObject.property(type=bool,
default=True,
getter=get_icon_visible,
setter=set_icon_visible)
def set_content(self, widget):
- if len(self._content.get_children()) > 0:
+ if self._content.get_children():
self._content.remove(self._content.get_children()[0])
if widget is not None:
@@ -330,7 +330,7 @@ class Palette(PaletteWindow):
def do_size_request(self, requisition):
PaletteWindow.do_size_request(self, requisition)
- # gtk.AccelLabel request doesn't include the accelerator.
+ # Gtk.AccelLabel request doesn't include the accelerator.
label_width = self._label_alignment.size_request()[0] + \
self._label.get_accel_width() + \
2 * self.get_border_width()
@@ -340,12 +340,12 @@ class Palette(PaletteWindow):
self._full_request[0])
def _update_separators(self):
- visible = len(self.menu.get_children()) > 0 or \
- len(self._content.get_children()) > 0
+ visible = self.menu.get_children() or \
+ self._content.get_children()
self._separator.props.visible = visible
- visible = len(self.menu.get_children()) > 0 and \
- len(self._content.get_children()) > 0
+ visible = self.menu.get_children() and \
+ self._content.get_children()
self._menu_content_separator.props.visible = visible
def _update_accept_focus(self):
@@ -382,40 +382,40 @@ class Palette(PaletteWindow):
self._palette_state = state
-class PaletteActionBar(gtk.HButtonBox):
+class PaletteActionBar(Gtk.HButtonBox):
def add_action(self, label, icon_name=None):
- button = gtk.Button(label)
+ button = Gtk.Button(label)
if icon_name:
icon = Icon(icon_name)
button.set_image(icon)
icon.show()
- self.pack_start(button)
+ self.pack_start(button, True, True, 0)
button.show()
-class _Menu(_sugarext.Menu):
+class _Menu(SugarExt.Menu):
__gtype_name__ = 'SugarPaletteMenu'
__gsignals__ = {
- 'item-inserted': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'item-inserted': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, palette):
- _sugarext.Menu.__init__(self)
+ SugarExt.Menu.__init__(self)
self._palette = palette
def do_insert(self, item, position):
- _sugarext.Menu.do_insert(self, item, position)
+ SugarExt.Menu.do_insert(self, item, position)
self.emit('item-inserted')
self.show()
def attach(self, child, left_attach, right_attach,
top_attach, bottom_attach):
- _sugarext.Menu.attach(self, child, left_attach, right_attach,
+ SugarExt.Menu.attach(self, child, left_attach, right_attach,
top_attach, bottom_attach)
self.emit('item-inserted')
self.show()
@@ -424,7 +424,7 @@ class _Menu(_sugarext.Menu):
# Ignore the Menu expose, just do the MenuShell expose to prevent any
# border from being drawn here. A border is drawn by the palette object
# around everything.
- gtk.MenuShell.do_expose_event(self, event)
+ Gtk.MenuShell.do_expose_event(self, event)
def do_grab_notify(self, was_grabbed):
# Ignore grab_notify as the menu would close otherwise
diff --git a/src/sugar3/graphics/palettegroup.py b/src/sugar3/graphics/palettegroup.py
index 3f39163..cf38927 100644
--- a/src/sugar3/graphics/palettegroup.py
+++ b/src/sugar3/graphics/palettegroup.py
@@ -19,7 +19,7 @@
STABLE.
"""
-import gobject
+from gi.repository import GObject
_groups = {}
@@ -40,15 +40,15 @@ def popdown_all():
group.popdown()
-class Group(gobject.GObject):
+class Group(GObject.GObject):
__gsignals__ = {
- 'popup': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'popdown': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'popup': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'popdown': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._up = False
self._palettes = []
self._sig_ids = {}
diff --git a/src/sugar3/graphics/palettewindow.py b/src/sugar3/graphics/palettewindow.py
index 5590cac..1e984fd 100644
--- a/src/sugar3/graphics/palettewindow.py
+++ b/src/sugar3/graphics/palettewindow.py
@@ -23,9 +23,9 @@ STABLE.
import logging
-from gtk import gdk
-import gtk
-import gobject
+from gi.repository import Gdk
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar3.graphics import palettegroup
from sugar3.graphics import animator
@@ -39,22 +39,22 @@ def _calculate_gap(a, b):
gap = True
if a.y + a.height == b.y:
- gap_side = gtk.POS_BOTTOM
+ gap_side = Gtk.PositionType.BOTTOM
elif a.x + a.width == b.x:
- gap_side = gtk.POS_RIGHT
+ gap_side = Gtk.PositionType.RIGHT
elif a.x == b.x + b.width:
- gap_side = gtk.POS_LEFT
+ gap_side = Gtk.PositionType.LEFT
elif a.y == b.y + b.height:
- gap_side = gtk.POS_TOP
+ gap_side = Gtk.PositionType.TOP
else:
gap = False
if gap:
- if gap_side == gtk.POS_BOTTOM or gap_side == gtk.POS_TOP:
+ if gap_side == Gtk.PositionType.BOTTOM or gap_side == Gtk.PositionType.TOP:
gap_start = min(a.width, max(0, b.x - a.x))
gap_size = max(0, min(a.width,
(b.x + b.width) - a.x) - gap_start)
- elif gap_side == gtk.POS_RIGHT or gap_side == gtk.POS_LEFT:
+ elif gap_side == Gtk.PositionType.RIGHT or gap_side == Gtk.PositionType.LEFT:
gap_start = min(a.height, max(0, b.y - a.y))
gap_size = max(0, min(a.height,
(b.y + b.height) - a.y) - gap_start)
@@ -65,11 +65,11 @@ def _calculate_gap(a, b):
return False
-class MouseSpeedDetector(gobject.GObject):
+class MouseSpeedDetector(GObject.GObject):
__gsignals__ = {
- 'motion-slow': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'motion-fast': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'motion-slow': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'motion-fast': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
_MOTION_SLOW = 1
@@ -80,7 +80,7 @@ class MouseSpeedDetector(gobject.GObject):
delay in msec
threshold in pixels (per tick of 'delay' msec)"""
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._threshold = thresh
self._parent = parent
@@ -93,15 +93,15 @@ class MouseSpeedDetector(gobject.GObject):
self.stop()
self._mouse_pos = self._get_mouse_position()
- self._timeout_hid = gobject.timeout_add(self._delay, self._timer_cb)
+ self._timeout_hid = GObject.timeout_add(self._delay, self._timer_cb)
def stop(self):
if self._timeout_hid is not None:
- gobject.source_remove(self._timeout_hid)
+ GObject.source_remove(self._timeout_hid)
self._state = None
def _get_mouse_position(self):
- display = gtk.gdk.display_get_default()
+ display = Gdk.Display.get_default()
screen_, x, y, mask_ = display.get_pointer()
return (x, y)
@@ -128,14 +128,14 @@ class MouseSpeedDetector(gobject.GObject):
return True
-class PaletteWindow(gtk.Window):
+class PaletteWindow(Gtk.Window):
__gtype_name__ = 'SugarPaletteWindow'
__gsignals__ = {
- 'popup': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'popdown': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'activate': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'popup': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'popdown': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'activate': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, **kwargs):
@@ -155,14 +155,14 @@ class PaletteWindow(gtk.Window):
self._popdown_anim = animator.Animator(0.6, 10)
self._popdown_anim.add(_PopdownAnimation(self))
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
self.set_decorated(False)
self.set_resizable(False)
# Just assume xthickness and ythickness are the same
self.set_border_width(self.get_style().xthickness)
- accel_group = gtk.AccelGroup()
+ accel_group = Gtk.AccelGroup()
self.set_data('sugar-accel-group', accel_group)
self.add_accel_group(accel_group)
@@ -199,12 +199,12 @@ class PaletteWindow(gtk.Window):
def get_invoker(self):
return self._invoker
- invoker = gobject.property(type=object,
+ invoker = GObject.property(type=object,
getter=get_invoker,
setter=set_invoker)
def __realize_cb(self, widget):
- self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+ self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
def _mouse_slow_cb(self, widget):
self._mouse_detector.stop()
@@ -240,16 +240,16 @@ class PaletteWindow(gtk.Window):
def get_group_id(self):
return self._group_id
- group_id = gobject.property(type=str,
+ group_id = GObject.property(type=str,
getter=get_group_id,
setter=set_group_id)
def do_size_request(self, requisition):
- gtk.Window.do_size_request(self, requisition)
+ Gtk.Window.do_size_request(self, requisition)
requisition.width = max(requisition.width, style.GRID_CELL_SIZE * 2)
def do_size_allocate(self, allocation):
- gtk.Window.do_size_allocate(self, allocation)
+ Gtk.Window.do_size_allocate(self, allocation)
if self._old_alloc is None or \
self._old_alloc.x != allocation.x or \
@@ -260,7 +260,7 @@ class PaletteWindow(gtk.Window):
# We need to store old allocation because when size_allocate
# is called widget.allocation is already updated.
- # gtk.Window resizing is different from normal containers:
+ # Gtk.Window resizing is different from normal containers:
# the X window is resized, widget.allocation is updated from
# the configure request handler and finally size_allocate is called.
self._old_alloc = allocation
@@ -279,18 +279,18 @@ class PaletteWindow(gtk.Window):
wstyle = self.get_style()
if gap:
- wstyle.paint_box_gap(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_IN, event.area, self, 'palette',
+ wstyle.paint_box_gap(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.IN, event.area, self, 'palette',
0, 0, allocation.width, allocation.height,
gap[0], gap[1], gap[2])
else:
- wstyle.paint_box(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_IN, event.area, self, 'palette',
+ wstyle.paint_box(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.IN, event.area, self, 'palette',
0, 0, allocation.width, allocation.height)
# Fall trough to the container expose handler.
# (Leaving out the window expose handler which redraws everything)
- gtk.Bin.do_expose_event(self, event)
+ Gtk.Bin.do_expose_event(self, event)
def update_position(self):
invoker = self._invoker
@@ -362,13 +362,13 @@ class PaletteWindow(gtk.Window):
self.popup(immediate=True)
def __enter_notify_event_cb(self, widget, event):
- if event.detail != gtk.gdk.NOTIFY_INFERIOR and \
- event.mode == gtk.gdk.CROSSING_NORMAL:
+ if event.detail != Gdk.NOTIFY_INFERIOR and \
+ event.mode == Gdk.CROSSING_NORMAL:
self.on_enter(event)
def __leave_notify_event_cb(self, widget, event):
- if event.detail != gtk.gdk.NOTIFY_INFERIOR and \
- event.mode == gtk.gdk.CROSSING_NORMAL:
+ if event.detail != Gdk.NOTIFY_INFERIOR and \
+ event.mode == Gdk.CROSSING_NORMAL:
self.on_leave(event)
def __show_cb(self, widget):
@@ -393,7 +393,7 @@ class PaletteWindow(gtk.Window):
y = win_y + rectangle.y
width, height = self.size_request()
- return gtk.gdk.Rectangle(x, y, width, height)
+ return (x, y, width, height)
def get_palette_state(self):
return self._palette_state
@@ -429,15 +429,15 @@ class _PopdownAnimation(animator.Animation):
self._palette.popdown(immediate=True)
-class Invoker(gobject.GObject):
+class Invoker(GObject.GObject):
__gtype_name__ = 'SugarPaletteInvoker'
__gsignals__ = {
- 'mouse-enter': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'mouse-leave': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'right-click': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'focus-out': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'mouse-enter': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'mouse-leave': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'right-click': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'focus-out': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
ANCHORED = 0
@@ -449,12 +449,12 @@ class Invoker(gobject.GObject):
LEFT = [(-1.0, 0.0, 0.0, 0.0), (-1.0, -1.0, 0.0, 1.0)]
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self.parent = None
- self._screen_area = gtk.gdk.Rectangle(0, 0, gtk.gdk.screen_width(),
- gtk.gdk.screen_height())
+ self._screen_area = (0, 0, Gdk.Screen.width(),
+ Gdk.Screen.height())
self._position_hint = self.ANCHORED
self._cursor_x = -1
self._cursor_y = -1
@@ -477,7 +477,7 @@ class Invoker(gobject.GObject):
invoker_valign = alignment[3]
if self._cursor_x == -1 or self._cursor_y == -1:
- display = gtk.gdk.display_get_default()
+ display = Gdk.Display.get_default()
screen_, x, y, mask_ = display.get_pointer()
self._cursor_x = x
self._cursor_y = y
@@ -486,7 +486,7 @@ class Invoker(gobject.GObject):
rect = self.get_rect()
else:
dist = style.PALETTE_CURSOR_DISTANCE
- rect = gtk.gdk.Rectangle(self._cursor_x - dist,
+ rect = (self._cursor_x - dist,
self._cursor_y - dist,
dist * 2, dist * 2)
@@ -498,7 +498,7 @@ class Invoker(gobject.GObject):
y = rect.y + rect.height * invoker_valign + \
palette_height * palette_valign
- return gtk.gdk.Rectangle(int(x), int(y),
+ return (int(x), int(y),
palette_width, palette_height)
def _in_screen(self, rect):
@@ -647,9 +647,9 @@ class Invoker(gobject.GObject):
# menu item. We need to postpone destruction of the palette until
# after all signals have propagated from the menu item to the
# palette owner.
- gobject.idle_add(lambda old_palette=self._palette:
+ GObject.idle_add(lambda old_palette=self._palette:
old_palette.destroy(),
- priority=gobject.PRIORITY_LOW)
+ priority=GObject.PRIORITY_LOW)
self._palette = palette
@@ -657,7 +657,7 @@ class Invoker(gobject.GObject):
self._palette.props.invoker = self
self._palette.connect('popdown', self.__palette_popdown_cb)
- palette = gobject.property(
+ palette = GObject.property(
type=object, setter=set_palette, getter=get_palette)
def get_cache_palette(self):
@@ -666,7 +666,7 @@ class Invoker(gobject.GObject):
def set_cache_palette(self, cache_palette):
self._cache_palette = cache_palette
- cache_palette = gobject.property(type=object, setter=set_cache_palette,
+ cache_palette = GObject.property(type=object, setter=set_cache_palette,
getter=get_cache_palette)
"""Whether the invoker will cache the palette after its creation. Defaults
to True.
@@ -723,20 +723,20 @@ class WidgetInvoker(Invoker):
x = 0
y = 0
- if self._widget.flags() & gtk.NO_WINDOW:
+ if self._widget.flags() & Gtk.NO_WINDOW:
x += allocation.x
y += allocation.y
width = allocation.width
height = allocation.height
- return gtk.gdk.Rectangle(x, y, width, height)
+ return (x, y, width, height)
def has_rectangle_gap(self):
return True
def draw_rectangle(self, event, palette):
- if self._widget.flags() & gtk.NO_WINDOW:
+ if self._widget.flags() & Gtk.NO_WINDOW:
x, y = self._widget.allocation.x, self._widget.allocation.y
else:
x = y = 0
@@ -745,15 +745,15 @@ class WidgetInvoker(Invoker):
gap = _calculate_gap(self.get_rect(), palette.get_rect())
if gap:
- wstyle.paint_box_gap(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_IN, event.area, self._widget,
+ wstyle.paint_box_gap(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.IN, event.area, self._widget,
'palette-invoker', x, y,
self._widget.allocation.width,
self._widget.allocation.height,
gap[0], gap[1], gap[2])
else:
- wstyle.paint_box(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_IN, event.area, self._widget,
+ wstyle.paint_box(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.IN, event.area, self._widget,
'palette-invoker', x, y,
self._widget.allocation.width,
self._widget.allocation.height)
@@ -784,7 +784,7 @@ class WidgetInvoker(Invoker):
def _get_widget(self):
return self._widget
- widget = gobject.property(type=object, getter=_get_widget, setter=None)
+ widget = GObject.property(type=object, getter=_get_widget, setter=None)
class ToolInvoker(WidgetInvoker):
@@ -796,14 +796,14 @@ class ToolInvoker(WidgetInvoker):
self.attach_tool(parent)
def attach_tool(self, widget):
- self.attach_widget(widget, widget.child)
+ self.attach_widget(widget, widget.get_child())
def _get_alignments(self):
parent = self._widget.get_parent()
if parent is None:
return WidgetInvoker._get_alignments(self)
- if parent.get_orientation() is gtk.ORIENTATION_HORIZONTAL:
+ if parent.get_orientation() is Gtk.Orientation.HORIZONTAL:
return self.BOTTOM + self.TOP
else:
return self.LEFT + self.RIGHT
@@ -851,14 +851,14 @@ class CellRendererInvoker(Invoker):
x = 0
y = 0
- if self._tree_view.flags() & gtk.NO_WINDOW:
+ if self._tree_view.flags() & Gtk.NO_WINDOW:
x += allocation.x
y += allocation.y
width = allocation.width
height = allocation.height
- return gtk.gdk.Rectangle(x, y, width, height)
+ return (x, y, width, height)
def __motion_notify_event_cb(self, widget, event):
if event.window != widget.get_bin_window():
diff --git a/src/sugar3/graphics/panel.py b/src/sugar3/graphics/panel.py
index 441e7a9..0e3d76a 100644
--- a/src/sugar3/graphics/panel.py
+++ b/src/sugar3/graphics/panel.py
@@ -19,12 +19,12 @@
STABLE.
"""
-import gtk
+from gi.repository import Gtk
-class Panel(gtk.VBox):
+class Panel(Gtk.VBox):
__gtype_name__ = 'SugarPanel'
def __init__(self):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
diff --git a/src/sugar3/graphics/radiopalette.py b/src/sugar3/graphics/radiopalette.py
index 85229df..c2ff4f6 100644
--- a/src/sugar3/graphics/radiopalette.py
+++ b/src/sugar3/graphics/radiopalette.py
@@ -15,7 +15,7 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-import gtk
+from gi.repository import Gtk
from sugar3.graphics.toolbutton import ToolButton
from sugar3.graphics.palette import Palette
@@ -63,7 +63,7 @@ class RadioPalette(Palette):
def __init__(self, **kwargs):
Palette.__init__(self, **kwargs)
- self.button_box = gtk.HBox()
+ self.button_box = Gtk.HBox()
self.button_box.show()
self.set_content(self.button_box)
@@ -75,7 +75,7 @@ class RadioPalette(Palette):
button.show()
button.connect('clicked', self.__clicked_cb)
- self.button_box.pack_start(button, fill=False)
+ self.button_box.pack_start(button, True, False, 0)
button.palette_label = label
if not children:
diff --git a/src/sugar3/graphics/radiotoolbutton.py b/src/sugar3/graphics/radiotoolbutton.py
index 3b02578..8fd01f7 100644
--- a/src/sugar3/graphics/radiotoolbutton.py
+++ b/src/sugar3/graphics/radiotoolbutton.py
@@ -20,15 +20,15 @@
STABLE.
"""
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar3.graphics.icon import Icon
from sugar3.graphics.palette import Palette, ToolInvoker
from sugar3.graphics import toolbutton
-class RadioToolButton(gtk.RadioToolButton):
+class RadioToolButton(Gtk.RadioToolButton):
"""
An implementation of a "push" button.
@@ -42,7 +42,7 @@ class RadioToolButton(gtk.RadioToolButton):
self._xo_color = None
self._palette_invoker = ToolInvoker()
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
self._palette_invoker.attach_tool(self)
@@ -73,12 +73,12 @@ class RadioToolButton(gtk.RadioToolButton):
self._tooltip = tooltip
# Set label, shows up when toolbar overflows
- gtk.RadioToolButton.set_label(self, tooltip)
+ Gtk.RadioToolButton.set_label(self, tooltip)
def get_tooltip(self):
return self._tooltip
- tooltip = gobject.property(type=str, setter=set_tooltip,
+ tooltip = GObject.property(type=str, setter=set_tooltip,
getter=get_tooltip)
def set_accelerator(self, accelerator):
@@ -112,13 +112,13 @@ class RadioToolButton(gtk.RadioToolButton):
"""
return self._accelerator
- accelerator = gobject.property(type=str, setter=set_accelerator,
+ accelerator = GObject.property(type=str, setter=set_accelerator,
getter=get_accelerator)
def set_named_icon(self, named_icon):
icon = Icon(icon_name=named_icon,
xo_color=self._xo_color,
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR)
self.set_icon_widget(icon)
icon.show()
@@ -128,7 +128,7 @@ class RadioToolButton(gtk.RadioToolButton):
else:
return None
- named_icon = gobject.property(type=str, setter=set_named_icon,
+ named_icon = GObject.property(type=str, setter=set_named_icon,
getter=get_named_icon)
def set_xo_color(self, xo_color):
@@ -140,7 +140,7 @@ class RadioToolButton(gtk.RadioToolButton):
def get_xo_color(self):
return self._xo_color
- xo_color = gobject.property(type=object, setter=set_xo_color,
+ xo_color = GObject.property(type=object, setter=set_xo_color,
getter=get_xo_color)
def create_palette(self):
@@ -152,7 +152,7 @@ class RadioToolButton(gtk.RadioToolButton):
def set_palette(self, palette):
self._palette_invoker.palette = palette
- palette = gobject.property(
+ palette = GObject.property(
type=object, setter=set_palette, getter=get_palette)
def get_palette_invoker(self):
@@ -162,7 +162,7 @@ class RadioToolButton(gtk.RadioToolButton):
self._palette_invoker.detach()
self._palette_invoker = palette_invoker
- palette_invoker = gobject.property(
+ palette_invoker = GObject.property(
type=object, setter=set_palette_invoker, getter=get_palette_invoker)
def do_expose_event(self, event):
@@ -172,11 +172,11 @@ class RadioToolButton(gtk.RadioToolButton):
if self.palette and self.palette.is_up():
invoker = self.palette.props.invoker
invoker.draw_rectangle(event, self.palette)
- elif child.state == gtk.STATE_PRELIGHT:
- child.style.paint_box(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_NONE, event.area,
+ elif child.state == Gtk.StateType.PRELIGHT:
+ child.style.paint_box(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.NONE, event.area,
child, 'toolbutton-prelight',
allocation.x, allocation.y,
allocation.width, allocation.height)
- gtk.RadioToolButton.do_expose_event(self, event)
+ Gtk.RadioToolButton.do_expose_event(self, event)
diff --git a/src/sugar3/graphics/style.py b/src/sugar3/graphics/style.py
index 018de13..2a5bfa8 100644
--- a/src/sugar3/graphics/style.py
+++ b/src/sugar3/graphics/style.py
@@ -25,10 +25,10 @@ STABLE.
import os
import logging
-from gtk import gdk
-import gtk
-import pango
-import gconf
+from gi.repository import Gdk
+from gi.repository import Gtk
+from gi.repository import Pango
+from gi.repository import GConf
FOCUS_LINE_WIDTH = 2
@@ -54,7 +54,7 @@ class Font(object):
return self._desc
def get_pango_desc(self):
- return pango.FontDescription(self._desc)
+ return Pango.FontDescription(self._desc)
class Color(object):
@@ -71,7 +71,7 @@ class Color(object):
(int(self._g * 255) << 16) + (int(self._r * 255) << 24)
def get_gdk_color(self):
- return gtk.gdk.Color(int(self._r * 65535), int(self._g * 65535),
+ return Gdk.Color(int(self._r * 65535), int(self._g * 65535),
int(self._b * 65535))
def get_html(self):
@@ -116,7 +116,7 @@ MEDIUM_ICON_SIZE = zoom(55 * 1.5)
LARGE_ICON_SIZE = zoom(55 * 2.0)
XLARGE_ICON_SIZE = zoom(55 * 2.75)
-client = gconf.client_get_default()
+client = GConf.Client.get_default()
FONT_SIZE = client.get_float('/desktop/sugar/font/default_size')
FONT_FACE = client.get_string('/desktop/sugar/font/default_face')
diff --git a/src/sugar3/graphics/toggletoolbutton.py b/src/sugar3/graphics/toggletoolbutton.py
index ea33c9d..94cc6ae 100644
--- a/src/sugar3/graphics/toggletoolbutton.py
+++ b/src/sugar3/graphics/toggletoolbutton.py
@@ -19,19 +19,19 @@
STABLE.
"""
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from sugar3.graphics.icon import Icon
from sugar3.graphics.palette import Palette, ToolInvoker
-class ToggleToolButton(gtk.ToggleToolButton):
+class ToggleToolButton(Gtk.ToggleToolButton):
__gtype_name__ = 'SugarToggleToolButton'
def __init__(self, named_icon=None):
- gtk.ToggleToolButton.__init__(self)
+ GObject.GObject.__init__(self)
self._palette_invoker = ToolInvoker(self)
self.set_named_icon(named_icon)
@@ -56,7 +56,7 @@ class ToggleToolButton(gtk.ToggleToolButton):
def set_palette(self, palette):
self._palette_invoker.palette = palette
- palette = gobject.property(
+ palette = GObject.property(
type=object, setter=set_palette, getter=get_palette)
def get_palette_invoker(self):
@@ -66,7 +66,7 @@ class ToggleToolButton(gtk.ToggleToolButton):
self._palette_invoker.detach()
self._palette_invoker = palette_invoker
- palette_invoker = gobject.property(
+ palette_invoker = GObject.property(
type=object, setter=set_palette_invoker, getter=get_palette_invoker)
def set_tooltip(self, text):
@@ -79,13 +79,13 @@ class ToggleToolButton(gtk.ToggleToolButton):
if self.palette and self.palette.is_up():
invoker = self.palette.props.invoker
invoker.draw_rectangle(event, self.palette)
- elif child.state == gtk.STATE_PRELIGHT:
- child.style.paint_box(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_NONE, event.area,
+ elif child.state == Gtk.StateType.PRELIGHT:
+ child.style.paint_box(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.NONE, event.area,
child, 'toolbutton-prelight',
allocation.x, allocation.y,
allocation.width, allocation.height)
- gtk.ToggleToolButton.do_expose_event(self, event)
+ Gtk.ToggleToolButton.do_expose_event(self, event)
palette = property(get_palette, set_palette)
diff --git a/src/sugar3/graphics/toolbarbox.py b/src/sugar3/graphics/toolbarbox.py
index e47dcf4..c8ec311 100644
--- a/src/sugar3/graphics/toolbarbox.py
+++ b/src/sugar3/graphics/toolbarbox.py
@@ -15,8 +15,8 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar3.graphics import style
from sugar3.graphics.palette import PaletteWindow, ToolInvoker
@@ -42,7 +42,7 @@ class ToolbarButton(ToolButton):
if hasattr(self.parent, 'owner'):
if self.page_widget and previous_toplevel is None:
self._unparent()
- self.parent.owner.pack_start(self.page_widget)
+ self.parent.owner.pack_start(self.page_widget, True, True, 0)
self.set_expanded(False)
def get_toolbar_box(self):
@@ -68,7 +68,7 @@ class ToolbarButton(ToolButton):
self.props.palette = _ToolbarPalette(invoker=ToolInvoker(self))
self._move_page_to_palette()
- page = gobject.property(type=object, getter=get_page, setter=set_page)
+ page = GObject.property(type=object, getter=get_page, setter=set_page)
def is_in_palette(self):
return self.page is not None and \
@@ -103,9 +103,9 @@ class ToolbarButton(ToolButton):
self._unparent()
- self.modify_bg(gtk.STATE_NORMAL, box.background)
+ self.modify_bg(Gtk.StateType.NORMAL, box.background)
_setup_page(self.page_widget, box.background, box.props.padding)
- box.pack_start(self.page_widget)
+ box.pack_start(self.page_widget, True, True, 0)
def _move_page_to_palette(self):
if self.is_in_palette():
@@ -125,43 +125,43 @@ class ToolbarButton(ToolButton):
if not self.is_expanded() or self.props.palette is not None and \
self.props.palette.is_up():
ToolButton.do_expose_event(self, event)
- _paint_arrow(self, event, gtk.ARROW_DOWN)
+ _paint_arrow(self, event, Gtk.ArrowType.DOWN)
return
alloc = self.allocation
self.get_style().paint_box(event.window,
- gtk.STATE_NORMAL, gtk.SHADOW_IN, event.area, self,
+ Gtk.StateType.NORMAL, Gtk.ShadowType.IN, event.area, self,
'palette-invoker', alloc.x, 0,
alloc.width, alloc.height + style.FOCUS_LINE_WIDTH)
- if self.child.state != gtk.STATE_PRELIGHT:
+ if self.get_child().state != Gtk.StateType.PRELIGHT:
self.get_style().paint_box(event.window,
- gtk.STATE_NORMAL, gtk.SHADOW_NONE, event.area, self, None,
+ Gtk.StateType.NORMAL, Gtk.ShadowType.NONE, event.area, self, None,
alloc.x + style.FOCUS_LINE_WIDTH, style.FOCUS_LINE_WIDTH,
alloc.width - style.FOCUS_LINE_WIDTH * 2, alloc.height)
- gtk.ToolButton.do_expose_event(self, event)
- _paint_arrow(self, event, gtk.ARROW_UP)
+ Gtk.ToolButton.do_expose_event(self, event)
+ _paint_arrow(self, event, Gtk.ArrowType.UP)
-class ToolbarBox(gtk.VBox):
+class ToolbarBox(Gtk.VBox):
def __init__(self, padding=style.TOOLBOX_HORIZONTAL_PADDING):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
self._expanded_button_index = -1
self.background = None
- self._toolbar = gtk.Toolbar()
+ self._toolbar = Gtk.Toolbar()
self._toolbar.owner = self
self._toolbar.connect('remove', self.__remove_cb)
self._toolbar_widget, self._toolbar_alignment = \
- _embed_page(gtk.EventBox, self._toolbar)
- self.pack_start(self._toolbar_widget)
+ _embed_page(Gtk.EventBox, self._toolbar)
+ self.pack_start(self._toolbar_widget, True, True, 0)
self.props.padding = padding
- self.modify_bg(gtk.STATE_NORMAL,
+ self.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_TOOLBAR_GREY.get_gdk_color())
def get_toolbar(self):
@@ -188,11 +188,11 @@ class ToolbarBox(gtk.VBox):
def set_padding(self, pad):
self._toolbar_alignment.set_padding(0, 0, pad, pad)
- padding = gobject.property(type=object,
+ padding = GObject.property(type=object,
getter=get_padding, setter=set_padding)
def modify_bg(self, state, color):
- if state == gtk.STATE_NORMAL:
+ if state == Gtk.StateType.NORMAL:
self.background = color
self._toolbar_widget.modify_bg(state, color)
self.toolbar.modify_bg(state, color)
@@ -246,9 +246,9 @@ class _ToolbarPalette(PaletteWindow):
self.popdown()
def do_size_request(self, requisition):
- gtk.Window.do_size_request(self, requisition)
+ Gtk.Window.do_size_request(self, requisition)
requisition.width = max(requisition.width,
- gtk.gdk.screen_width())
+ Gdk.Screen.width())
def popup(self, immediate=False):
button = self.expanded_button
@@ -264,10 +264,10 @@ class _ToolbarPalette(PaletteWindow):
self.popdown(immediate=True)
-class _Box(gtk.EventBox):
+class _Box(Gtk.EventBox):
def __init__(self):
- gtk.EventBox.__init__(self)
+ GObject.GObject.__init__(self)
self.connect('expose-event', self.do_expose_event)
self.set_app_paintable(True)
@@ -276,12 +276,12 @@ class _Box(gtk.EventBox):
return
alloc = self.parent.expanded_button.allocation
self.get_style().paint_box(event.window,
- gtk.STATE_NORMAL, gtk.SHADOW_IN, event.area, self,
+ Gtk.StateType.NORMAL, Gtk.ShadowType.IN, event.area, self,
'palette-invoker', -style.FOCUS_LINE_WIDTH, 0,
self.allocation.width + style.FOCUS_LINE_WIDTH * 2,
self.allocation.height + style.FOCUS_LINE_WIDTH)
self.get_style().paint_box(event.window,
- gtk.STATE_NORMAL, gtk.SHADOW_NONE, event.area, self, None,
+ Gtk.StateType.NORMAL, Gtk.ShadowType.NONE, event.area, self, None,
alloc.x + style.FOCUS_LINE_WIDTH, 0,
alloc.width - style.FOCUS_LINE_WIDTH * 2,
style.FOCUS_LINE_WIDTH)
@@ -289,27 +289,27 @@ class _Box(gtk.EventBox):
def _setup_page(page_widget, color, hpad):
vpad = style.FOCUS_LINE_WIDTH
- page_widget.child.set_padding(vpad, vpad, hpad, hpad)
+ page_widget.get_child().set_padding(vpad, vpad, hpad, hpad)
page = _get_embedded_page(page_widget)
- page.modify_bg(gtk.STATE_NORMAL, color)
- if isinstance(page, gtk.Container):
+ page.modify_bg(Gtk.StateType.NORMAL, color)
+ if isinstance(page, Gtk.Container):
for i in page.get_children():
- i.modify_bg(gtk.STATE_INSENSITIVE, color)
+ i.modify_bg(Gtk.StateType.INSENSITIVE, color)
- page_widget.modify_bg(gtk.STATE_NORMAL, color)
- page_widget.modify_bg(gtk.STATE_PRELIGHT, color)
+ page_widget.modify_bg(Gtk.StateType.NORMAL, color)
+ page_widget.modify_bg(Gtk.StateType.PRELIGHT, color)
def _embed_page(box_class, page):
page.show()
- alignment = gtk.Alignment(0.0, 0.0, 1.0, 1.0)
+ alignment = Gtk.Alignment.new(0.0, 0.0, 1.0, 1.0)
alignment.add(page)
alignment.show()
page_widget = box_class()
- page_widget.modify_bg(gtk.STATE_ACTIVE,
+ page_widget.modify_bg(Gtk.StateType.ACTIVE,
style.COLOR_BUTTON_GREY.get_gdk_color())
page_widget.add(alignment)
page_widget.show()
@@ -318,7 +318,7 @@ def _embed_page(box_class, page):
def _get_embedded_page(page_widget):
- return page_widget.child.child
+ return page_widget.get_child().child
def _paint_arrow(widget, event, arrow_type):
@@ -327,6 +327,6 @@ def _paint_arrow(widget, event, arrow_type):
y = alloc.y + alloc.height - int(style.TOOLBAR_ARROW_SIZE * .85)
widget.get_style().paint_arrow(event.window,
- gtk.STATE_NORMAL, gtk.SHADOW_NONE, event.area, widget,
+ Gtk.StateType.NORMAL, Gtk.ShadowType.NONE, event.area, widget,
None, arrow_type, True,
x, y, style.TOOLBAR_ARROW_SIZE, style.TOOLBAR_ARROW_SIZE)
diff --git a/src/sugar3/graphics/toolbox.py b/src/sugar3/graphics/toolbox.py
index 865a9f1..e67ff16 100644
--- a/src/sugar3/graphics/toolbox.py
+++ b/src/sugar3/graphics/toolbox.py
@@ -19,35 +19,35 @@
STABLE.
"""
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar3.graphics import style
-class Toolbox(gtk.VBox):
+class Toolbox(Gtk.VBox):
__gtype_name__ = 'SugarToolbox'
__gsignals__ = {
- 'current-toolbar-changed': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE, ([int])),
+ 'current-toolbar-changed': (GObject.SignalFlags.RUN_FIRST,
+ None, ([int])),
}
def __init__(self):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
- self._notebook = gtk.Notebook()
- self._notebook.set_tab_pos(gtk.POS_BOTTOM)
+ self._notebook = Gtk.Notebook()
+ self._notebook.set_tab_pos(Gtk.PositionType.BOTTOM)
self._notebook.set_show_border(False)
self._notebook.set_show_tabs(False)
self._notebook.props.tab_vborder = style.TOOLBOX_TAB_VBORDER
self._notebook.props.tab_hborder = style.TOOLBOX_TAB_HBORDER
- self.pack_start(self._notebook)
+ self.pack_start(self._notebook, True, True, 0)
self._notebook.show()
- self._separator = gtk.HSeparator()
- self._separator.modify_bg(gtk.STATE_NORMAL,
+ self._separator = Gtk.HSeparator()
+ self._separator.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_PANEL_GREY.get_gdk_color())
self._separator.set_size_request(1, style.TOOLBOX_SEPARATOR_HEIGHT)
self.pack_start(self._separator, False)
@@ -58,14 +58,14 @@ class Toolbox(gtk.VBox):
self.emit('current-toolbar-changed', notebook.props.page)
def add_toolbar(self, name, toolbar):
- label = gtk.Label(name)
+ label = Gtk.Label(label=name)
width, height_ = label.size_request()
label.set_size_request(max(width, style.TOOLBOX_TAB_LABEL_WIDTH), -1)
label.set_alignment(0.0, 0.5)
- event_box = gtk.EventBox()
+ event_box = Gtk.EventBox()
- alignment = gtk.Alignment(0.0, 0.0, 1.0, 1.0)
+ alignment = Gtk.Alignment.new(0.0, 0.0, 1.0, 1.0)
alignment.set_padding(0, 0, style.TOOLBOX_HORIZONTAL_PADDING,
style.TOOLBOX_HORIZONTAL_PADDING)
diff --git a/src/sugar3/graphics/toolbutton.py b/src/sugar3/graphics/toolbutton.py
index 249de9d..7ca13d8 100644
--- a/src/sugar3/graphics/toolbutton.py
+++ b/src/sugar3/graphics/toolbutton.py
@@ -22,8 +22,8 @@ STABLE.
import logging
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar3.graphics.icon import Icon
from sugar3.graphics.palette import Palette, ToolInvoker
@@ -31,21 +31,21 @@ from sugar3.graphics.palette import Palette, ToolInvoker
def _add_accelerator(tool_button):
if not tool_button.props.accelerator or not tool_button.get_toplevel() or \
- not tool_button.child:
+ not tool_button.get_child():
return
# TODO: should we remove the accelerator from the prev top level?
accel_group = tool_button.get_toplevel().get_data('sugar-accel-group')
if not accel_group:
- logging.warning('No gtk.AccelGroup in the top level window.')
+ logging.warning('No Gtk.AccelGroup in the top level window.')
return
- keyval, mask = gtk.accelerator_parse(tool_button.props.accelerator)
- # the accelerator needs to be set at the child, so the gtk.AccelLabel
+ keyval, mask = Gtk.accelerator_parse(tool_button.props.accelerator)
+ # the accelerator needs to be set at the child, so the Gtk.AccelLabel
# in the palette can pick it up.
- tool_button.child.add_accelerator('clicked', accel_group, keyval, mask,
- gtk.ACCEL_LOCKED | gtk.ACCEL_VISIBLE)
+ tool_button.get_child().add_accelerator('clicked', accel_group, keyval, mask,
+ Gtk.AccelFlags.LOCKED | Gtk.AccelFlags.VISIBLE)
def _hierarchy_changed_cb(tool_button, previous_toplevel):
@@ -57,7 +57,7 @@ def setup_accelerator(tool_button):
tool_button.connect('hierarchy-changed', _hierarchy_changed_cb)
-class ToolButton(gtk.ToolButton):
+class ToolButton(Gtk.ToolButton):
__gtype_name__ = 'SugarToolButton'
@@ -66,7 +66,7 @@ class ToolButton(gtk.ToolButton):
self._tooltip = None
self._palette_invoker = ToolInvoker()
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
self._palette_invoker.attach_tool(self)
@@ -97,12 +97,12 @@ class ToolButton(gtk.ToolButton):
self._tooltip = tooltip
# Set label, shows up when toolbar overflows
- gtk.ToolButton.set_label(self, tooltip)
+ Gtk.ToolButton.set_label(self, tooltip)
def get_tooltip(self):
return self._tooltip
- tooltip = gobject.property(type=str, setter=set_tooltip,
+ tooltip = GObject.property(type=str, setter=set_tooltip,
getter=get_tooltip)
def set_accelerator(self, accelerator):
@@ -112,7 +112,7 @@ class ToolButton(gtk.ToolButton):
def get_accelerator(self):
return self._accelerator
- accelerator = gobject.property(type=str, setter=set_accelerator,
+ accelerator = GObject.property(type=str, setter=set_accelerator,
getter=get_accelerator)
def set_icon(self, icon_name):
@@ -129,7 +129,7 @@ class ToolButton(gtk.ToolButton):
def set_palette(self, palette):
self._palette_invoker.palette = palette
- palette = gobject.property(
+ palette = GObject.property(
type=object, setter=set_palette, getter=get_palette)
def get_palette_invoker(self):
@@ -139,7 +139,7 @@ class ToolButton(gtk.ToolButton):
self._palette_invoker.detach()
self._palette_invoker = palette_invoker
- palette_invoker = gobject.property(
+ palette_invoker = GObject.property(
type=object, setter=set_palette_invoker, getter=get_palette_invoker)
def do_expose_event(self, event):
@@ -148,14 +148,14 @@ class ToolButton(gtk.ToolButton):
if self.palette and self.palette.is_up():
invoker = self.palette.props.invoker
invoker.draw_rectangle(event, self.palette)
- elif child.state == gtk.STATE_PRELIGHT:
- child.style.paint_box(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_NONE, event.area,
+ elif child.state == Gtk.StateType.PRELIGHT:
+ child.style.paint_box(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.NONE, event.area,
child, 'toolbutton-prelight',
allocation.x, allocation.y,
allocation.width, allocation.height)
- gtk.ToolButton.do_expose_event(self, event)
+ Gtk.ToolButton.do_expose_event(self, event)
def do_clicked(self):
if self.palette:
diff --git a/src/sugar3/graphics/toolcombobox.py b/src/sugar3/graphics/toolcombobox.py
index 4b60b38..90bd1f4 100644
--- a/src/sugar3/graphics/toolcombobox.py
+++ b/src/sugar3/graphics/toolcombobox.py
@@ -19,30 +19,30 @@
STABLE.
"""
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar3.graphics.combobox import ComboBox
from sugar3.graphics import style
-class ToolComboBox(gtk.ToolItem):
+class ToolComboBox(Gtk.ToolItem):
__gproperties__ = {
- 'label-text': (str, None, None, None, gobject.PARAM_WRITABLE),
+ 'label-text': (str, None, None, None, GObject.PARAM_WRITABLE),
}
def __init__(self, combo=None, **kwargs):
self.label = None
self._label_text = ''
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
self.set_border_width(style.DEFAULT_PADDING)
- hbox = gtk.HBox(False, style.DEFAULT_SPACING)
+ hbox = Gtk.HBox(False, style.DEFAULT_SPACING)
- self.label = gtk.Label(self._label_text)
+ self.label = Gtk.Label(label=self._label_text)
hbox.pack_start(self.label, False, False, 0)
self.label.show()
@@ -51,7 +51,7 @@ class ToolComboBox(gtk.ToolItem):
else:
self.combo = ComboBox()
- hbox.pack_start(self.combo)
+ hbox.pack_start(self.combo, True, True, 0)
self.combo.show()
self.add(hbox)
diff --git a/src/sugar3/graphics/tray.py b/src/sugar3/graphics/tray.py
index de60317..9359017 100644
--- a/src/sugar3/graphics/tray.py
+++ b/src/sugar3/graphics/tray.py
@@ -19,8 +19,8 @@
STABLE.
"""
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from sugar3.graphics import style
from sugar3.graphics.palette import ToolInvoker
@@ -32,12 +32,12 @@ _PREVIOUS_PAGE = 0
_NEXT_PAGE = 1
-class _TrayViewport(gtk.Viewport):
+class _TrayViewport(Gtk.Viewport):
__gproperties__ = {
- 'scrollable': (bool, None, None, False, gobject.PARAM_READABLE),
- 'can-scroll-prev': (bool, None, None, False, gobject.PARAM_READABLE),
- 'can-scroll-next': (bool, None, None, False, gobject.PARAM_READABLE),
+ 'scrollable': (bool, None, None, False, GObject.PARAM_READABLE),
+ 'can-scroll-prev': (bool, None, None, False, GObject.PARAM_READABLE),
+ 'can-scroll-next': (bool, None, None, False, GObject.PARAM_READABLE),
}
def __init__(self, orientation):
@@ -46,11 +46,11 @@ class _TrayViewport(gtk.Viewport):
self._can_scroll_next = False
self._can_scroll_prev = False
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
- self.set_shadow_type(gtk.SHADOW_NONE)
+ self.set_shadow_type(Gtk.ShadowType.NONE)
- self.traybar = gtk.Toolbar()
+ self.traybar = Gtk.Toolbar()
self.traybar.set_orientation(orientation)
self.traybar.set_show_arrow(False)
self.add(self.traybar)
@@ -58,7 +58,7 @@ class _TrayViewport(gtk.Viewport):
self.connect('size_allocate', self._size_allocate_cb)
- if self.orientation == gtk.ORIENTATION_HORIZONTAL:
+ if self.orientation == Gtk.Orientation.HORIZONTAL:
adj = self.get_hadjustment()
else:
adj = self.get_vadjustment()
@@ -76,7 +76,7 @@ class _TrayViewport(gtk.Viewport):
assert item in self.traybar.get_children()
# Get the allocation, and make sure that it is visible
- if self.orientation == gtk.ORIENTATION_HORIZONTAL:
+ if self.orientation == Gtk.Orientation.HORIZONTAL:
adj = self.get_hadjustment()
start = item.allocation.x
stop = item.allocation.x + item.allocation.width
@@ -92,7 +92,7 @@ class _TrayViewport(gtk.Viewport):
def _scroll_next(self):
allocation = self.get_allocation()
- if self.orientation == gtk.ORIENTATION_HORIZONTAL:
+ if self.orientation == Gtk.Orientation.HORIZONTAL:
adj = self.get_hadjustment()
new_value = adj.value + allocation.width
adj.value = min(new_value, adj.upper - allocation.width)
@@ -103,7 +103,7 @@ class _TrayViewport(gtk.Viewport):
def _scroll_previous(self):
allocation = self.get_allocation()
- if self.orientation == gtk.ORIENTATION_HORIZONTAL:
+ if self.orientation == Gtk.Orientation.HORIZONTAL:
adj = self.get_hadjustment()
new_value = adj.value - allocation.width
adj.value = max(adj.lower, new_value)
@@ -114,7 +114,7 @@ class _TrayViewport(gtk.Viewport):
def do_size_request(self, requisition):
child_requisition = self.get_child().size_request()
- if self.orientation == gtk.ORIENTATION_HORIZONTAL:
+ if self.orientation == Gtk.Orientation.HORIZONTAL:
requisition[0] = 0
requisition[1] = child_requisition[1]
else:
@@ -131,7 +131,7 @@ class _TrayViewport(gtk.Viewport):
def _size_allocate_cb(self, viewport, allocation):
bar_requisition = self.traybar.get_child_requisition()
- if self.orientation == gtk.ORIENTATION_HORIZONTAL:
+ if self.orientation == Gtk.Orientation.HORIZONTAL:
scrollable = bar_requisition[0] > allocation.width
else:
scrollable = bar_requisition[1] > allocation.height
@@ -171,10 +171,10 @@ class _TrayScrollButton(ToolButton):
self.set_size_request(style.GRID_CELL_SIZE, style.GRID_CELL_SIZE)
self.icon = Icon(icon_name=icon_name,
- icon_size=gtk.ICON_SIZE_SMALL_TOOLBAR)
- # The alignment is a hack to work around gtk.ToolButton code
- # that sets the icon_size when the icon_widget is a gtk.Image
- alignment = gtk.Alignment(0.5, 0.5)
+ icon_size=Gtk.IconSize.SMALL_TOOLBAR)
+ # The alignment is a hack to work around Gtk.ToolButton code
+ # that sets the icon_size when the icon_widget is a Gtk.Image
+ alignment = Gtk.Alignment.new(0.5, 0.5)
alignment.add(self.icon)
self.set_icon_widget(alignment)
alignment.show_all()
@@ -216,27 +216,27 @@ ALIGN_TO_START = 0
ALIGN_TO_END = 1
-class HTray(gtk.HBox):
+class HTray(Gtk.HBox):
__gtype_name__ = 'SugarHTray'
__gproperties__ = {
'align': (int, None, None, 0, 1, ALIGN_TO_START,
- gobject.PARAM_READWRITE | gobject.PARAM_CONSTRUCT_ONLY),
- 'drag-active': (bool, None, None, False, gobject.PARAM_READWRITE),
+ GObject.PARAM_READWRITE | GObject.PARAM_CONSTRUCT_ONLY),
+ 'drag-active': (bool, None, None, False, GObject.PARAM_READWRITE),
}
def __init__(self, **kwargs):
self._drag_active = False
self.align = ALIGN_TO_START
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
scroll_left = _TrayScrollButton('go-left', _PREVIOUS_PAGE)
self.pack_start(scroll_left, False, False, 0)
- self._viewport = _TrayViewport(gtk.ORIENTATION_HORIZONTAL)
- self.pack_start(self._viewport)
+ self._viewport = _TrayViewport(Gtk.Orientation.HORIZONTAL)
+ self.pack_start(self._viewport, True, True, 0)
self._viewport.show()
scroll_right = _TrayScrollButton('go-right', _NEXT_PAGE)
@@ -246,7 +246,7 @@ class HTray(gtk.HBox):
scroll_right.viewport = self._viewport
if self.align == ALIGN_TO_END:
- spacer = gtk.SeparatorToolItem()
+ spacer = Gtk.SeparatorToolItem()
spacer.set_size_request(0, 0)
spacer.props.draw = False
spacer.set_expand(True)
@@ -273,10 +273,10 @@ class HTray(gtk.HBox):
if self._drag_active != active:
self._drag_active = active
if self._drag_active:
- self._viewport.traybar.modify_bg(gtk.STATE_NORMAL,
+ self._viewport.traybar.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_BLACK.get_gdk_color())
else:
- self._viewport.traybar.modify_bg(gtk.STATE_NORMAL, None)
+ self._viewport.traybar.modify_bg(Gtk.StateType.NORMAL, None)
def get_children(self):
children = self._viewport.traybar.get_children()[:]
@@ -302,27 +302,27 @@ class HTray(gtk.HBox):
self._viewport.scroll_to_item(item)
-class VTray(gtk.VBox):
+class VTray(Gtk.VBox):
__gtype_name__ = 'SugarVTray'
__gproperties__ = {
'align': (int, None, None, 0, 1, ALIGN_TO_START,
- gobject.PARAM_READWRITE | gobject.PARAM_CONSTRUCT_ONLY),
- 'drag-active': (bool, None, None, False, gobject.PARAM_READWRITE),
+ GObject.PARAM_READWRITE | GObject.PARAM_CONSTRUCT_ONLY),
+ 'drag-active': (bool, None, None, False, GObject.PARAM_READWRITE),
}
def __init__(self, **kwargs):
self._drag_active = False
self.align = ALIGN_TO_START
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
scroll_up = _TrayScrollButton('go-up', _PREVIOUS_PAGE)
self.pack_start(scroll_up, False, False, 0)
- self._viewport = _TrayViewport(gtk.ORIENTATION_VERTICAL)
- self.pack_start(self._viewport)
+ self._viewport = _TrayViewport(Gtk.Orientation.VERTICAL)
+ self.pack_start(self._viewport, True, True, 0)
self._viewport.show()
scroll_down = _TrayScrollButton('go-down', _NEXT_PAGE)
@@ -332,7 +332,7 @@ class VTray(gtk.VBox):
scroll_down.viewport = self._viewport
if self.align == ALIGN_TO_END:
- spacer = gtk.SeparatorToolItem()
+ spacer = Gtk.SeparatorToolItem()
spacer.set_size_request(0, 0)
spacer.props.draw = False
spacer.set_expand(True)
@@ -359,10 +359,10 @@ class VTray(gtk.VBox):
if self._drag_active != active:
self._drag_active = active
if self._drag_active:
- self._viewport.traybar.modify_bg(gtk.STATE_NORMAL,
+ self._viewport.traybar.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_BLACK.get_gdk_color())
else:
- self._viewport.traybar.modify_bg(gtk.STATE_NORMAL, None)
+ self._viewport.traybar.modify_bg(Gtk.StateType.NORMAL, None)
def get_children(self):
children = self._viewport.traybar.get_children()[:]
@@ -394,17 +394,17 @@ class TrayButton(ToolButton):
ToolButton.__init__(self, **kwargs)
-class _IconWidget(gtk.EventBox):
+class _IconWidget(Gtk.EventBox):
__gtype_name__ = 'SugarTrayIconWidget'
def __init__(self, icon_name=None, xo_color=None):
- gtk.EventBox.__init__(self)
+ GObject.GObject.__init__(self)
self.set_app_paintable(True)
self._icon = Icon(icon_name=icon_name, xo_color=xo_color,
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR)
self.add(self._icon)
self._icon.show()
@@ -414,18 +414,18 @@ class _IconWidget(gtk.EventBox):
invoker = palette.props.invoker
invoker.draw_rectangle(event, palette)
- gtk.EventBox.do_expose_event(self, event)
+ Gtk.EventBox.do_expose_event(self, event)
def get_icon(self):
return self._icon
-class TrayIcon(gtk.ToolItem):
+class TrayIcon(Gtk.ToolItem):
__gtype_name__ = 'SugarTrayIcon'
def __init__(self, icon_name=None, xo_color=None):
- gtk.ToolItem.__init__(self)
+ Gtk.ToolItem.__init__(self)
self._icon_widget = _IconWidget(icon_name, xo_color)
self.add(self._icon_widget)
@@ -450,7 +450,7 @@ class TrayIcon(gtk.ToolItem):
def set_palette(self, palette):
self._palette_invoker.palette = palette
- palette = gobject.property(
+ palette = GObject.property(
type=object, setter=set_palette, getter=get_palette)
def get_palette_invoker(self):
@@ -460,7 +460,7 @@ class TrayIcon(gtk.ToolItem):
self._palette_invoker.detach()
self._palette_invoker = palette_invoker
- palette_invoker = gobject.property(
+ palette_invoker = GObject.property(
type=object, setter=set_palette_invoker, getter=get_palette_invoker)
def get_icon(self):
diff --git a/src/sugar3/graphics/window.py b/src/sugar3/graphics/window.py
index 94bc768..f9604af 100644
--- a/src/sugar3/graphics/window.py
+++ b/src/sugar3/graphics/window.py
@@ -20,9 +20,9 @@
STABLE.
"""
-import gobject
-from gtk import gdk
-import gtk
+from gi.repository import GObject
+from gi.repository import Gdk
+from gi.repository import Gtk
import warnings
from sugar3.graphics.icon import Icon
@@ -32,21 +32,21 @@ from sugar3.graphics import palettegroup
_UNFULLSCREEN_BUTTON_VISIBILITY_TIMEOUT = 2
-class UnfullscreenButton(gtk.Window):
+class UnfullscreenButton(Gtk.Window):
def __init__(self):
- gtk.Window.__init__(self)
+ GObject.GObject.__init__(self)
self.set_decorated(False)
self.set_resizable(False)
- self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+ self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
self.set_border_width(0)
self.props.accept_focus = False
#Setup estimate of width, height
- w, h = gtk.icon_size_lookup(gtk.ICON_SIZE_LARGE_TOOLBAR)
+ w, h = Gtk.icon_size_lookup(Gtk.IconSize.LARGE_TOOLBAR)
self._width = w
self._height = h
@@ -55,11 +55,11 @@ class UnfullscreenButton(gtk.Window):
screen = self.get_screen()
screen.connect('size-changed', self._screen_size_changed_cb)
- self._button = gtk.Button()
- self._button.set_relief(gtk.RELIEF_NONE)
+ self._button = Gtk.Button()
+ self._button.set_relief(Gtk.ReliefStyle.NONE)
self._icon = Icon(icon_name='view-return',
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR)
self._icon.show()
self._button.add(self._icon)
@@ -70,7 +70,7 @@ class UnfullscreenButton(gtk.Window):
self._button.connect('button-press-event', cb)
def _reposition(self):
- x = gtk.gdk.screen_width() - self._width
+ x = Gdk.Screen.width() - self._width
self.move(x, 0)
def _size_request_cb(self, widget, req):
@@ -82,12 +82,12 @@ class UnfullscreenButton(gtk.Window):
self._reposition()
-class Window(gtk.Window):
+class Window(Gtk.Window):
def __init__(self, **args):
self._enable_fullscreen_mode = True
- gtk.Window.__init__(self, **args)
+ GObject.GObject.__init__(self, **args)
self.set_decorated(False)
self.maximize()
@@ -99,13 +99,13 @@ class Window(gtk.Window):
self._canvas = None
self.tray = None
- self.__vbox = gtk.VBox()
- self.__hbox = gtk.HBox()
- self.__vbox.pack_start(self.__hbox)
+ self.__vbox = Gtk.VBox()
+ self.__hbox = Gtk.HBox()
+ self.__vbox.pack_start(self.__hbox, True, True, 0)
self.__hbox.show()
- self.add_events(gtk.gdk.POINTER_MOTION_HINT_MASK
- | gtk.gdk.POINTER_MOTION_MASK)
+ self.add_events(Gdk.EventMask.POINTER_MOTION_HINT_MASK
+ | Gdk.EventMask.POINTER_MOTION_MASK)
self.connect('motion-notify-event', self.__motion_notify_cb)
self.add(self.__vbox)
@@ -128,9 +128,9 @@ class Window(gtk.Window):
if self.window is None:
self.show()
return
- timestamp = gtk.get_current_event_time()
+ timestamp = Gtk.get_current_event_time()
if not timestamp:
- timestamp = gtk.gdk.x11_get_server_time(self.window)
+ timestamp = GdkX11.get_server_time(self.window)
self.window.focus(timestamp)
def fullscreen(self):
@@ -146,11 +146,11 @@ class Window(gtk.Window):
self._unfullscreen_button.show()
if self._unfullscreen_button_timeout_id is not None:
- gobject.source_remove(self._unfullscreen_button_timeout_id)
+ GObject.source_remove(self._unfullscreen_button_timeout_id)
self._unfullscreen_button_timeout_id = None
self._unfullscreen_button_timeout_id = \
- gobject.timeout_add_seconds( \
+ GObject.timeout_add_seconds( \
_UNFULLSCREEN_BUTTON_VISIBILITY_TIMEOUT, \
self.__unfullscreen_button_timeout_cb)
@@ -166,7 +166,7 @@ class Window(gtk.Window):
self._unfullscreen_button.hide()
if self._unfullscreen_button_timeout_id:
- gobject.source_remove(self._unfullscreen_button_timeout_id)
+ GObject.source_remove(self._unfullscreen_button_timeout_id)
self._unfullscreen_button_timeout_id = None
def set_canvas(self, canvas):
@@ -174,7 +174,7 @@ class Window(gtk.Window):
self.__hbox.remove(self._canvas)
if canvas:
- self.__hbox.pack_start(canvas)
+ self.__hbox.pack_start(canvas, True, True, 0)
self._canvas = canvas
self.__vbox.set_focus_child(self._canvas)
@@ -204,11 +204,11 @@ class Window(gtk.Window):
box = self.tray.get_parent()
box.remove(self.tray)
- if position == gtk.POS_LEFT:
+ if position == Gtk.PositionType.LEFT:
self.__hbox.pack_start(tray, False)
- elif position == gtk.POS_RIGHT:
+ elif position == Gtk.PositionType.RIGHT:
self.__hbox.pack_end(tray, False)
- elif position == gtk.POS_BOTTOM:
+ elif position == Gtk.PositionType.BOTTOM:
self.__vbox.pack_end(tray, False)
self.tray = tray
@@ -236,13 +236,13 @@ class Window(gtk.Window):
self.__vbox.reorder_child(self._alert[0], 0)
def __window_realize_cb(self, window):
- group = gtk.Window()
+ group = Gtk.Window()
group.realize()
window.window.set_group(group.window)
def __key_press_cb(self, widget, event):
- key = gtk.gdk.keyval_name(event.keyval)
- if event.state & gtk.gdk.MOD1_MASK:
+ key = Gdk.keyval_name(event.keyval)
+ if event.get_state() & Gdk.ModifierType.MOD1_MASK:
if self.tray is not None and key == 'space':
self.tray.props.visible = not self.tray.props.visible
return True
@@ -262,11 +262,11 @@ class Window(gtk.Window):
else:
# Reset the timer
if self._unfullscreen_button_timeout_id is not None:
- gobject.source_remove(self._unfullscreen_button_timeout_id)
+ GObject.source_remove(self._unfullscreen_button_timeout_id)
self._unfullscreen_button_timeout_id = None
self._unfullscreen_button_timeout_id = \
- gobject.timeout_add_seconds( \
+ GObject.timeout_add_seconds( \
_UNFULLSCREEN_BUTTON_VISIBILITY_TIMEOUT, \
self.__unfullscreen_button_timeout_cb)
return False
@@ -282,7 +282,7 @@ class Window(gtk.Window):
def get_enable_fullscreen_mode(self):
return self._enable_fullscreen_mode
- enable_fullscreen_mode = gobject.property(type=object,
+ enable_fullscreen_mode = GObject.property(type=object,
setter=set_enable_fullscreen_mode, getter=get_enable_fullscreen_mode)
# DEPRECATED
diff --git a/src/sugar3/graphics/xocolor.py b/src/sugar3/graphics/xocolor.py
index 395e345..c9af6b1 100644
--- a/src/sugar3/graphics/xocolor.py
+++ b/src/sugar3/graphics/xocolor.py
@@ -22,7 +22,7 @@ STABLE.
import random
import logging
-import gconf
+from gi.repository import GConf
colors = [
['#B20008', '#FF2B34'], \
@@ -237,7 +237,7 @@ class XoColor:
elif not is_valid(color_string):
logging.debug('Color string is not valid: %s, '
'fallback to default', color_string)
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color_string = client.get_string('/desktop/sugar/user/color')
randomize = False
else:
diff --git a/src/sugar3/network.py b/src/sugar3/network.py
index 217c077..bd1cd50 100644
--- a/src/sugar3/network.py
+++ b/src/sugar3/network.py
@@ -25,7 +25,7 @@ import urllib
import fcntl
import tempfile
-import gobject
+from gi.repository import GObject
import SimpleHTTPServer
import SocketServer
@@ -60,12 +60,12 @@ class GlibTCPServer(SocketServer.TCPServer):
self.socket.setblocking(0) # Set nonblocking
# Watch the listener socket for data
- gobject.io_add_watch(self.socket, gobject.IO_IN, self._handle_accept)
+ GObject.io_add_watch(self.socket, GObject.IO_IN, self._handle_accept)
def _handle_accept(self, source, condition):
"""Process incoming data on the server's socket by doing an accept()
via handle_request()."""
- if not (condition & gobject.IO_IN):
+ if not (condition & GObject.IO_IN):
return True
self.handle_request()
return True
@@ -103,17 +103,17 @@ class ChunkedGlibHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
"""Serve a GET request."""
self._file = self.send_head()
if self._file:
- self._srcid = gobject.io_add_watch(self.wfile, gobject.IO_OUT |
- gobject.IO_ERR,
+ self._srcid = GObject.io_add_watch(self.wfile, GObject.IO_OUT |
+ GObject.IO_ERR,
self._send_next_chunk)
else:
self._cleanup()
def _send_next_chunk(self, source, condition):
- if condition & gobject.IO_ERR:
+ if condition & GObject.IO_ERR:
self._cleanup()
return False
- if not (condition & gobject.IO_OUT):
+ if not (condition & GObject.IO_OUT):
self._cleanup()
return False
data = self._file.read(self.CHUNK_SIZE)
@@ -128,7 +128,7 @@ class ChunkedGlibHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
self._file.close()
self._file = None
if self._srcid > 0:
- gobject.source_remove(self._srcid)
+ GObject.source_remove(self._srcid)
self._srcid = 0
if not self.wfile.closed:
self.wfile.flush()
@@ -183,16 +183,16 @@ class ChunkedGlibHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
return f
-class GlibURLDownloader(gobject.GObject):
+class GlibURLDownloader(GObject.GObject):
"""Grabs a URL in chunks, returning to the mainloop after each chunk"""
__gsignals__ = {
- 'finished': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT])),
- 'error': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'progress': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
+ 'finished': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT])),
+ 'error': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'progress': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
}
CHUNK_SIZE = 4096
@@ -208,7 +208,7 @@ class GlibURLDownloader(gobject.GObject):
self._suggested_fname = None
self._info = None
self._written = 0
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
def start(self, destfile=None, destfd=None):
self._info = urllib.urlopen(self._url)
@@ -238,8 +238,8 @@ class GlibURLDownloader(gobject.GObject):
dir=self._destdir)
fcntl.fcntl(self._info.fp.fileno(), fcntl.F_SETFD, os.O_NDELAY)
- self._srcid = gobject.io_add_watch(self._info.fp.fileno(),
- gobject.IO_IN | gobject.IO_ERR,
+ self._srcid = GObject.io_add_watch(self._info.fp.fileno(),
+ GObject.IO_IN | GObject.IO_ERR,
self._read_next_chunk)
def cancel(self):
@@ -264,11 +264,11 @@ class GlibURLDownloader(gobject.GObject):
return fname
def _read_next_chunk(self, source, condition):
- if condition & gobject.IO_ERR:
+ if condition & GObject.IO_ERR:
self.cleanup(remove=True)
self.emit('error', 'Error downloading file.')
return False
- elif not (condition & gobject.IO_IN):
+ elif not (condition & GObject.IO_IN):
# shouldn't get here, but...
return True
@@ -298,7 +298,7 @@ class GlibURLDownloader(gobject.GObject):
def cleanup(self, remove=False):
if self._srcid > 0:
- gobject.source_remove(self._srcid)
+ GObject.source_remove(self._srcid)
self._srcid = 0
del self._info
self._info = None
diff --git a/src/sugar3/presence/activity.py b/src/sugar3/presence/activity.py
index bd8220c..615df4b 100644
--- a/src/sugar3/presence/activity.py
+++ b/src/sugar3/presence/activity.py
@@ -26,7 +26,7 @@ from functools import partial
import dbus
from dbus import PROPERTIES_IFACE
-import gobject
+from gi.repository import GObject
from telepathy.client import Channel
from telepathy.interfaces import CHANNEL, \
CHANNEL_INTERFACE_GROUP, \
@@ -47,7 +47,7 @@ CONN_INTERFACE_BUDDY_INFO = 'org.laptop.Telepathy.BuddyInfo'
_logger = logging.getLogger('sugar3.presence.activity')
-class Activity(gobject.GObject):
+class Activity(GObject.GObject):
"""UI interface for an Activity in the presence service
Activities in the presence service represent your and other user's
@@ -61,24 +61,24 @@ class Activity(gobject.GObject):
joined
"""
__gsignals__ = {
- 'buddy-joined': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'buddy-left': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'new-channel': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'joined': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT])),
+ 'buddy-joined': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'buddy-left': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'new-channel': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'joined': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT])),
}
__gproperties__ = {
- 'id': (str, None, None, None, gobject.PARAM_READABLE),
- 'name': (str, None, None, None, gobject.PARAM_READWRITE),
- 'tags': (str, None, None, None, gobject.PARAM_READWRITE),
- 'color': (str, None, None, None, gobject.PARAM_READWRITE),
- 'type': (str, None, None, None, gobject.PARAM_READABLE),
- 'private': (bool, None, None, True, gobject.PARAM_READWRITE),
- 'joined': (bool, None, None, False, gobject.PARAM_READABLE),
+ 'id': (str, None, None, None, GObject.PARAM_READABLE),
+ 'name': (str, None, None, None, GObject.PARAM_READWRITE),
+ 'tags': (str, None, None, None, GObject.PARAM_READWRITE),
+ 'color': (str, None, None, None, GObject.PARAM_READWRITE),
+ 'type': (str, None, None, None, GObject.PARAM_READABLE),
+ 'private': (bool, None, None, True, GObject.PARAM_READWRITE),
+ 'joined': (bool, None, None, False, GObject.PARAM_READABLE),
}
def __init__(self, account_path, connection, room_handle=None,
@@ -89,7 +89,7 @@ class Activity(gobject.GObject):
if properties is None:
properties = {}
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._account_path = account_path
self.telepathy_conn = connection
@@ -469,14 +469,14 @@ class Activity(gobject.GObject):
self.telepathy_text_chan.Close()
-class _BaseCommand(gobject.GObject):
+class _BaseCommand(GObject.GObject):
__gsignals__ = {
- 'finished': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'finished': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self.text_channel = None
self.text_channel_group_flags = None
diff --git a/src/sugar3/presence/buddy.py b/src/sugar3/presence/buddy.py
index d69de4b..ede6d2d 100644
--- a/src/sugar3/presence/buddy.py
+++ b/src/sugar3/presence/buddy.py
@@ -23,9 +23,9 @@ STABLE.
import logging
-import gobject
+from gi.repository import GObject
import dbus
-import gconf
+from gi.repository import GConf
from telepathy.interfaces import CONNECTION, \
CONNECTION_INTERFACE_ALIASING, \
CONNECTION_INTERFACE_CONTACTS
@@ -39,7 +39,7 @@ CONN_INTERFACE_BUDDY_INFO = 'org.laptop.Telepathy.BuddyInfo'
_logger = logging.getLogger('sugar3.presence.buddy')
-class BaseBuddy(gobject.GObject):
+class BaseBuddy(GObject.GObject):
"""UI interface for a Buddy in the presence service
Each buddy interface tracks a set of activities and properties
@@ -57,16 +57,16 @@ class BaseBuddy(gobject.GObject):
__gtype_name__ = 'PresenceBaseBuddy'
__gsignals__ = {
- 'joined-activity': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'left-activity': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'property-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
+ 'joined-activity': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'left-activity': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'property-changed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._key = None
self._nick = None
@@ -82,7 +82,7 @@ class BaseBuddy(gobject.GObject):
def set_key(self, key):
self._key = key
- key = gobject.property(type=str, getter=get_key, setter=set_key)
+ key = GObject.property(type=str, getter=get_key, setter=set_key)
def get_nick(self):
return self._nick
@@ -90,7 +90,7 @@ class BaseBuddy(gobject.GObject):
def set_nick(self, nick):
self._nick = nick
- nick = gobject.property(type=str, getter=get_nick, setter=set_nick)
+ nick = GObject.property(type=str, getter=get_nick, setter=set_nick)
def get_color(self):
return self._color
@@ -98,7 +98,7 @@ class BaseBuddy(gobject.GObject):
def set_color(self, color):
self._color = color
- color = gobject.property(type=str, getter=get_color, setter=set_color)
+ color = GObject.property(type=str, getter=get_color, setter=set_color)
def get_current_activity(self):
if self._current_activity is None:
@@ -108,7 +108,7 @@ class BaseBuddy(gobject.GObject):
return activity
return None
- current_activity = gobject.property(type=object,
+ current_activity = GObject.property(type=object,
getter=get_current_activity)
def get_owner(self):
@@ -117,7 +117,7 @@ class BaseBuddy(gobject.GObject):
def set_owner(self, owner):
self._owner = owner
- owner = gobject.property(type=bool, getter=get_owner, setter=set_owner,
+ owner = GObject.property(type=bool, getter=get_owner, setter=set_owner,
default=False)
def get_ip4_address(self):
@@ -126,7 +126,7 @@ class BaseBuddy(gobject.GObject):
def set_ip4_address(self, ip4_address):
self._ip4_address = ip4_address
- ip4_address = gobject.property(type=str, getter=get_ip4_address,
+ ip4_address = GObject.property(type=str, getter=get_ip4_address,
setter=set_ip4_address)
def get_tags(self):
@@ -135,7 +135,7 @@ class BaseBuddy(gobject.GObject):
def set_tags(self, tags):
self._tags = tags
- tags = gobject.property(type=str, getter=get_tags, setter=set_tags)
+ tags = GObject.property(type=str, getter=get_tags, setter=set_tags)
def object_path(self):
"""Retrieve our dbus object path"""
@@ -243,6 +243,6 @@ class Owner(BaseBuddy):
def __init__(self):
BaseBuddy.__init__(self)
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
self.props.nick = client.get_string('/desktop/sugar/user/nick')
self.props.color = client.get_string('/desktop/sugar/user/color')
diff --git a/src/sugar3/presence/presenceservice.py b/src/sugar3/presence/presenceservice.py
index ab997c5..9a1c57f 100644
--- a/src/sugar3/presence/presenceservice.py
+++ b/src/sugar3/presence/presenceservice.py
@@ -22,7 +22,7 @@ STABLE.
import logging
-import gobject
+from gi.repository import GObject
import dbus
import dbus.exceptions
import dbus.glib
@@ -46,18 +46,18 @@ ACCOUNT_MANAGER_PATH = '/org/freedesktop/Telepathy/AccountManager'
CONN_INTERFACE_ACTIVITY_PROPERTIES = 'org.laptop.Telepathy.ActivityProperties'
-class PresenceService(gobject.GObject):
+class PresenceService(GObject.GObject):
"""Provides simplified access to the Telepathy framework to activities"""
__gsignals__ = {
- 'activity-shared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT,
- gobject.TYPE_PYOBJECT])),
+ 'activity-shared': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT,
+ GObject.TYPE_PYOBJECT])),
}
def __init__(self):
"""Initialise the service and attempt to connect to events
"""
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._activity_cache = None
self._buddy_cache = {}
diff --git a/src/sugar3/profile.py b/src/sugar3/profile.py
index 172d2ad..7482da6 100644
--- a/src/sugar3/profile.py
+++ b/src/sugar3/profile.py
@@ -20,7 +20,7 @@
DEPRECATED. We are using GConf now to store preferences.
"""
-import gconf
+from gi.repository import GConf
import os
import logging
from ConfigParser import ConfigParser
@@ -68,7 +68,7 @@ class Profile(object):
privkey_hash = property(fget=_get_privkey_hash)
def is_valid(self):
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
nick = client.get_string('/desktop/sugar/user/nick')
color = client.get_string('/desktop/sugar/user/color')
@@ -140,7 +140,7 @@ class Profile(object):
path = os.path.join(env.get_profile_path(), 'config')
cp.read([path])
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
if cp.has_option('Buddy', 'NickName'):
name = cp.get('Buddy', 'NickName')
@@ -224,12 +224,12 @@ def get_profile():
def get_nick_name():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
return client.get_string('/desktop/sugar/user/nick')
def get_color():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = client.get_string('/desktop/sugar/user/color')
return XoColor(color)
diff --git a/src/sugar3/session.py b/src/sugar3/session.py
index 4ebc590..f89533d 100644
--- a/src/sugar3/session.py
+++ b/src/sugar3/session.py
@@ -21,23 +21,23 @@ UNSTABLE. Used only internally by jarabe.
import os
-from sugar import _sugarext
+from gi.repository import SugarExt
-class XSMPClient(_sugarext.SMClientXSMP):
+class XSMPClient(SugarExt.Client):
def __init__(self):
- _sugarext.SMClientXSMP.__init__(self)
+ SugarExt.Client.__init__(self)
class SessionManager(object):
def __init__(self):
- address = _sugarext.xsmp_init()
+ address = SugarExt.xsmp_init()
os.environ['SESSION_MANAGER'] = address
- _sugarext.xsmp_run()
+ SugarExt.xsmp_run()
- self.session = _sugarext.session_create_global()
+ self.session = SugarExt.Session.create_global()
def start(self):
self.session.start()
@@ -48,7 +48,7 @@ class SessionManager(object):
self.session.initiate_shutdown()
def shutdown_completed(self):
- _sugarext.xsmp_shutdown()
+ SugarExt.xsmp_shutdown()
def __shutdown_completed_cb(self, session):
self.shutdown_completed()
diff --git a/src/sugar3/wm.py b/src/sugar3/wm.py
index 9391754..9c4db2e 100644
--- a/src/sugar3/wm.py
+++ b/src/sugar3/wm.py
@@ -19,18 +19,18 @@
UNSTABLE. Used only internally by Activity and jarabe.
"""
-import gtk
-from gtk import gdk
+from gi.repository import Gtk
+from gi.repository import Gdk
import logging
def _property_get_trapped(window, prop, prop_type):
- gtk.gdk.error_trap_push()
+ Gdk.error_trap_push()
prop_info = window.property_get(prop, prop_type)
# We just log a message
- error = gtk.gdk.error_trap_pop()
+ error = Gdk.error_trap_pop()
if error:
logging.debug('Received X Error (%i) while getting '
'a property on a window', error)
@@ -40,11 +40,11 @@ def _property_get_trapped(window, prop, prop_type):
def _property_change_trapped(window, prop, prop_type, format, mode, data):
# pylint: disable=W0622
- gtk.gdk.error_trap_push()
+ Gdk.error_trap_push()
window.property_change(prop, prop_type, format, mode, data)
- error = gtk.gdk.error_trap_pop()
+ error = Gdk.error_trap_pop()
if error:
logging.debug('Received X Error (%i) while setting '
'a property on a window', error)
@@ -53,7 +53,7 @@ def _property_change_trapped(window, prop, prop_type, format, mode, data):
def get_activity_id(wnck_window):
- window = gtk.gdk.window_foreign_new(wnck_window.get_xid())
+ window = Gdk.window_foreign_new(wnck_window.get_xid())
prop_info = _property_get_trapped(window, '_SUGAR_ACTIVITY_ID', 'STRING')
if prop_info is None:
return None
@@ -62,7 +62,7 @@ def get_activity_id(wnck_window):
def get_bundle_id(wnck_window):
- window = gtk.gdk.window_foreign_new(wnck_window.get_xid())
+ window = Gdk.window_foreign_new(wnck_window.get_xid())
prop_info = _property_get_trapped(window, '_SUGAR_BUNDLE_ID', 'STRING')
if prop_info is None:
return None
@@ -71,7 +71,7 @@ def get_bundle_id(wnck_window):
def get_sugar_window_type(wnck_window):
- window = gtk.gdk.window_foreign_new(wnck_window.get_xid())
+ window = Gdk.window_foreign_new(wnck_window.get_xid())
prop_info = _property_get_trapped(window, '_SUGAR_WINDOW_TYPE', 'STRING')
if prop_info is None:
return None
@@ -81,9 +81,9 @@ def get_sugar_window_type(wnck_window):
def set_activity_id(window, activity_id):
_property_change_trapped(window, '_SUGAR_ACTIVITY_ID', 'STRING', 8,
- gtk.gdk.PROP_MODE_REPLACE, activity_id)
+ Gdk.PROP_MODE_REPLACE, activity_id)
def set_bundle_id(window, bundle_id):
_property_change_trapped(window, '_SUGAR_BUNDLE_ID', 'STRING', 8,
- gtk.gdk.PROP_MODE_REPLACE, bundle_id)
+ Gdk.PROP_MODE_REPLACE, bundle_id)
diff --git a/tests/graphics/common.py b/tests/graphics/common.py
index 103a81d..e5aabd4 100644
--- a/tests/graphics/common.py
+++ b/tests/graphics/common.py
@@ -15,21 +15,21 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-import gtk
+from gi.repository import Gtk
from sugar3.graphics.toolbutton import ToolButton
-class Test(gtk.VBox):
+class Test(Gtk.VBox):
def __init__(self):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
class TestPalette(Test):
def __init__(self):
Test.__init__(self)
- toolbar = gtk.Toolbar()
+ toolbar = Gtk.Toolbar()
self._invoker = ToolButton('go-previous')
toolbar.insert(self._invoker, -1)
@@ -44,8 +44,8 @@ class TestPalette(Test):
class TestRunner(object):
def run(self, test):
- window = gtk.Window()
- window.connect('destroy', lambda w: gtk.main_quit())
+ window = Gtk.Window()
+ window.connect('destroy', lambda w: Gtk.main_quit())
window.add(test)
test.show()
@@ -56,4 +56,4 @@ def main(test):
runner = TestRunner()
runner.run(test)
- gtk.main()
+ Gtk.main()
diff --git a/tests/graphics/iconcache.py b/tests/graphics/iconcache.py
index 9508f6b..5a027d9 100644
--- a/tests/graphics/iconcache.py
+++ b/tests/graphics/iconcache.py
@@ -19,7 +19,7 @@
Test the sugar3.graphics.icon.* cache.
"""
-import gtk
+from gi.repository import Gtk
from sugar3.graphics.icon import Icon
from sugar3.graphics.xocolor import XoColor
@@ -54,13 +54,13 @@ def _button_activated_cb(button):
for d in data:
icon = Icon(icon_name=d[0],
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR,
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR,
xo_color=XoColor(d[1]))
- test.pack_start(icon)
+ test.pack_start(icon, True, True, 0)
icon.show()
-button = gtk.Button('mec mac')
-test.pack_start(button)
+button = Gtk.Button('mec mac')
+test.pack_start(button, True, True, 0)
button.connect('activate', _button_activated_cb)
button.show()
diff --git a/tests/graphics/iconwidget.py b/tests/graphics/iconwidget.py
index d4626ff..e4d7f26 100644
--- a/tests/graphics/iconwidget.py
+++ b/tests/graphics/iconwidget.py
@@ -19,7 +19,7 @@
Test the sugar3.graphics.icon.Icon widget.
"""
-import gtk
+from gi.repository import Gtk
from sugar3.graphics.icon import Icon
from sugar3.graphics.xocolor import XoColor
@@ -28,41 +28,41 @@ import common
test = common.Test()
-hbox = gtk.HBox()
-test.pack_start(hbox)
-sensitive_box = gtk.VBox()
-insensitive_box = gtk.VBox()
+hbox = Gtk.HBox()
+test.pack_start(hbox, True, True, 0)
+sensitive_box = Gtk.VBox()
+insensitive_box = Gtk.VBox()
-hbox.pack_start(sensitive_box)
-hbox.pack_start(insensitive_box)
+hbox.pack_start(sensitive_box, True, True, 0)
+hbox.pack_start(insensitive_box, True, True, 0)
hbox.show_all()
def create_icon_widgets(box, sensitive=True):
icon = Icon(icon_name='go-previous')
- icon.props.icon_size = gtk.ICON_SIZE_LARGE_TOOLBAR
- box.pack_start(icon)
+ icon.props.icon_size = Gtk.IconSize.LARGE_TOOLBAR
+ box.pack_start(icon, True, True, 0)
icon.set_sensitive(sensitive)
icon.show()
icon = Icon(icon_name='computer-xo',
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR,
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR,
xo_color=XoColor())
- box.pack_start(icon)
+ box.pack_start(icon, True, True, 0)
icon.set_sensitive(sensitive)
icon.show()
icon = Icon(icon_name='battery-000',
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR,
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR,
badge_name='emblem-busy')
- box.pack_start(icon)
+ box.pack_start(icon, True, True, 0)
icon.set_sensitive(sensitive)
icon.show()
icon = Icon(icon_name='gtk-new',
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR,
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR,
badge_name='gtk-cancel')
- box.pack_start(icon)
+ box.pack_start(icon, True, True, 0)
icon.set_sensitive(sensitive)
icon.show()
@@ -80,8 +80,8 @@ test.show()
# test.queue_draw()
# return True
#
-#import gobject
-#gobject.idle_add(idle_cb)
+#from gi.repository import GObject
+#GObject.idle_add(idle_cb)
if __name__ == '__main__':
common.main(test)
diff --git a/tests/graphics/ticket2855.py b/tests/graphics/ticket2855.py
index 96c4a66..0de36a3 100644
--- a/tests/graphics/ticket2855.py
+++ b/tests/graphics/ticket2855.py
@@ -21,7 +21,7 @@ contains only an icon and should be rendered similarly to the toolbar
controls. Ticket #2855.
"""
-import gtk
+from gi.repository import Gtk
from sugar3.graphics.palette import Palette
from sugar3.graphics.icon import Icon
@@ -33,19 +33,19 @@ test = common.TestPalette()
palette = Palette('Test radio and toggle')
test.set_palette(palette)
-box = gtk.HBox()
+box = Gtk.HBox()
-toggle = gtk.ToggleButton()
+toggle = Gtk.ToggleButton()
-icon = Icon(icon_name='go-previous', icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
+icon = Icon(icon_name='go-previous', icon_size=Gtk.IconSize.LARGE_TOOLBAR)
toggle.set_image(icon)
box.pack_start(toggle, False)
toggle.show()
-radio = gtk.RadioButton()
+radio = Gtk.RadioButton()
-icon = Icon(icon_name='go-next', icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
+icon = Icon(icon_name='go-next', icon_size=Gtk.IconSize.LARGE_TOOLBAR)
radio.set_image(icon)
radio.set_mode(False)
diff --git a/tests/graphics/ticket2999.py b/tests/graphics/ticket2999.py
index 5ebae31..557ba53 100644
--- a/tests/graphics/ticket2999.py
+++ b/tests/graphics/ticket2999.py
@@ -19,7 +19,7 @@
Spec in ticket #2999.
"""
-import gtk
+from gi.repository import Gtk
from sugar3.graphics.palette import Palette
from sugar3.graphics.icon import Icon
@@ -29,9 +29,9 @@ import common
test = common.Test()
test.set_border_width(60)
-text_view = gtk.TextView()
+text_view = Gtk.TextView()
text_view.props.buffer.props.text = 'Blah blah blah, blah blah blah.'
-test.pack_start(text_view)
+test.pack_start(text_view, True, True, 0)
text_view.show()
if __name__ == '__main__':
diff --git a/tests/graphics/ticket3000.py b/tests/graphics/ticket3000.py
index afecb4a..295d796 100644
--- a/tests/graphics/ticket3000.py
+++ b/tests/graphics/ticket3000.py
@@ -19,7 +19,7 @@
Spec in ticket #3000.
"""
-import gtk
+from gi.repository import Gtk
from sugar3.graphics.toolbutton import ToolButton
@@ -27,7 +27,7 @@ import common
test = common.Test()
-toolbar = gtk.Toolbar()
+toolbar = Gtk.Toolbar()
test.pack_start(toolbar, False)
toolbar.show()
@@ -35,7 +35,7 @@ button = ToolButton('go-previous')
toolbar.insert(button, -1)
button.show()
-separator = gtk.SeparatorToolItem()
+separator = Gtk.SeparatorToolItem()
toolbar.add(separator)
separator.show()
diff --git a/tests/graphics/toolbarpalettes.py b/tests/graphics/toolbarpalettes.py
index 1fd079a..93177c1 100644
--- a/tests/graphics/toolbarpalettes.py
+++ b/tests/graphics/toolbarpalettes.py
@@ -19,7 +19,7 @@
Test palette positioning for toolbar and tray.
"""
-import gtk
+from gi.repository import Gtk
from sugar3.graphics.tray import HTray, TrayButton
from sugar3.graphics.toolbutton import ToolButton
@@ -28,11 +28,11 @@ import common
test = common.Test()
-vbox = gtk.VBox()
+vbox = Gtk.VBox()
-theme_icons = gtk.icon_theme_get_default().list_icons()
+theme_icons = Gtk.IconTheme.get_default().list_icons()
-toolbar = gtk.Toolbar()
+toolbar = Gtk.Toolbar()
vbox.pack_start(toolbar, False)
toolbar.show()
@@ -42,8 +42,8 @@ for i in range(0, 5):
toolbar.insert(button, -1)
button.show()
-content = gtk.Label()
-vbox.pack_start(content)
+content = Gtk.Label()
+vbox.pack_start(content, True, True, 0)
content.show()
tray = HTray()
@@ -56,7 +56,7 @@ for i in range(0, 30):
tray.add_item(button)
button.show()
-test.pack_start(vbox)
+test.pack_start(vbox, True, True, 0)
vbox.show()
test.show()
diff --git a/tests/graphics/tray.py b/tests/graphics/tray.py
index 9b2d15a..fbe78d1 100644
--- a/tests/graphics/tray.py
+++ b/tests/graphics/tray.py
@@ -19,7 +19,7 @@
Test the sugar3.graphics.icon.Icon widget.
"""
-import gtk
+from gi.repository import Gtk
from sugar3.graphics.tray import HTray, VTray
from sugar3.graphics.tray import TrayButton, TrayIcon
@@ -28,13 +28,13 @@ import common
test = common.Test()
-vbox = gtk.VBox()
+vbox = Gtk.VBox()
tray = HTray()
vbox.pack_start(tray, False)
tray.show()
-theme_icons = gtk.icon_theme_get_default().list_icons()
+theme_icons = Gtk.IconTheme.get_default().list_icons()
for i in range(0, 100):
button = TrayButton(icon_name=theme_icons[i])
@@ -50,7 +50,7 @@ for i in range(0, 10):
tray.add_item(icon)
icon.show()
-hbox = gtk.HBox()
+hbox = Gtk.HBox()
tray = VTray()
hbox.pack_start(tray, False)
@@ -70,10 +70,10 @@ for i in range(0, 4):
tray.add_item(button)
button.show()
-vbox.pack_start(hbox)
+vbox.pack_start(hbox, True, True, 0)
hbox.show()
-test.pack_start(vbox)
+test.pack_start(vbox, True, True, 0)
vbox.show()
test.show()