| import { itemFromKind } from './submenu.js'; |
| import { Position } from '../dpi.js'; |
| import { invoke } from '../core.js'; |
| import { MenuItemBase, newMenu } from './base.js'; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class Menu extends MenuItemBase { |
| |
| constructor(rid, id) { |
| super(rid, id, 'Menu'); |
| } |
| |
| static async new(opts) { |
| return newMenu('Menu', opts).then(([rid, id]) => new Menu(rid, id)); |
| } |
| |
| static async default() { |
| return invoke('plugin:menu|create_default').then(([rid, id]) => new Menu(rid, id)); |
| } |
| |
| |
| |
| |
| |
| |
| |
| async append(items) { |
| return invoke('plugin:menu|append', { |
| rid: this.rid, |
| kind: this.kind, |
| items: (Array.isArray(items) ? items : [items]).map((i) => 'rid' in i ? [i.rid, i.kind] : i) |
| }); |
| } |
| |
| |
| |
| |
| |
| |
| |
| async prepend(items) { |
| return invoke('plugin:menu|prepend', { |
| rid: this.rid, |
| kind: this.kind, |
| items: (Array.isArray(items) ? items : [items]).map((i) => 'rid' in i ? [i.rid, i.kind] : i) |
| }); |
| } |
| |
| |
| |
| |
| |
| |
| |
| async insert(items, position) { |
| return invoke('plugin:menu|insert', { |
| rid: this.rid, |
| kind: this.kind, |
| items: (Array.isArray(items) ? items : [items]).map((i) => 'rid' in i ? [i.rid, i.kind] : i), |
| position |
| }); |
| } |
| |
| async remove(item) { |
| return invoke('plugin:menu|remove', { |
| rid: this.rid, |
| kind: this.kind, |
| item: [item.rid, item.kind] |
| }); |
| } |
| |
| async removeAt(position) { |
| return invoke('plugin:menu|remove_at', { |
| rid: this.rid, |
| kind: this.kind, |
| position |
| }).then(itemFromKind); |
| } |
| |
| async items() { |
| return invoke('plugin:menu|items', { |
| rid: this.rid, |
| kind: this.kind |
| }).then((i) => i.map(itemFromKind)); |
| } |
| |
| async get(id) { |
| return invoke('plugin:menu|get', { |
| rid: this.rid, |
| kind: this.kind, |
| id |
| }).then((r) => (r ? itemFromKind(r) : null)); |
| } |
| |
| |
| |
| |
| |
| |
| async popup(at, window) { |
| var _a; |
| return invoke('plugin:menu|popup', { |
| rid: this.rid, |
| kind: this.kind, |
| window: (_a = window === null || window === void 0 ? void 0 : window.label) !== null && _a !== void 0 ? _a : null, |
| at: at instanceof Position ? at : at ? new Position(at) : null |
| }); |
| } |
| |
| |
| |
| |
| |
| |
| async setAsAppMenu() { |
| return invoke('plugin:menu|set_as_app_menu', { |
| rid: this.rid |
| }).then((r) => (r ? new Menu(r[0], r[1]) : null)); |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| async setAsWindowMenu(window) { |
| var _a; |
| return invoke('plugin:menu|set_as_window_menu', { |
| rid: this.rid, |
| window: (_a = window === null || window === void 0 ? void 0 : window.label) !== null && _a !== void 0 ? _a : null |
| }).then((r) => (r ? new Menu(r[0], r[1]) : null)); |
| } |
| } |
|
|
| export { Menu }; |
|
|