| The Following User Says Thank You to qwerty12 For This Useful Post: | ||
|
|
2009-07-11
, 21:38
|
|
Posts: 146 |
Thanked: 15 times |
Joined on Oct 2008
|
#12
|
If so, catching and subsuming their events should be as simple as:
The "returnValue = True" is the import part because it will keep these events from propagating.Code:... window = gtk.Window() window.connect("key-press-event", on_key_press) ... def on_key_press(widget, event, *args): returnValue = False .... if event.keyval == gtk.keysyms.<DPAD_LEFT> or\ event.keyval == gtk.keysyms.<DPAD_RIGHT> or\ event.keyval == gtk.keysyms.<DPAD_UP> or\ event.keyval == gtk.keysyms.<DPAD_DOWN>: ... returnValue = True ... return returnValue ...

EDIT:
I tested this by just returning True and it worked.
| The Following User Says Thank You to luis For This Useful Post: | ||
|
|
2011-02-21
, 20:33
|
|
Posts: 146 |
Thanked: 15 times |
Joined on Oct 2008
|
#13
|
Maybe start with a variation of something like this:
I originally ported/stole this from Bundyo's Tear.Code:... def __init__(s, aScrolledWindow, ...): ... s.sw = aScrolledWindow s.oldx = -1 s.oldy = -1 ... s.connect('button-press-event', s.on_button_press) s.connect('motion-notify-event', s.on_motion) ... def on_button_press(s, view, event): ... s.oldx = event.x s.oldy = event.y ... def on_motion(s, view, event): ... sw = s.sw if event.x != s.oldx: aux = sw.props.hadjustment.value + s.oldx - event.x if sw.props.hadjustment.lower <= aux and \ aux <= sw.props.hadjustment.upper - sw.props.hadjustment.page_size: sw.props.hadjustment.value = aux if event.y != s.oldy: aux = sw.props.vadjustment.value + s.oldy - event.y if sw.props.vadjustment.lower <= aux and \ aux <= sw.props.vadjustment.upper - sw.props.vadjustment.page_size: sw.props.vadjustment.value = aux s.oldx = event.x s.oldy = event.y ... ...
def pressimg(self, swi, event):
....
self.oldxpos = event.x
self.oldypos = event.y
def scrollimg(self, swi, event):
swih = swi.parent.props.hadjustment
swiv = swi.parent.props.vadjustment
if event.x != self.oldxpos:
aux = swih.value + self.oldxpos - event.x
if swih.lower <= aux and \
aux <= swih.upper - swih.page_size:
swih.value = aux
if event.y != self.oldypos:
aux = swiv.value + self.oldypos - event.y
if swiv.lower <= aux and \
aux <= swiv.upper - swiv.page_size:
swiv.value = aux
def __init__(self):
....
self.mpics_scroll = gtk.ScrolledWindow(None, None)
event_box = gtk.EventBox()
self.mpics = gtk.Image()
event_box.add(self.mpics)
self.mpics_scroll.add_with_viewport(event_box)
self.mpics_scroll.set_policy(gtk.POLICY_NEVER, \
gtk.POLICY_NEVER)
event_box.connect("button-press-event", self.pressimg)
event_box.connect('motion-notify-event', self.scrollimg)
self.oldxpos = event.x
self.oldypos = event.y
event_box.set_events(gtk.gdk.BUTTON_MOTION_MASK)
|
|
2011-02-21
, 21:09
|
|
Posts: 146 |
Thanked: 15 times |
Joined on Oct 2008
|
#15
|
|
|
2011-02-24
, 02:50
|
|
Posts: 146 |
Thanked: 15 times |
Joined on Oct 2008
|
#16
|
if event.is_hint:
xpos, ypos, state = \
event.window.get_pointer()
else:
xpos = event.x
ypos = event.y
state = event.state
if state & gtk.gdk.BUTTON1_MASK:
...
event_box.set_events(gtk.gdk.POINTER_MOTION_HINT_MASK)
self.oldxpos = -1 self.oldypos = -1
def scrollimg(self, swi, event):
"The method that actually scrolls"
if event.is_hint:
xpos, ypos, state = \
event.window.get_pointer()
else:
xpos = event.x
ypos = event.y
state = event.state
if state & gtk.gdk.BUTTON1_MASK:
swih = swi.props.hadjustment
swiv = swi.props.vadjustment
if xpos != self.oldxpos:
aux = swih.value + self.oldxpos - xpos
if swih.lower <= aux and aux <= \
swih.upper - swih.page_size:
swih.value = aux
if ypos != self.oldypos:
aux = swiv.value + self.oldypos - ypos
if swiv.lower <= aux and aux <= \
swiv.upper - swiv.page_size:
swiv.value = aux
else:
self.oldxpos = -1
self.oldypos = -1
def pressimg(self, swi, event):
"The method that sets the initial positions"
self.oldxpos = event.x
self.oldypos = event.y
def __init__(self):
...
self.mpics_scroll = gtk.ScrolledWindow(None, None)
event_box = gtk.EventBox()
self.mpics = gtk.Image()
event_box.add(self.mpics)
event_box.set_above_child(True)
self.mpics_scroll.add_with_viewport\
(event_box)
self.mpics_scroll.connect\
("button-press-event", self.pressimg)
self.mpics_scroll.connect
("motion-notify-event", self.scrollimg)
event_box.set_events\
(gtk.gdk.POINTER_MOTION_HINT_MASK)
....
| The Following User Says Thank You to luis For This Useful Post: | ||
And etc
GDK_Up
GDK_Right
GDK_Down