ocarina/ocarina/shortcuts.py

36 lines
1014 B
Python

# Bryan Schumaker (3 / 11 / 2011)
import gtk
from libsaria import controls
keyval_name = gtk.gdk.keyval_name
shortcut_map = {}
def null_shortcut():
return False
# Setting allow_filter_focus to True means that the
# registered shortcut will always run, even if the
# filter entry currently has focus
def register_shortcut(key, func, allow_filter_focus = False):
shortcut_map[key] = (func, allow_filter_focus)
def key_pressed(widget, event):
from ocarina import body
from ocarina.body.header import entry
name = keyval_name(event.keyval)
func, allow_filter_focus = shortcut_map.get(name, (null_shortcut, False))
if (entry.has_focus() and not allow_filter_focus):
return
if func() == False:
return False
widget.emit_stop_by_name("key-press-event")
return True
register_shortcut("space", controls.toggle_play)
register_shortcut( "Left", controls.seek_backward)
register_shortcut("Right", controls.seek_forward)
register_shortcut( "n", controls.next)
register_shortcut( "s", controls.stop)