前回書いたように 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 で作っているので、まだ手探り中なので。
ここまでのソースを置いておきます、単なるバックアップですけど。
もし筆者が死んだら誰か続きをやってね。
