From 0def6d7e9fd8b66220171ee228f0e845ed6edb57 Mon Sep 17 00:00:00 2001 From: Aylur Date: Wed, 9 Oct 2024 21:02:24 +0200 Subject: core(gjs, lua): widget constructor set props before children --- core/gjs/src/gobject.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'core/gjs/src/gobject.ts') diff --git a/core/gjs/src/gobject.ts b/core/gjs/src/gobject.ts index 0b3551d..2658555 100644 --- a/core/gjs/src/gobject.ts +++ b/core/gjs/src/gobject.ts @@ -67,6 +67,18 @@ export function property(declaration: PropertyDeclaration = Object) { }, }) + Object.defineProperty(target, `set_${name.replace("-", "_")}`, { + value: function (v: any) { + this[prop] = v + } + }) + + Object.defineProperty(target, `get_${name.replace("-", "_")}`, { + value: function () { + return this[prop] + } + }) + target.constructor[meta].Properties[kebabify(prop)] = pspec(name, ParamFlags.READWRITE, declaration) } @@ -81,10 +93,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, -- cgit v1.2.3