[英]GNOME Shell Extension Button
我正在尝试仅使用JavaScript编写扩展。 我是通过Hello World用Python编写的! 码。 但是,从一开始,我的菜单项按钮仍无法正常工作。 另外,我无法在Hello World中添加菜单项! 码。 我想,我想念一些东西。
按钮代码在这里:
const Lang = imports.lang; const Main = imports.ui.main; const PanelMenu = imports.ui.panelMenu; const PopupMenu = imports.ui.popupMenu; const St = imports.gi.St; const TimeButton = new Lang.Class({ Name: "Salah Time", Extends: PanelMenu.Button, _init: function () { let box = new St.BoxLayout({ style_class: "system-status-icon" }); let label = new St.Label({text: "Salah Time"}); box.add_child(label); this.actor.addActor(box); } }); function init() { } function enable() { let but = new TimeButton(); Main.panel._leftBox.insert_child_at_index(but, 1); } function disable() { Main.panel._leftBox.remove_child(but); }
GJS教程不多。 我已经在尝试通过阅读其他扩展来编写内容。
谢谢。
const Lang = imports.lang;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const St = imports.gi.St;
const TimeButton = new Lang.Class({
Name: "TimeButton",
Extends: PanelMenu.Button,
_init: function () {
this.parent(null, "TimeButton");
// Icon
this.icon = new St.Icon({
icon_name: "appointment-symbolic",
style_class: "system-status-icon"
});
this.actor.add_actor(this.icon);
// Menu
this.menuItem = new PopupMenu.PopupMenuItem("Salah Time", {});
this.menu.addMenuItem(this.menuItem);
}
});
function init() {
}
function enable() {
let indicator = new TimeButton();
Main.panel.addToStatusArea("should-be-a-unique-string", indicator);
// hide
Main.panel.statusArea["should-be-a-unique-string"].actor.visible = false;
// change icon
Main.panel.statusArea["should-be-a-unique-string"].icon.icon_name = "appointment-soon-symbolic";
// show
Main.panel.statusArea["should-be-a-unique-string"].actor.visible = true;
}
function disable() {
// you could also track "indicator" and just call indicator.destroy()
Main.panel.statusArea["should-be-a-unique-string"].destroy();
}
希望能对某人有所帮助(如果您不在身边)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.