JXA Arrow key

次は改ページ用に space や arrow キーイベントの取得だ。
ようするに改ページなんかの割り当て。

comipoli オリジナルは元々 Eye of GNOME に合わせる目的があった。
今回は macOS なので何に合わせる、って何も無いんだなこれが。

左右矢印キーで改ページはガンガンオンラインや GANMA 等で使われている。
ただ comipoli オリジナルは space キーが一番便利なのでこればかり使う。
おかげで Eye of GNOME で間違えて space キーを、、、は置いておいて。

結局はオリジナルと同様にすることにした。
もちろんフルスクリーンは ommand+control+f に変えるよ。

cocoa – NSMenuItem KeyEquivalent ” “(space) bug – Stack Overflow

space を割り当てる手段は簡単に見つかったけど。
arrow を割り当てる手段は見つからない。

objective c – Using arrow keys in cocoa? – Stack Overflow

NSView から拾うしかなさそう。
macOS 使いはメニューからホットキーを覚えるはずだけどしかたがない。
GtkShortcutWindow みたいなものを自作するかな。

ObjC.registerSubclass({
    name: "ComipoliView",
    superclass: "NSView",
    methods: {
        "acceptsFirstResponder": ()=> {
            return true;
        },
        "keyDown:": (event)=> {
            switch(event.keyCode) {
            case 126: // up
            case 125: // down
            case 124: // right
            case 123: // left
            case 49:  // space
            case 51:  // delete
                console.log(event.keyCode);
                break;
            default:
                //console.log(event.keyCode);
                break;
            }
        }
    }
}

ただメニューバーが寂しいことに。