mirror of
https://github.com/shlomif/PySolFC.git
synced 2025-04-05 00:02:29 -04:00
* improved gtk bindings
git-svn-id: file:///home/shlomif/Backup/svn-dumps/PySolFC/svnsync-repos/pysolfc/PySolFC/trunk@67 efabe8c0-fbe8-4139-b769-b5e6d273206e
This commit is contained in:
parent
28dfd97858
commit
ff573e90e2
3 changed files with 30 additions and 16 deletions
|
@ -271,6 +271,7 @@ class PysolMenubar(PysolMenubarActions):
|
||||||
('Shrink face-down cards', '', 'shrink_face_down', True),
|
('Shrink face-down cards', '', 'shrink_face_down', True),
|
||||||
('Shade &filled stacks', '', 'shade_filled_stacks', True),
|
('Shade &filled stacks', '', 'shade_filled_stacks', True),
|
||||||
('Show &number of cards', '', 'num_cards', False),
|
('Show &number of cards', '', 'num_cards', False),
|
||||||
|
('Use mouse for undo/redo', '', 'mouse_undo', False),
|
||||||
('&Demo logo', '', 'demo_logo', False),
|
('&Demo logo', '', 'demo_logo', False),
|
||||||
('Startup splash sc&reen', '', 'splashscreen', False),
|
('Startup splash sc&reen', '', 'splashscreen', False),
|
||||||
('&Show removed tiles (in Mahjongg games)', '', 'mahjongg_show_removed', True),
|
('&Show removed tiles (in Mahjongg games)', '', 'mahjongg_show_removed', True),
|
||||||
|
@ -403,6 +404,8 @@ class PysolMenubar(PysolMenubarActions):
|
||||||
<menuitem action='draganddrop'/>
|
<menuitem action='draganddrop'/>
|
||||||
<menuitem action='pointandclick'/>
|
<menuitem action='pointandclick'/>
|
||||||
<menuitem action='stickymouse'/>
|
<menuitem action='stickymouse'/>
|
||||||
|
<separator/>
|
||||||
|
<menuitem action='usemouseforundoredo'/>
|
||||||
</menu>
|
</menu>
|
||||||
<separator/>
|
<separator/>
|
||||||
<menuitem action='fonts'/>
|
<menuitem action='fonts'/>
|
||||||
|
@ -489,6 +492,7 @@ class PysolMenubar(PysolMenubarActions):
|
||||||
return submenu
|
return submenu
|
||||||
|
|
||||||
def _addGamesMenuItem(self, menu, gi, short_name=False):
|
def _addGamesMenuItem(self, menu, gi, short_name=False):
|
||||||
|
if not gi: return
|
||||||
if short_name:
|
if short_name:
|
||||||
label = gi.short_name
|
label = gi.short_name
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -51,11 +51,12 @@
|
||||||
# imports
|
# imports
|
||||||
import os, sys, types
|
import os, sys, types
|
||||||
|
|
||||||
import gobject
|
import gobject, gtk
|
||||||
import gtk, pango
|
gdk = gtk.gdk
|
||||||
from gtk import gdk
|
try:
|
||||||
import gnome.canvas
|
import gnomecanvas
|
||||||
TRUE, FALSE = True, False
|
except ImportError:
|
||||||
|
import gnome.canvas as gnomecanvas
|
||||||
|
|
||||||
# toolkit imports
|
# toolkit imports
|
||||||
from tkutil import anchor_tk2gtk, loadImage, bind, create_pango_font_desc
|
from tkutil import anchor_tk2gtk, loadImage, bind, create_pango_font_desc
|
||||||
|
@ -155,7 +156,7 @@ class _CanvasItem:
|
||||||
class MfxCanvasGroup(_CanvasItem):
|
class MfxCanvasGroup(_CanvasItem):
|
||||||
def __init__(self, canvas):
|
def __init__(self, canvas):
|
||||||
_CanvasItem.__init__(self, canvas)
|
_CanvasItem.__init__(self, canvas)
|
||||||
self._item = canvas.root().add(gnome.canvas.CanvasGroup, x=0, y=0)
|
self._item = canvas.root().add(gnomecanvas.CanvasGroup, x=0, y=0)
|
||||||
|
|
||||||
|
|
||||||
class MfxCanvasImage(_CanvasItem):
|
class MfxCanvasImage(_CanvasItem):
|
||||||
|
@ -169,7 +170,7 @@ class MfxCanvasImage(_CanvasItem):
|
||||||
group = group._item
|
group = group._item
|
||||||
else:
|
else:
|
||||||
group = canvas.root()
|
group = canvas.root()
|
||||||
self._item = group.add(gnome.canvas.CanvasPixbuf,
|
self._item = group.add(gnomecanvas.CanvasPixbuf,
|
||||||
x=x, y=y,
|
x=x, y=y,
|
||||||
pixbuf=image.pixbuf,
|
pixbuf=image.pixbuf,
|
||||||
width=image.width(),
|
width=image.width(),
|
||||||
|
@ -207,7 +208,7 @@ class MfxCanvasLine(_CanvasItem):
|
||||||
group = kw['group']._item
|
group = kw['group']._item
|
||||||
else:
|
else:
|
||||||
group = canvas.root()
|
group = canvas.root()
|
||||||
self._item = group.add(gnome.canvas.CanvasLine,
|
self._item = group.add(gnomecanvas.CanvasLine,
|
||||||
points=points, **kwargs)
|
points=points, **kwargs)
|
||||||
self._item.show()
|
self._item.show()
|
||||||
|
|
||||||
|
@ -226,7 +227,7 @@ class MfxCanvasRectangle(_CanvasItem):
|
||||||
group = group._item
|
group = group._item
|
||||||
else:
|
else:
|
||||||
group = canvas.root()
|
group = canvas.root()
|
||||||
self._item = group.add(gnome.canvas.CanvasRect, **kw)
|
self._item = group.add(gnomecanvas.CanvasRect, **kw)
|
||||||
self._item.show()
|
self._item.show()
|
||||||
|
|
||||||
|
|
||||||
|
@ -246,7 +247,7 @@ class MfxCanvasText(_CanvasItem):
|
||||||
del kw['group']
|
del kw['group']
|
||||||
else:
|
else:
|
||||||
group = canvas.root()
|
group = canvas.root()
|
||||||
self._item = group.add(gnome.canvas.CanvasText,
|
self._item = group.add(gnomecanvas.CanvasText,
|
||||||
x=x, y=y, anchor=anchor)
|
x=x, y=y, anchor=anchor)
|
||||||
if not kw.has_key('fill'):
|
if not kw.has_key('fill'):
|
||||||
kw['fill'] = canvas._text_color
|
kw['fill'] = canvas._text_color
|
||||||
|
@ -284,7 +285,7 @@ class MfxCanvasText(_CanvasItem):
|
||||||
# // canvas
|
# // canvas
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
|
|
||||||
class MfxCanvas(gnome.canvas.Canvas):
|
class MfxCanvas(gnomecanvas.Canvas):
|
||||||
def __init__(self, top, bg=None, highlightthickness=0):
|
def __init__(self, top, bg=None, highlightthickness=0):
|
||||||
self.preview = 0
|
self.preview = 0
|
||||||
# Tkinter compat
|
# Tkinter compat
|
||||||
|
@ -301,7 +302,7 @@ class MfxCanvas(gnome.canvas.Canvas):
|
||||||
# friend MfxCanvasText
|
# friend MfxCanvasText
|
||||||
self._text_color = '#000000'
|
self._text_color = '#000000'
|
||||||
#
|
#
|
||||||
gnome.canvas.Canvas.__init__(self)
|
gnomecanvas.Canvas.__init__(self)
|
||||||
c = top.style.bg[gtk.STATE_NORMAL]
|
c = top.style.bg[gtk.STATE_NORMAL]
|
||||||
c = '#%02x%02x%02x' % (c.red/256, c.green/256, c.blue/256)
|
c = '#%02x%02x%02x' % (c.red/256, c.green/256, c.blue/256)
|
||||||
self.top_bg = c
|
self.top_bg = c
|
||||||
|
@ -513,7 +514,7 @@ class MfxCanvas(gnome.canvas.Canvas):
|
||||||
x += w
|
x += w
|
||||||
y += h
|
y += h
|
||||||
|
|
||||||
w = self.root().add(gnome.canvas.CanvasPixbuf,
|
w = self.root().add(gnomecanvas.CanvasPixbuf,
|
||||||
pixbuf=bg_pixbuf, x=0-dx, y=0-dy)
|
pixbuf=bg_pixbuf, x=0-dx, y=0-dy)
|
||||||
w.lower_to_bottom()
|
w.lower_to_bottom()
|
||||||
self.__tileimage = w
|
self.__tileimage = w
|
||||||
|
@ -534,7 +535,7 @@ class MfxCanvas(gnome.canvas.Canvas):
|
||||||
x, y = (w-iw)/2, (h-ih)/2
|
x, y = (w-iw)/2, (h-ih)/2
|
||||||
dx, dy = self.world_to_window(0, 0)
|
dx, dy = self.world_to_window(0, 0)
|
||||||
dx, dy = int(dx), int(dy)
|
dx, dy = int(dx), int(dy)
|
||||||
self.__topimage = self.root().add(gnome.canvas.CanvasPixbuf,
|
self.__topimage = self.root().add(gnomecanvas.CanvasPixbuf,
|
||||||
pixbuf=pixbuf, x=x-dx, y=y-dy)
|
pixbuf=pixbuf, x=x-dx, y=y-dy)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -115,7 +115,6 @@ def color_gtk2tk(col):
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class _PysolPixmap:
|
class _PysolPixmap:
|
||||||
def __init__(self, file=None, pixbuf=None, width=0, height=0,
|
def __init__(self, file=None, pixbuf=None, width=0, height=0,
|
||||||
fill=None, outline=None):
|
fill=None, outline=None):
|
||||||
|
@ -126,6 +125,16 @@ class _PysolPixmap:
|
||||||
else:
|
else:
|
||||||
self.pixbuf = gdk.Pixbuf(gdk.COLORSPACE_RGB,
|
self.pixbuf = gdk.Pixbuf(gdk.COLORSPACE_RGB,
|
||||||
True, 8, width, height)
|
True, 8, width, height)
|
||||||
|
if fill:
|
||||||
|
c = gdk.color_parse(fill)
|
||||||
|
c = '%02x%02x%02xffL' % (c.red, c.green, c.blue)
|
||||||
|
self.pixbuf.fill(int(c, 16))
|
||||||
|
else:
|
||||||
|
self.pixbuf.fill(0)
|
||||||
|
if outline:
|
||||||
|
# FIXME
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def clone(self):
|
def clone(self):
|
||||||
pixbuf = self.pixbuf.copy()
|
pixbuf = self.pixbuf.copy()
|
||||||
|
@ -241,7 +250,7 @@ def _wrap_event(widget, event, l):
|
||||||
def bind(widget, sequence, func, add=None):
|
def bind(widget, sequence, func, add=None):
|
||||||
wrap = _wrap_handlers.get(sequence)
|
wrap = _wrap_handlers.get(sequence)
|
||||||
if not wrap:
|
if not wrap:
|
||||||
print "NOT BOUND:", sequence
|
##print "NOT BOUND:", sequence
|
||||||
return
|
return
|
||||||
wrap, signal = wrap
|
wrap, signal = wrap
|
||||||
#
|
#
|
||||||
|
|
Loading…
Add table
Reference in a new issue