summaryrefslogtreecommitdiff
path: root/lang/gjs/src/gobject.ts
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-11-03 02:51:15 +0100
committerAylur <[email protected]>2024-11-03 02:52:59 +0100
commit510b233438987890d794644da909f6cf34d03a42 (patch)
treefd97a590d3af33f5042f2def1545160bfc187ac9 /lang/gjs/src/gobject.ts
parentda892f050143807f8a267dbbee1527cf655876b8 (diff)
parentc0612d1d7e78c413d0c69de34f1ae7951e90bc90 (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.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,