mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2026-01-07 08:12:49 +00:00
refactor: make the whole thing more generic
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import Widget from "resource:///com/github/Aylur/ags/widget.js";
|
||||
import icons from "../icons.js";
|
||||
import PowerMenu from "../services/powermenu.js";
|
||||
import ShadedPopup from "./ShadedPopup.js";
|
||||
|
||||
/**
|
||||
* @param {'sleep' | 'reboot' | 'logout' | 'shutdown'} action
|
||||
* @param {string} label
|
||||
*/
|
||||
const SysButton = (action, label) =>
|
||||
Widget.Button({
|
||||
on_clicked: () => PowerMenu.action(action),
|
||||
child: Widget.Box({
|
||||
vertical: true,
|
||||
children: [Widget.Icon(icons.powermenu[action]), Widget.Label(label)],
|
||||
}),
|
||||
});
|
||||
|
||||
export default () =>
|
||||
ShadedPopup({
|
||||
name: "powermenu",
|
||||
expand: true,
|
||||
child: Widget.Box({
|
||||
children: [
|
||||
SysButton("sleep", "Sleep"),
|
||||
SysButton("reboot", "Reboot"),
|
||||
SysButton("logout", "Log Out"),
|
||||
SysButton("shutdown", "Shutdown"),
|
||||
],
|
||||
}),
|
||||
});
|
||||
Reference in New Issue
Block a user