import { Accessor } from "ags"; import { construct } from "../../../modules/utils"; import GObject, { gtype, property, register } from "ags/gobject"; @register({ GTypeName: "OSDMode" }) export default class OSDMode extends GObject.Object { readonly #subs: Array<() => void> = []; @property(String) icon: string = "image-missing"; @property(Number) value: number = 0; @property(Number) max: number = 100; @property(gtype(String)) text: string|null = null; @property(Boolean) available: boolean = true; constructor(props: { icon: string | Accessor; value: number | Accessor; max?: number | Accessor; text?: string | Accessor; available?: boolean | Accessor; }) { super(); this.#subs = construct(this, props); } vfunc_dispose(): void { this.#subs.forEach(s => s()); } }