import { NativeElement } from '../core/Component'; import { NodeWidget, QWidgetSignals } from './QWidget'; import addon from '../utils/addon'; import { QAction } from './QAction'; import { QPoint } from '../QtCore/QPoint'; /** > The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus. * **This class is a JS wrapper around Qt's [QMenu class](https://doc.qt.io/qt-5/qmenu.html)** ### Example ```javascript const { QMenu } = require("@nodegui/nodegui"); const menu = new QMenu(); ``` */ export class QMenu extends NodeWidget { native: NativeElement; constructor(); constructor(parent: NodeWidget); constructor(parent?: NodeWidget) { let native; if (parent) { native = new addon.QMenu(parent.native); } else { native = new addon.QMenu(); } super(native); this.native = native; this.setNodeParent(parent); } setTitle(title: string): void { this.native.setTitle(title); } addSeparator(): QAction { return this.native.addSeparator(); } exec(point?: QPoint, action?: QAction): void { if (point && action) { this.native.exec(point.native, action.native); return; } this.native.exec(); } popup(point: QPoint, action?: QAction): void { this.native.popup(point.native, action?.native); } } export type QMenuSignals = QWidgetSignals;