diff options
author | Aylur <[email protected]> | 2024-11-03 02:51:15 +0100 |
---|---|---|
committer | Aylur <[email protected]> | 2024-11-03 02:52:59 +0100 |
commit | 510b233438987890d794644da909f6cf34d03a42 (patch) | |
tree | fd97a590d3af33f5042f2def1545160bfc187ac9 /lang/gjs/src/gobject.ts | |
parent | da892f050143807f8a267dbbee1527cf655876b8 (diff) | |
parent | c0612d1d7e78c413d0c69de34f1ae7951e90bc90 (diff) |
Merge branch 'feat/gtk4'
initial gtk4 app and window
Diffstat (limited to 'lang/gjs/src/gobject.ts')
-rw-r--r-- | lang/gjs/src/gobject.ts | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lang/gjs/src/gobject.ts b/lang/gjs/src/gobject.ts index aeb3d9e..59dd62a 100644 --- a/lang/gjs/src/gobject.ts +++ b/lang/gjs/src/gobject.ts @@ -40,6 +40,12 @@ type MetaInfo = GObject.MetaInfo<never, Array<{ $gtype: GObject.GType }>, never> export function register(options: MetaInfo = {}) { return function (cls: GObjectConstructor) { + const t = options.Template + if (typeof t === "string" && !t.startsWith("resource://") && !t.startsWith("file://")) { + // assume xml template + options.Template = new TextEncoder().encode(t) + } + GObject.registerClass({ Signals: { ...cls[meta]?.Signals }, Properties: { ...cls[meta]?.Properties }, @@ -95,10 +101,10 @@ export function property(declaration: PropertyDeclaration = Object) { } export function signal(...params: Array<{ $gtype: GObject.GType } | typeof Object>): - (target: any, signal: any, desc?: PropertyDescriptor) => void +(target: any, signal: any, desc?: PropertyDescriptor) => void export function signal(declaration?: SignalDeclaration): - (target: any, signal: any, desc?: PropertyDescriptor) => void +(target: any, signal: any, desc?: PropertyDescriptor) => void export function signal( declaration?: SignalDeclaration | { $gtype: GObject.GType } | typeof Object, |