Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/abacus_window.py
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2011-10-30 11:16:20 (GMT)
committer Walter Bender <walter.bender@gmail.com>2011-10-30 11:16:20 (GMT)
commit8fed373b112b2f8c27a875e0a7a9a03d710ea55a (patch)
tree0362abad78efa298c467576ff16fb90d3d6d3262 /abacus_window.py
parent6f619d419053f6a1cdcd30d3b6aeeef9627e3903 (diff)
gtk3 patches
Diffstat (limited to 'abacus_window.py')
-rw-r--r--abacus_window.py45
1 files changed, 15 insertions, 30 deletions
diff --git a/abacus_window.py b/abacus_window.py
index b340a8f..b88a24e 100644
--- a/abacus_window.py
+++ b/abacus_window.py
@@ -33,9 +33,9 @@ COLORS = ('#FFFFFF', '#FF0000', '#88FF00', '#FF00FF', '#FFFF00',
LABELS = ('#000000', '#FFFFFF', '#000000', '#FFFFFF', '#000000',
'#000000', '#FFFFFF', '#FFFFFF', '#000000', '#000000')
-import pygtk
-pygtk.require('2.0')
-import gtk
+import gi
+gi.require_version('Gtk', '3.0')
+from gi.repository import Gtk, Gdk, GdkPixbuf
from math import floor, ceil
import locale
@@ -97,7 +97,7 @@ readable-fractions/681534#681534
def _svg_str_to_pixbuf(svg_string):
''' Load pixbuf from SVG string '''
- pl = gtk.gdk.PixbufLoader('svg')
+ pl = GdkPixbuf.PixbufLoader.new_with_type('svg')
pl.write(svg_string)
pl.close()
pixbuf = pl.get_pixbuf()
@@ -645,19 +645,19 @@ class Abacus():
_logger.debug('bead colors %s %s', self.bead_colors[0],
self.bead_colors[1])
- self.canvas.set_flags(gtk.CAN_FOCUS)
- self.canvas.add_events(gtk.gdk.BUTTON_PRESS_MASK)
- self.canvas.add_events(gtk.gdk.BUTTON_RELEASE_MASK)
- self.canvas.add_events(gtk.gdk.POINTER_MOTION_MASK)
- self.canvas.connect('expose-event', self._expose_cb)
+ self.canvas.set_can_focus(True)
+ self.canvas.add_events(Gdk.EventMask.BUTTON_PRESS_MASK)
+ self.canvas.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK)
+ self.canvas.add_events(Gdk.EventMask.POINTER_MOTION_MASK)
+ self.canvas.connect('draw', self.__draw_cb)
self.canvas.connect('button-press-event', self._button_press_cb)
self.canvas.connect('button-release-event', self._button_release_cb)
self.canvas.connect('motion-notify-event', self._mouse_move_cb)
self.canvas.connect('key_press_event', self._keypress_cb)
- self.width = gtk.gdk.screen_width()
- self.height = gtk.gdk.screen_height() - GRID_CELL_SIZE
+ self.width = Gdk.Screen.width()
+ self.height = Gdk.Screen.height() - GRID_CELL_SIZE
self.sprites = Sprites(self.canvas)
- self.scale = 1.33 * gtk.gdk.screen_height() / 900.0
+ self.scale = 1.33 * Gdk.Screen.height() / 900.0
self.dragpos = 0
self.press = None
self.last = None
@@ -800,7 +800,7 @@ class Abacus():
def _keypress_cb(self, area, event):
''' Keypress: moving the slides with the arrow keys '''
- k = gtk.gdk.keyval_name(event.keyval)
+ k = Gdk.keyval_name(event.keyval)
if k in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'period',
'minus', 'Return', 'BackSpace', 'comma']:
if self.last == self.mode.label_bar:
@@ -855,28 +855,13 @@ class Abacus():
newnum = oldnum
sprite.set_label(newnum + CURSOR)
- def _expose_cb(self, win, event):
- ''' Callback to handle window expose events '''
- self.do_expose_event(event)
- return True
-
# Handle the expose-event by drawing
- def do_expose_event(self, event):
-
- # Create the cairo context
- cr = self.canvas.window.cairo_create()
-
- # Restrict Cairo to the exposed area; avoid extra work
- cr.rectangle(event.area.x, event.area.y,
- event.area.width, event.area.height)
- cr.clip()
-
- # Refresh sprite list
+ def __draw_cb(self, canvas, cr):
self.sprites.redraw_sprites(cr=cr)
def _destroy_cb(self, win, event):
''' Callback to handle quit '''
- gtk.main_quit()
+ Gtk.main_quit()
def generate_label(self, sum_only=False):
''' The complexity below is to make the label as simple as possible '''