OSDN Git Service

The "gtk.binding_entry_add_signal" function is used for Up key, Down key, etc.
authorAiwota Programmer <aiwotaprog@tetteke.tk>
Mon, 4 May 2009 12:42:16 +0000 (21:42 +0900)
committerAiwota Programmer <aiwotaprog@tetteke.tk>
Mon, 4 May 2009 12:42:16 +0000 (21:42 +0900)
src/FukuiNoNamari/thread_view.py

index f06e3bf..5e5ec65 100644 (file)
@@ -523,13 +523,14 @@ class ThreadView(gtk.DrawingArea):
         "populate-popup": (gobject.SIGNAL_RUN_LAST,
                            gobject.TYPE_NONE,
                            (gtk.Menu, )),
+        "move-position": (gobject.SIGNAL_RUN_LAST | gobject.SIGNAL_ACTION,
+                          gobject.TYPE_NONE, (gobject.TYPE_INT, )),
         "configure-event": "override",
         "expose-event": "override",
         "motion-notify-event": "override",
         "button-press-event": "override",
         "button-release-event": "override",
         "style-set": "override",
-        "key-press-event": "override"
         }
 
     hand_cursor = gtk.gdk.Cursor(gtk.gdk.HAND2)
@@ -958,30 +959,27 @@ class ThreadView(gtk.DrawingArea):
                 layout.recalc_char_widths()
             self.wrap_relayout()
 
-    def do_key_press_event(self, event):
-        if event.type is not gtk.gdk.KEY_PRESS:
-            return
-
-        if event.keyval in (gtk.keysyms.Up, gtk.keysyms.Down,
+    def do_move_position(self, keyval):
+        if keyval in (gtk.keysyms.Up, gtk.keysyms.Down,
                             gtk.keysyms.Page_Up, gtk.keysyms.Page_Down,
                             gtk.keysyms.Home):
             value = self.adjustment.value
-            if event.keyval == gtk.keysyms.Up:
+            if keyval == gtk.keysyms.Up:
                 step_increment = self.adjustment.step_increment
                 value = value - step_increment
-            elif event.keyval == gtk.keysyms.Down:
+            elif keyval == gtk.keysyms.Down:
                 step_increment = self.adjustment.step_increment
                 value = value + step_increment
-            elif event.keyval == gtk.keysyms.Page_Up:
+            elif keyval == gtk.keysyms.Page_Up:
                 step_increment = self.adjustment.page_increment
                 value = value - step_increment
-            elif event.keyval == gtk.keysyms.Page_Down:
+            elif keyval == gtk.keysyms.Page_Down:
                 step_increment = self.adjustment.page_increment
                 value = value + step_increment
-            elif event.keyval == gtk.keysyms.Home:
+            elif keyval == gtk.keysyms.Home:
                 value = 0
             self.jump(value)
-        elif event.keyval == gtk.keysyms.End:
+        elif keyval == gtk.keysyms.End:
             self.jump_to_the_end()
 
     def do_set_scroll_adjustments(self, hadjustment, vadjustment):
@@ -1005,6 +1003,20 @@ class ThreadView(gtk.DrawingArea):
         self.emit("uri-clicked-event", selection)
 
 
+gtk.binding_entry_add_signal(ThreadView, gtk.keysyms.Up, 0,
+    "move-position", gobject.TYPE_INT, gtk.keysyms.Up)
+gtk.binding_entry_add_signal(ThreadView, gtk.keysyms.Down, 0,
+    "move-position", gobject.TYPE_INT, gtk.keysyms.Down)
+gtk.binding_entry_add_signal(ThreadView, gtk.keysyms.Page_Up, 0,
+    "move-position", gobject.TYPE_INT, gtk.keysyms.Page_Up)
+gtk.binding_entry_add_signal(ThreadView, gtk.keysyms.Page_Down, 0,
+    "move-position", gobject.TYPE_INT, gtk.keysyms.Page_Down)
+gtk.binding_entry_add_signal(ThreadView, gtk.keysyms.Home, 0,
+    "move-position", gobject.TYPE_INT, gtk.keysyms.Home)
+gtk.binding_entry_add_signal(ThreadView, gtk.keysyms.End, 0,
+    "move-position", gobject.TYPE_INT, gtk.keysyms.End)
+
+
 class ThreadViewScrollbar(gtk.VScrollbar):
 
     def __init__(self, adjustment=None):