summaryrefslogtreecommitdiff
path: root/lang/gjs/src/gobject.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lang/gjs/src/gobject.ts')
-rw-r--r--lang/gjs/src/gobject.ts10
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,