diff options
author | Aylur <[email protected]> | 2024-05-25 14:44:50 +0200 |
---|---|---|
committer | Aylur <[email protected]> | 2024-05-25 14:44:50 +0200 |
commit | 58fa1ab9be7ee8fd4a8e96865121a54d613978cc (patch) | |
tree | 56f01ba49fd2929690a16ac05a4af8f763e6b30b /js/gjs/widgets.ts | |
parent | a7e25a4a5fcf4de89fe5a149a9aaf50a92be7af1 (diff) |
separate node and gjs into its own package
Diffstat (limited to 'js/gjs/widgets.ts')
-rw-r--r-- | js/gjs/widgets.ts | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/js/gjs/widgets.ts b/js/gjs/widgets.ts deleted file mode 100644 index 29af9a2..0000000 --- a/js/gjs/widgets.ts +++ /dev/null @@ -1,60 +0,0 @@ -/* eslint-disable max-len */ -import Gtk from "gi://Gtk" -import Astal from "gi://Astal" -import { kebabify } from "../src/binding.js" -import proxy, { type ConstructProps, type Widget } from "../src/astalify.js" - -const proxify = proxy(Gtk, - prop => `set_${kebabify(prop).replaceAll("-", "_")}`, - { - cssGetter: Astal.widget_get_css, - cssSetter: Astal.widget_set_css, - classGetter: Astal.widget_get_class_names, - classSetter: Astal.widget_set_class_names, - cursorGetter: Astal.widget_get_cursor, - cursorSetter: Astal.widget_set_cursor, - }) - -export function astalify< - C extends typeof Gtk.Widget, - P extends Record<string, any>, - N extends string = "Widget", ->(klass: C) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - type Astal<N> = Omit<C, "new"> & { - new(props?: P, ...children: Gtk.Widget[]): Widget<C> - (props?: P, ...children: Gtk.Widget[]): Widget<C> - } - - return proxify(klass) as unknown as Astal<N> -} - -// Label -export const Label = astalify<typeof Gtk.Label, LabelProps, "Label">(Gtk.Label) -export type LabelProps = ConstructProps<typeof Gtk.Label, Gtk.Label.ConstructorProperties> - -// Icon -export const Icon = astalify<typeof Astal.Icon, IconProps, "Icon">(Astal.Icon) -export type IconProps = ConstructProps<typeof Astal.Icon, Astal.Icon.ConstructorProperties> - -// Button -export const Button = astalify<typeof Astal.Button, ButtonProps, "Button">(Astal.Button) -export type ButtonProps = ConstructProps<typeof Astal.Button, Astal.Button.ConstructorProperties, { - onClicked: (self: Widget<typeof Astal.Button>) => void -}> - -// Window -export const Window = astalify<typeof Astal.Window, WindowProps, "Window">(Astal.Window) -export type WindowProps = ConstructProps<typeof Astal.Window, Astal.Window.ConstructorProperties> - -// Box -export const Box = astalify<typeof Astal.Box, BoxProps, "Box">(Astal.Box) -export type BoxProps = ConstructProps<typeof Astal.Box, Astal.Box.ConstructorProperties> - -// CenterBox -export const CenterBox = astalify<typeof Astal.CenterBox, CenterBoxProps, "CenterBox">(Astal.CenterBox) -export type CenterBoxProps = ConstructProps<typeof Astal.CenterBox, Astal.CenterBox.ConstructorProperties> - -// EventBox -export const EventBox = astalify<typeof Astal.EventBox, EventBoxProps, "EventBox">(Astal.EventBox) -export type EventBoxProps = ConstructProps<typeof Astal.EventBox, Astal.EventBox.ConstructorProperties> |