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>
This commit is contained in:
Sascha Silbe
2011-11-15 19:29:07 +01:00
committed by Simon Schampijer
parent aed295ec4e
commit 820efa56b9
47 changed files with 818 additions and 818 deletions
+45 -45
View File
@@ -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
+6 -6
View File
@@ -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')
+72 -72
View File
@@ -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 -19
View File
@@ -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
+44 -44
View File
@@ -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()
+10 -10
View File
@@ -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
+13 -13
View File
@@ -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 -17
View File
@@ -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)
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.ICON_SIZE_MENU)
gtk.Widget.set_size_request(button, w + 4, h + 4)
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()
+10 -10
View File
@@ -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()
+53 -53
View File
@@ -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
+5 -5
View File
@@ -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 = {}
+65 -65
View File
@@ -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():
+3 -3
View File
@@ -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)
+3 -3
View File
@@ -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:
+16 -16
View File
@@ -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)
+7 -7
View File
@@ -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')
+10 -10
View File
@@ -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)
+36 -36
View File
@@ -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)
+14 -14
View File
@@ -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)
+19 -19
View File
@@ -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:
+8 -8
View File
@@ -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)
+45 -45
View File
@@ -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):
+33 -33
View File
@@ -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
+2 -2
View File
@@ -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: