Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Util
diff options
context:
space:
mode:
Diffstat (limited to 'Util')
-rw-r--r--Util/ThemeWidgets.py87
1 files changed, 56 insertions, 31 deletions
diff --git a/Util/ThemeWidgets.py b/Util/ThemeWidgets.py
index 026ced5..cfc1130 100644
--- a/Util/ThemeWidgets.py
+++ b/Util/ThemeWidgets.py
@@ -719,7 +719,7 @@ class RoundFixed( gtk.Fixed ):
return False
class ImageButton(gtk.Button):
- def __init__(self , mainImg_path, enterImg_path = None, clickImg_path = None, backgroundFill = None ):
+ def __init__( self, mainImg_path, clickImg_path = None, enterImg_path = None, backgroundFill = None ):
gtk.Button.__init__(self)
self.alloc = None
win = gtk.gdk.get_default_root_window()
@@ -757,8 +757,8 @@ class ImageButton(gtk.Button):
if enterImg_path != None:
prepareImage( "enter", enterImg_path )
- self.connect('enter',self.on_btn_enter, None)
- self.connect('leave',self.on_btn_leave, None)
+ self.connect('enter-notify-event',self.on_btn_enter)
+ self.connect('leave-notify-event',self.on_btn_leave)
if clickImg_path != None:
prepareImage( "click", clickImg_path )
self.connect('pressed',self.on_btn_press, None)
@@ -770,8 +770,8 @@ class ImageButton(gtk.Button):
self.iwidthDIV2["enter"] = self.iwidthDIV2["main"]
self.iheight["enter"] = self.iheight["main"]
self.iheightDIV2["enter"] = self.iheightDIV2["main"]
- self.connect('enter',self.on_btn_enter, None)
- self.connect('leave',self.on_btn_leave, None)
+ self.connect('enter-notify-event',self.on_btn_enter)
+ self.connect('leave-notify-event',self.on_btn_leave)
self.curImage = self.upImage = "main"
self.down = False
@@ -799,14 +799,16 @@ class ImageButton(gtk.Button):
self.queue_draw()
def on_btn_enter(self, widget, event):
- self.upImage = "enter"
- if self.down: self.curImage = "click"
- else: self.curImage = "enter"
- self.queue_draw()
+ if event.mode == gtk.gdk.CROSSING_NORMAL:
+ self.upImage = "enter"
+ if self.down: self.curImage = "click"
+ else: self.curImage = "enter"
+ self.queue_draw()
def on_btn_leave(self, widget, event):
- self.curImage = self.upImage = "main"
- self.queue_draw()
+ if event.mode == gtk.gdk.CROSSING_NORMAL:
+ self.curImage = self.upImage = "main"
+ self.queue_draw()
def on_btn_release(self, widget, event):
self.curImage = self.upImage
@@ -818,6 +820,7 @@ class ImageToggleButton(gtk.ToggleButton):
def __init__(self , mainImg_path, altImg_path, enterImg_path = None, backgroundFill = None ):
gtk.ToggleButton.__init__(self)
self.alloc = None
+ self.within = False
win = gtk.gdk.get_default_root_window()
self.gc = gtk.gdk.GC( win )
@@ -855,8 +858,8 @@ class ImageToggleButton(gtk.ToggleButton):
if enterImg_path != None:
prepareImage( "enter", enterImg_path )
- self.connect('enter',self.on_btn_enter, None)
- self.connect('leave',self.on_btn_leave, None)
+ self.connect('enter-notify-event',self.on_btn_enter)
+ self.connect('leave-notify-event',self.on_btn_leave)
self.connect('toggled',self.toggleImage, None)
self.connect('expose-event', self.expose)
@@ -880,26 +883,38 @@ class ImageToggleButton(gtk.ToggleButton):
def toggleImage(self, widget, event):
if not self.get_active():
- self.curImage = "main"
+ if self.within and self.image.has_key("enter"):
+ self.curImage = "enter"
+ else:
+ self.curImage = "main"
else:
self.curImage = "alt"
self.queue_draw()
def on_btn_enter(self, widget, event):
- self.curImage = "enter"
- self.queue_draw()
+ if event.mode == gtk.gdk.CROSSING_NORMAL:
+ self.within = True
+ if not self.get_active():
+ self.curImage = "enter"
+ else:
+ self.curImage = "alt"
+ self.queue_draw()
def on_btn_leave(self, widget, event):
- if not self.get_active():
- self.curImage = "main"
- else:
- self.curImage = "alt"
- self.queue_draw()
+ if event.mode == gtk.gdk.CROSSING_NORMAL:
+ self.within = False
+ if not self.get_active():
+ self.curImage = "main"
+ else:
+ self.curImage = "alt"
+ self.queue_draw()
class ImageRadioButton(gtk.RadioButton):
+
def __init__( self, group, mainImg_path, altImg_path, enterImg_path = None, backgroundFill = None ):
gtk.RadioButton.__init__(self, group)
self.alloc = None
+ self.within = False
win = gtk.gdk.get_default_root_window()
self.gc = gtk.gdk.GC( win )
@@ -937,8 +952,8 @@ class ImageRadioButton(gtk.RadioButton):
if enterImg_path != None:
prepareImage( "enter", enterImg_path )
- self.connect('enter',self.on_btn_enter, None)
- self.connect('leave',self.on_btn_leave, None)
+ self.connect('enter-notify-event',self.on_btn_enter)
+ self.connect('leave-notify-event',self.on_btn_leave)
self.connect("toggled", self.toggleImage, None )
self.connect('expose-event', self.expose)
@@ -962,18 +977,28 @@ class ImageRadioButton(gtk.RadioButton):
def toggleImage(self, widget, event):
if not self.get_active():
- self.curImage = "main"
+ if self.within and self.image.has_key("enter"):
+ self.curImage = "enter"
+ else:
+ self.curImage = "main"
else:
self.curImage = "alt"
self.queue_draw()
def on_btn_enter(self, widget, event):
- self.curImage = "enter"
- self.queue_draw()
+ if event.mode == gtk.gdk.CROSSING_NORMAL:
+ self.within = True
+ if not self.get_active():
+ self.curImage = "enter"
+ else:
+ self.curImage = "alt"
+ self.queue_draw()
def on_btn_leave(self, widget, event):
- if not self.get_active():
- self.curImage = "main"
- else:
- self.curImage = "alt"
- self.queue_draw()
+ if event.mode == gtk.gdk.CROSSING_NORMAL:
+ self.within = False
+ if not self.get_active():
+ self.curImage = "main"
+ else:
+ self.curImage = "alt"
+ self.queue_draw()