Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/sugar3/graphics/palettewindow.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/sugar3/graphics/palettewindow.py')
-rw-r--r--src/sugar3/graphics/palettewindow.py130
1 files changed, 65 insertions, 65 deletions
diff --git a/src/sugar3/graphics/palettewindow.py b/src/sugar3/graphics/palettewindow.py
index 5590cac..1e984fd 100644
--- a/src/sugar3/graphics/palettewindow.py
+++ b/src/sugar3/graphics/palettewindow.py
@@ -23,9 +23,9 @@ STABLE.
import logging
-from gtk import gdk
-import gtk
-import gobject
+from gi.repository import Gdk
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar3.graphics import palettegroup
from sugar3.graphics import animator
@@ -39,22 +39,22 @@ def _calculate_gap(a, b):
gap = True
if a.y + a.height == b.y:
- gap_side = gtk.POS_BOTTOM
+ gap_side = Gtk.PositionType.BOTTOM
elif a.x + a.width == b.x:
- gap_side = gtk.POS_RIGHT
+ gap_side = Gtk.PositionType.RIGHT
elif a.x == b.x + b.width:
- gap_side = gtk.POS_LEFT
+ gap_side = Gtk.PositionType.LEFT
elif a.y == b.y + b.height:
- gap_side = gtk.POS_TOP
+ gap_side = Gtk.PositionType.TOP
else:
gap = False
if gap:
- if gap_side == gtk.POS_BOTTOM or gap_side == gtk.POS_TOP:
+ if gap_side == Gtk.PositionType.BOTTOM or gap_side == Gtk.PositionType.TOP:
gap_start = min(a.width, max(0, b.x - a.x))
gap_size = max(0, min(a.width,
(b.x + b.width) - a.x) - gap_start)
- elif gap_side == gtk.POS_RIGHT or gap_side == gtk.POS_LEFT:
+ elif gap_side == Gtk.PositionType.RIGHT or gap_side == Gtk.PositionType.LEFT:
gap_start = min(a.height, max(0, b.y - a.y))
gap_size = max(0, min(a.height,
(b.y + b.height) - a.y) - gap_start)
@@ -65,11 +65,11 @@ def _calculate_gap(a, b):
return False
-class MouseSpeedDetector(gobject.GObject):
+class MouseSpeedDetector(GObject.GObject):
__gsignals__ = {
- 'motion-slow': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'motion-fast': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'motion-slow': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'motion-fast': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
_MOTION_SLOW = 1
@@ -80,7 +80,7 @@ class MouseSpeedDetector(gobject.GObject):
delay in msec
threshold in pixels (per tick of 'delay' msec)"""
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._threshold = thresh
self._parent = parent
@@ -93,15 +93,15 @@ class MouseSpeedDetector(gobject.GObject):
self.stop()
self._mouse_pos = self._get_mouse_position()
- self._timeout_hid = gobject.timeout_add(self._delay, self._timer_cb)
+ self._timeout_hid = GObject.timeout_add(self._delay, self._timer_cb)
def stop(self):
if self._timeout_hid is not None:
- gobject.source_remove(self._timeout_hid)
+ GObject.source_remove(self._timeout_hid)
self._state = None
def _get_mouse_position(self):
- display = gtk.gdk.display_get_default()
+ display = Gdk.Display.get_default()
screen_, x, y, mask_ = display.get_pointer()
return (x, y)
@@ -128,14 +128,14 @@ class MouseSpeedDetector(gobject.GObject):
return True
-class PaletteWindow(gtk.Window):
+class PaletteWindow(Gtk.Window):
__gtype_name__ = 'SugarPaletteWindow'
__gsignals__ = {
- 'popup': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'popdown': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'activate': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'popup': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'popdown': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'activate': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, **kwargs):
@@ -155,14 +155,14 @@ class PaletteWindow(gtk.Window):
self._popdown_anim = animator.Animator(0.6, 10)
self._popdown_anim.add(_PopdownAnimation(self))
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
self.set_decorated(False)
self.set_resizable(False)
# Just assume xthickness and ythickness are the same
self.set_border_width(self.get_style().xthickness)
- accel_group = gtk.AccelGroup()
+ accel_group = Gtk.AccelGroup()
self.set_data('sugar-accel-group', accel_group)
self.add_accel_group(accel_group)
@@ -199,12 +199,12 @@ class PaletteWindow(gtk.Window):
def get_invoker(self):
return self._invoker
- invoker = gobject.property(type=object,
+ invoker = GObject.property(type=object,
getter=get_invoker,
setter=set_invoker)
def __realize_cb(self, widget):
- self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+ self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
def _mouse_slow_cb(self, widget):
self._mouse_detector.stop()
@@ -240,16 +240,16 @@ class PaletteWindow(gtk.Window):
def get_group_id(self):
return self._group_id
- group_id = gobject.property(type=str,
+ group_id = GObject.property(type=str,
getter=get_group_id,
setter=set_group_id)
def do_size_request(self, requisition):
- gtk.Window.do_size_request(self, requisition)
+ Gtk.Window.do_size_request(self, requisition)
requisition.width = max(requisition.width, style.GRID_CELL_SIZE * 2)
def do_size_allocate(self, allocation):
- gtk.Window.do_size_allocate(self, allocation)
+ Gtk.Window.do_size_allocate(self, allocation)
if self._old_alloc is None or \
self._old_alloc.x != allocation.x or \
@@ -260,7 +260,7 @@ class PaletteWindow(gtk.Window):
# We need to store old allocation because when size_allocate
# is called widget.allocation is already updated.
- # gtk.Window resizing is different from normal containers:
+ # Gtk.Window resizing is different from normal containers:
# the X window is resized, widget.allocation is updated from
# the configure request handler and finally size_allocate is called.
self._old_alloc = allocation
@@ -279,18 +279,18 @@ class PaletteWindow(gtk.Window):
wstyle = self.get_style()
if gap:
- wstyle.paint_box_gap(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_IN, event.area, self, 'palette',
+ wstyle.paint_box_gap(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.IN, event.area, self, 'palette',
0, 0, allocation.width, allocation.height,
gap[0], gap[1], gap[2])
else:
- wstyle.paint_box(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_IN, event.area, self, 'palette',
+ wstyle.paint_box(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.IN, event.area, self, 'palette',
0, 0, allocation.width, allocation.height)
# Fall trough to the container expose handler.
# (Leaving out the window expose handler which redraws everything)
- gtk.Bin.do_expose_event(self, event)
+ Gtk.Bin.do_expose_event(self, event)
def update_position(self):
invoker = self._invoker
@@ -362,13 +362,13 @@ class PaletteWindow(gtk.Window):
self.popup(immediate=True)
def __enter_notify_event_cb(self, widget, event):
- if event.detail != gtk.gdk.NOTIFY_INFERIOR and \
- event.mode == gtk.gdk.CROSSING_NORMAL:
+ if event.detail != Gdk.NOTIFY_INFERIOR and \
+ event.mode == Gdk.CROSSING_NORMAL:
self.on_enter(event)
def __leave_notify_event_cb(self, widget, event):
- if event.detail != gtk.gdk.NOTIFY_INFERIOR and \
- event.mode == gtk.gdk.CROSSING_NORMAL:
+ if event.detail != Gdk.NOTIFY_INFERIOR and \
+ event.mode == Gdk.CROSSING_NORMAL:
self.on_leave(event)
def __show_cb(self, widget):
@@ -393,7 +393,7 @@ class PaletteWindow(gtk.Window):
y = win_y + rectangle.y
width, height = self.size_request()
- return gtk.gdk.Rectangle(x, y, width, height)
+ return (x, y, width, height)
def get_palette_state(self):
return self._palette_state
@@ -429,15 +429,15 @@ class _PopdownAnimation(animator.Animation):
self._palette.popdown(immediate=True)
-class Invoker(gobject.GObject):
+class Invoker(GObject.GObject):
__gtype_name__ = 'SugarPaletteInvoker'
__gsignals__ = {
- 'mouse-enter': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'mouse-leave': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'right-click': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'focus-out': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'mouse-enter': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'mouse-leave': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'right-click': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'focus-out': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
ANCHORED = 0
@@ -449,12 +449,12 @@ class Invoker(gobject.GObject):
LEFT = [(-1.0, 0.0, 0.0, 0.0), (-1.0, -1.0, 0.0, 1.0)]
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self.parent = None
- self._screen_area = gtk.gdk.Rectangle(0, 0, gtk.gdk.screen_width(),
- gtk.gdk.screen_height())
+ self._screen_area = (0, 0, Gdk.Screen.width(),
+ Gdk.Screen.height())
self._position_hint = self.ANCHORED
self._cursor_x = -1
self._cursor_y = -1
@@ -477,7 +477,7 @@ class Invoker(gobject.GObject):
invoker_valign = alignment[3]
if self._cursor_x == -1 or self._cursor_y == -1:
- display = gtk.gdk.display_get_default()
+ display = Gdk.Display.get_default()
screen_, x, y, mask_ = display.get_pointer()
self._cursor_x = x
self._cursor_y = y
@@ -486,7 +486,7 @@ class Invoker(gobject.GObject):
rect = self.get_rect()
else:
dist = style.PALETTE_CURSOR_DISTANCE
- rect = gtk.gdk.Rectangle(self._cursor_x - dist,
+ rect = (self._cursor_x - dist,
self._cursor_y - dist,
dist * 2, dist * 2)
@@ -498,7 +498,7 @@ class Invoker(gobject.GObject):
y = rect.y + rect.height * invoker_valign + \
palette_height * palette_valign
- return gtk.gdk.Rectangle(int(x), int(y),
+ return (int(x), int(y),
palette_width, palette_height)
def _in_screen(self, rect):
@@ -647,9 +647,9 @@ class Invoker(gobject.GObject):
# menu item. We need to postpone destruction of the palette until
# after all signals have propagated from the menu item to the
# palette owner.
- gobject.idle_add(lambda old_palette=self._palette:
+ GObject.idle_add(lambda old_palette=self._palette:
old_palette.destroy(),
- priority=gobject.PRIORITY_LOW)
+ priority=GObject.PRIORITY_LOW)
self._palette = palette
@@ -657,7 +657,7 @@ class Invoker(gobject.GObject):
self._palette.props.invoker = self
self._palette.connect('popdown', self.__palette_popdown_cb)
- palette = gobject.property(
+ palette = GObject.property(
type=object, setter=set_palette, getter=get_palette)
def get_cache_palette(self):
@@ -666,7 +666,7 @@ class Invoker(gobject.GObject):
def set_cache_palette(self, cache_palette):
self._cache_palette = cache_palette
- cache_palette = gobject.property(type=object, setter=set_cache_palette,
+ cache_palette = GObject.property(type=object, setter=set_cache_palette,
getter=get_cache_palette)
"""Whether the invoker will cache the palette after its creation. Defaults
to True.
@@ -723,20 +723,20 @@ class WidgetInvoker(Invoker):
x = 0
y = 0
- if self._widget.flags() & gtk.NO_WINDOW:
+ if self._widget.flags() & Gtk.NO_WINDOW:
x += allocation.x
y += allocation.y
width = allocation.width
height = allocation.height
- return gtk.gdk.Rectangle(x, y, width, height)
+ return (x, y, width, height)
def has_rectangle_gap(self):
return True
def draw_rectangle(self, event, palette):
- if self._widget.flags() & gtk.NO_WINDOW:
+ if self._widget.flags() & Gtk.NO_WINDOW:
x, y = self._widget.allocation.x, self._widget.allocation.y
else:
x = y = 0
@@ -745,15 +745,15 @@ class WidgetInvoker(Invoker):
gap = _calculate_gap(self.get_rect(), palette.get_rect())
if gap:
- wstyle.paint_box_gap(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_IN, event.area, self._widget,
+ wstyle.paint_box_gap(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.IN, event.area, self._widget,
'palette-invoker', x, y,
self._widget.allocation.width,
self._widget.allocation.height,
gap[0], gap[1], gap[2])
else:
- wstyle.paint_box(event.window, gtk.STATE_PRELIGHT,
- gtk.SHADOW_IN, event.area, self._widget,
+ wstyle.paint_box(event.window, Gtk.StateType.PRELIGHT,
+ Gtk.ShadowType.IN, event.area, self._widget,
'palette-invoker', x, y,
self._widget.allocation.width,
self._widget.allocation.height)
@@ -784,7 +784,7 @@ class WidgetInvoker(Invoker):
def _get_widget(self):
return self._widget
- widget = gobject.property(type=object, getter=_get_widget, setter=None)
+ widget = GObject.property(type=object, getter=_get_widget, setter=None)
class ToolInvoker(WidgetInvoker):
@@ -796,14 +796,14 @@ class ToolInvoker(WidgetInvoker):
self.attach_tool(parent)
def attach_tool(self, widget):
- self.attach_widget(widget, widget.child)
+ self.attach_widget(widget, widget.get_child())
def _get_alignments(self):
parent = self._widget.get_parent()
if parent is None:
return WidgetInvoker._get_alignments(self)
- if parent.get_orientation() is gtk.ORIENTATION_HORIZONTAL:
+ if parent.get_orientation() is Gtk.Orientation.HORIZONTAL:
return self.BOTTOM + self.TOP
else:
return self.LEFT + self.RIGHT
@@ -851,14 +851,14 @@ class CellRendererInvoker(Invoker):
x = 0
y = 0
- if self._tree_view.flags() & gtk.NO_WINDOW:
+ if self._tree_view.flags() & Gtk.NO_WINDOW:
x += allocation.x
y += allocation.y
width = allocation.width
height = allocation.height
- return gtk.gdk.Rectangle(x, y, width, height)
+ return (x, y, width, height)
def __motion_notify_event_cb(self, widget, event):
if event.window != widget.get_bin_window():