summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gjs/src/astalify.ts6
-rw-r--r--gjs/src/widgets.ts6
-rw-r--r--node/src/astalify.ts6
-rw-r--r--node/src/widgets.ts6
4 files changed, 14 insertions, 10 deletions
diff --git a/gjs/src/astalify.ts b/gjs/src/astalify.ts
index 3cf662d..3a613a5 100644
--- a/gjs/src/astalify.ts
+++ b/gjs/src/astalify.ts
@@ -175,10 +175,12 @@ type BindableProps<T> = {
export type ConstructProps<
Self extends { new(...args: any[]): any },
Props = unknown,
- Signals = unknown
+ Signals extends Record<string, Array<unknown>> = Record<string, []>
> = {
[Key in `on${string}`]: (self: Widget<Self>) => unknown
-} & Partial<Signals> & BindableProps<Props & {
+} & Partial<{
+ [sig in keyof Signals]: (self: Widget<Self>, ...args: Signals[sig]) => unknown
+}> & BindableProps<Props & {
className?: string
css?: string
cursor?: string
diff --git a/gjs/src/widgets.ts b/gjs/src/widgets.ts
index ca71df1..e8adf65 100644
--- a/gjs/src/widgets.ts
+++ b/gjs/src/widgets.ts
@@ -1,8 +1,8 @@
/* eslint-disable max-len */
import { Astal, Gtk } from "./imports.js"
-import astalify, { type ConstructProps, type Widget } from "./astalify.js"
+import astalify, { type ConstructProps } from "./astalify.js"
-export { astalify }
+export { astalify, ConstructProps }
// Label
export const Label = astalify<typeof Gtk.Label, LabelProps, "Label">(Gtk.Label)
@@ -15,7 +15,7 @@ export type IconProps = ConstructProps<typeof Astal.Icon, Astal.Icon.Constructor
// Button
export const Button = astalify<typeof Astal.Button, ButtonProps, "Button">(Astal.Button)
export type ButtonProps = ConstructProps<typeof Astal.Button, Astal.Button.ConstructorProperties, {
- onClicked: (self: Widget<typeof Astal.Button>) => void
+ onClicked: []
}>
// Window
diff --git a/node/src/astalify.ts b/node/src/astalify.ts
index 3bd00eb..bae6cc7 100644
--- a/node/src/astalify.ts
+++ b/node/src/astalify.ts
@@ -170,10 +170,12 @@ type BindableProps<T> = {
export type ConstructProps<
Self extends { new(...args: any[]): any },
Props = unknown,
- Signals = unknown
+ Signals extends Record<string, Array<unknown>> = Record<string, []>
> = {
[Key in `on${string}`]: (self: Widget<Self>) => unknown
-} & Partial<Signals> & BindableProps<Props & {
+} & Partial<{
+ [sig in keyof Signals]: (self: Widget<Self>, ...args: Signals[sig]) => unknown
+}> & BindableProps<Props & {
className?: string
css?: string
cursor?: string
diff --git a/node/src/widgets.ts b/node/src/widgets.ts
index 300cfab..2ce256a 100644
--- a/node/src/widgets.ts
+++ b/node/src/widgets.ts
@@ -1,10 +1,10 @@
/* eslint-disable max-len */
import { Astal, Gtk } from "./imports.js"
-import astalify, { type ConstructProps, type Widget } from "./astalify.js"
+import astalify, { type ConstructProps } from "./astalify.js"
import type GtkT from "@girs/node-gtk-3.0/node-gtk-3.0"
import type AstalT from "@girs/node-astal-0.1/node-astal-0.1"
-export { astalify }
+export { astalify, ConstructProps }
// Label
export const Label = astalify<typeof Gtk.Label, LabelProps, "Label">(Gtk.Label)
@@ -17,7 +17,7 @@ export type IconProps = ConstructProps<typeof Astal.Icon, AstalT.Icon.Constructo
// Button
export const Button = astalify<typeof Astal.Button, ButtonProps, "Button">(Astal.Button)
export type ButtonProps = ConstructProps<typeof Astal.Button, AstalT.Button.ConstructorProperties, {
- onClicked: (self: Widget<typeof Astal.Button>) => void
+ onClicked: []
}>
// Window