結局スクロール関連はそのまま公開。
別にイイや、問題があったら後で直せばよいのだし。
ついでに Windows Y901 はリストの次や手前をゴミ箱移動できる機能があるのを思い出した。
ので適当に機能追加、GtkTreeView の手前イテレータ取得は前にやったので簡単だった。
ところで Shift + Delete とかをアクセラレータで処理する方法だが
self.accelgroup0.connect_group(gtk.keysyms.Delete, 0, gtk.ACCEL_VISIBLE, self.on_keydown) self.accelgroup0.connect_group(gtk.keysyms.Delete, gtk.gdk.SHIFT_MASK, gtk.ACCEL_VISIBLE, self.on_keydown) self.accelgroup0.connect_group(gtk.keysyms.Delete, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE, self.on_keydown)
という感じで GtkAccelGroup を作って
def on_keydown(self, accelGroup, window, keyval, modifier): # メニューに無いキーボード操作まとめて if keyval == gtk.keysyms.Delete: if modifier == gtk.gdk.SHIFT_MASK: self.delete_prev() elif modifier == gtk.gdk.CONTROL_MASK: self.delete_next() else: self.delete()
とすれば modifier で振り分けできるようです。
GtkAccelGroup でイチイチ modifier も指定しなきゃいけないのね。
これくらいは勝手にやってもらいたいと思うけど意図があるんだろうな。