前回書いたように Y901x の ClutterGst 化をしているのですが。
マジで何を今更なことを見つけた。
GtkApplication: GTK+ 3 Reference Manual#gtk-application-add-accelerator
add_accelerator は 3.14 以降は使うなってさ。
おぃおぃ Gedit 標準プラグインが今でも普通に使っているんですけど。
とりあえず Gjs だとこんな感じでいいみたいみたい。
Gio.SimpleAction のほうは今までどおりでいい。
次回の更新で自作の奴も書き換えるか。
const Y901Application = new Lang.Class({ Name: 'Y901Application', Extends: Gtk.Application, _init: function() { this.parent({}); //this.add_accelerator("<Control>Q", "win.ctrl_q_action", null); this.set_accels_for_action("win.ctrl_q_action", ["<Control>Q"]); }, vfunc_open: function(files, n_file, hint) { let uri = files[0].get_uri(); let w = new Y901Window(this); w.set_uri(uri); }, vfunc_activate: function() { new Y901Window(this); } });
ついでに Gjs で上記のように open をオーバーライドするには。
let argv = ["y901main.js"]; ARGV.forEach(function(s) { argv.push(s); }); GtkClutter.init(null); ClutterGst.init(null); let application = new Y901Application(); application.run(argv);
みたいに配列の先頭に何か突っ込まないと動作しない。
何故こんな仕様にしてしまったんだろう?
他色々と苦しみながらこんな所までやってみた。
DnD で再生、スペースキーでポーズ、シークバーも一応使える。
我ながら以前の面影が何も無いけどどうしよう、名前は変えようか?
シークバーはコラム無しだしポーズボタンも無いし拡大はマウスのみだし。
シークバーも Clutter で作っているので、まだ手探り中なので。
ここまでのソースを置いておきます、単なるバックアップですけど。
もし筆者が死んだら誰か続きをやってね。