| 'use strict'; |
|
|
| var submenu = require('./submenu.cjs'); |
| var dpi = require('../dpi.cjs'); |
| var core = require('../core.cjs'); |
| var base = require('./base.cjs'); |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class Menu extends base.MenuItemBase { |
| |
| constructor(rid, id) { |
| super(rid, id, 'Menu'); |
| } |
| |
| static async new(opts) { |
| return base.newMenu('Menu', opts).then(([rid, id]) => new Menu(rid, id)); |
| } |
| |
| static async default() { |
| return core.invoke('plugin:menu|create_default').then(([rid, id]) => new Menu(rid, id)); |
| } |
| |
| |
| |
| |
| |
| |
| |
| async append(items) { |
| return core.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 core.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 core.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 core.invoke('plugin:menu|remove', { |
| rid: this.rid, |
| kind: this.kind, |
| item: [item.rid, item.kind] |
| }); |
| } |
| |
| async removeAt(position) { |
| return core.invoke('plugin:menu|remove_at', { |
| rid: this.rid, |
| kind: this.kind, |
| position |
| }).then(submenu.itemFromKind); |
| } |
| |
| async items() { |
| return core.invoke('plugin:menu|items', { |
| rid: this.rid, |
| kind: this.kind |
| }).then((i) => i.map(submenu.itemFromKind)); |
| } |
| |
| async get(id) { |
| return core.invoke('plugin:menu|get', { |
| rid: this.rid, |
| kind: this.kind, |
| id |
| }).then((r) => (r ? submenu.itemFromKind(r) : null)); |
| } |
| |
| |
| |
| |
| |
| |
| async popup(at, window) { |
| var _a; |
| return core.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 dpi.Position ? at : at ? new dpi.Position(at) : null |
| }); |
| } |
| |
| |
| |
| |
| |
| |
| async setAsAppMenu() { |
| return core.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 core.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)); |
| } |
| } |
|
|
| exports.Menu = Menu; |
|
|