summaryrefslogtreecommitdiff
path: root/lang/gjs/src
diff options
context:
space:
mode:
Diffstat (limited to 'lang/gjs/src')
-rw-r--r--lang/gjs/src/gtk3/astalify.ts5
-rw-r--r--lang/gjs/src/gtk3/jsx-runtime.ts2
-rw-r--r--lang/gjs/src/gtk3/widget.ts9
3 files changed, 16 insertions, 0 deletions
diff --git a/lang/gjs/src/gtk3/astalify.ts b/lang/gjs/src/gtk3/astalify.ts
index 6973805..b758976 100644
--- a/lang/gjs/src/gtk3/astalify.ts
+++ b/lang/gjs/src/gtk3/astalify.ts
@@ -69,6 +69,9 @@ export default function astalify<
get noImplicitDestroy(): boolean { return this.__no_implicit_destroy }
set noImplicitDestroy(value: boolean) { this.__no_implicit_destroy = value }
+ set actionGroup(actionGroup: ActionGroup) { this.insert_action_group(actionGroup.prefix, actionGroup.actionGroup) }
+ set_action_group(actionGroup: ActionGroup) { this.actionGroup = actionGroup }
+
_setChildren(children: Gtk.Widget[]) {
children = children.flat(Infinity).map(ch => ch instanceof Gtk.Widget
? ch
@@ -327,3 +330,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 22dc424..10b3bcf 100644
--- a/lang/gjs/src/gtk3/jsx-runtime.ts
+++ b/lang/gjs/src/gtk3/jsx-runtime.ts
@@ -54,6 +54,7 @@ const ctors = {
label: Widget.Label,
levelbar: Widget.LevelBar,
// TODO: listbox
+ menubutton: Widget.MenuButton,
overlay: Widget.Overlay,
revealer: Widget.Revealer,
scrollable: Widget.Scrollable,
@@ -82,6 +83,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 b4e8497..b3c4a4d 100644
--- a/lang/gjs/src/gtk3/widget.ts
+++ b/lang/gjs/src/gtk3/widget.ts
@@ -102,6 +102,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() },