diff options
Diffstat (limited to 'lang/gjs/src/gtk3')
-rw-r--r-- | lang/gjs/src/gtk3/astalify.ts | 5 | ||||
-rw-r--r-- | lang/gjs/src/gtk3/jsx-runtime.ts | 2 | ||||
-rw-r--r-- | lang/gjs/src/gtk3/widget.ts | 9 |
3 files changed, 16 insertions, 0 deletions
diff --git a/lang/gjs/src/gtk3/astalify.ts b/lang/gjs/src/gtk3/astalify.ts index 92ffb6f..9cab5b2 100644 --- a/lang/gjs/src/gtk3/astalify.ts +++ b/lang/gjs/src/gtk3/astalify.ts @@ -35,6 +35,9 @@ export default function astalify< get noImplicitDestroy(): boolean { return this[noImplicitDestroy] } set noImplicitDestroy(value: boolean) { this[noImplicitDestroy] = value } + set actionGroup([prefix, group]: ActionGroup) { this.insert_action_group(prefix, group) } + set_action_group(actionGroup: ActionGroup) { this.actionGroup = actionGroup } + protected getChildren(): Array<Gtk.Widget> { if (this instanceof Gtk.Bin) { return this.get_child() ? [this.get_child()!] : [] @@ -192,3 +195,5 @@ type Cursor = | "nwse-resize" | "zoom-in" | "zoom-out" + +type ActionGroup = [prefix: string, actionGroup: Gtk.ActionGroup] diff --git a/lang/gjs/src/gtk3/jsx-runtime.ts b/lang/gjs/src/gtk3/jsx-runtime.ts index f37c695..cc97f2e 100644 --- a/lang/gjs/src/gtk3/jsx-runtime.ts +++ b/lang/gjs/src/gtk3/jsx-runtime.ts @@ -32,6 +32,7 @@ const ctors = { label: Widget.Label, levelbar: Widget.LevelBar, // TODO: listbox + menubutton: Widget.MenuButton, overlay: Widget.Overlay, revealer: Widget.Revealer, scrollable: Widget.Scrollable, @@ -60,6 +61,7 @@ declare global { label: Widget.LabelProps levelbar: Widget.LevelBarProps // TODO: listbox + menubutton: Widget.MenuButton, overlay: Widget.OverlayProps revealer: Widget.RevealerProps scrollable: Widget.ScrollableProps diff --git a/lang/gjs/src/gtk3/widget.ts b/lang/gjs/src/gtk3/widget.ts index 759a4b1..10e4842 100644 --- a/lang/gjs/src/gtk3/widget.ts +++ b/lang/gjs/src/gtk3/widget.ts @@ -116,6 +116,15 @@ export class LevelBar extends astalify(Astal.LevelBar) { // TODO: ListBox + +// MenuButton +export type MenuButtonProps = ConstructProps<MenuButton, Gtk.MenuButton.ConstructorProps> +export class MenuButton extends astalify(Gtk.MenuButton) { + static { GObject.registerClass({ GTypeName: "MenuButton" }, this) } + constructor(props?: MenuButtonProps, child?: BindableChild) { super({ child, ...props } as any) } +} + + // Overlay Object.defineProperty(Astal.Overlay.prototype, "overlays", { get() { return this.get_overlays() }, |