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>
master
Sascha Silbe 13 years ago committed by Simon Schampijer
parent aed295ec4e
commit 820efa56b9

@ -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()

@ -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()

@ -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
@ -100,15 +100,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',
@ -127,7 +127,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:
@ -150,7 +150,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.
@ -204,8 +204,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
@ -221,11 +221,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):
@ -248,7 +248,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.
@ -265,7 +265,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()
@ -298,7 +298,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)
@ -321,7 +321,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))
@ -350,7 +350,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()
@ -433,7 +433,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):
@ -442,7 +442,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)
@ -468,7 +468,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:
@ -483,7 +483,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(),
@ -615,11 +615,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 = []
@ -814,10 +814,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)
@ -826,7 +826,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)

@ -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))

@ -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

@ -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):

@ -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()

@ -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'),

@ -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

@ -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')

@ -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)

@ -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

@ -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()

@ -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

@ -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)

@ -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()

@ -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()

@ -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

@ -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 = {}

@ -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():

@ -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)

@ -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:

@ -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)

@ -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')

@ -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)

@ -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)

@ -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)

@ -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:

@ -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)

@ -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):

@ -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

@ -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:

@ -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

@ -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

@ -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')

@ -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 = {}

@ -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)

@ -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()

@ -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)

@ -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()

@ -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()

@ -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)

@ -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)

@ -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__':

@ -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()

@ -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()

@ -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()

Loading…
Cancel
Save