Skip to content

Draft: Port demos to TypeScript #201

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 144 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
5c61d75
chore: rename all .js files to .ts
vixalien Aug 12, 2024
38d7aa4
chore: add README.typescript.md
vixalien Aug 12, 2024
318a353
feat: add tsconfig
vixalien Aug 12, 2024
e1c3acb
chore: add generated types
vixalien Aug 12, 2024
c76eaf0
port: Welcome
vixalien Aug 12, 2024
c776aa0
port: Accessibility
vixalien Aug 12, 2024
810f6c7
port: Account
vixalien Aug 12, 2024
956dce1
port: Action Bar
vixalien Aug 12, 2024
59ca30c
port: Actions
vixalien Aug 12, 2024
e5cec5e
port: Animation
vixalien Aug 12, 2024
be48701
port: Audio
vixalien Aug 12, 2024
c54b13a
port: Avatar
vixalien Aug 12, 2024
e4a2747
port: Banner
vixalien Aug 12, 2024
7b580ed
port: Box
vixalien Aug 12, 2024
5e9c9a9
port: Boxed Lists
vixalien Aug 12, 2024
308e34d
port: Breakpoints
vixalien Aug 12, 2024
348d1fe
port: Button
vixalien Aug 12, 2024
717e2aa
port: Calendar
vixalien Aug 12, 2024
76cc4be
chore: ignore all JavaScript files
vixalien Aug 20, 2024
dd9bea7
port: CSS Gradients
vixalien Aug 20, 2024
dc2e49c
port: Camera
vixalien Aug 20, 2024
aaca02f
port: Carousel
vixalien Aug 20, 2024
ab1c64e
port: Checkboxes
vixalien Aug 20, 2024
e3a07e7
port: Clamp
vixalien Aug 20, 2024
51295d4
port: Color Dialog
vixalien Aug 20, 2024
30c41e4
port: Color Picker
vixalien Aug 20, 2024
36279a3
port: Column View
vixalien Aug 20, 2024
39f418c
port: Context Menu
vixalien Aug 20, 2024
0816d7b
port: Dialog
vixalien Aug 20, 2024
5e8a886
port: Drop Down
vixalien Aug 20, 2024
0905ef7
port: Drop Zone
vixalien Aug 20, 2024
3e2ca7c
port: Email
vixalien Aug 20, 2024
f11d1e7
port: Emoji Chooser
vixalien Aug 20, 2024
f7eee08
port: Event Controllers
vixalien Aug 20, 2024
0bc1090
port: File Monitor
vixalien Aug 20, 2024
41cb181
port: WebSocket Client
vixalien Aug 24, 2024
5d9beb0
port: Web View
vixalien Aug 24, 2024
c3d7aed
port: Wallpaper
vixalien Aug 24, 2024
612bc92
port: View Switcher
vixalien Aug 24, 2024
9d5e870
port: Video
vixalien Aug 24, 2024
1166fa3
port: Toggle Button
vixalien Aug 24, 2024
3490763
port: Toasts
vixalien Aug 24, 2024
be6a17e
port: Text View
vixalien Aug 24, 2024
a1f516d
port: Text Fields
vixalien Aug 24, 2024
88cf48a
port: Text Colors
vixalien Aug 24, 2024
91fb546
port: Tooltip
vixalien Aug 24, 2024
ea1aed6
port: Tab View
vixalien Aug 24, 2024
b49bc9e
port: Switch
vixalien Aug 24, 2024
b8fde6f
port: Styling with CSS
vixalien Aug 24, 2024
5b4103b
port: Stack
vixalien Aug 24, 2024
6a2e8f9
port: Spinner
vixalien Aug 24, 2024
4343f78
port: Spin Button
vixalien Aug 24, 2024
0e8f51b
port: Spell Checker
vixalien Aug 24, 2024
c42c30f
port: Source View
vixalien Aug 24, 2024
74e78a5
port: Snapshot
vixalien Aug 24, 2024
d50c6a7
port: Session Monitor and Inhibit
vixalien Aug 24, 2024
83cb1c5
port: Separator
vixalien Aug 24, 2024
62cb4a5
port: Select Folder
vixalien Aug 24, 2024
09dc652
port: Search
vixalien Aug 24, 2024
7a27dc7
port: Scrolled Window
vixalien Aug 24, 2024
fb21e1a
port: Screenshot
vixalien Aug 24, 2024
48ae252
port: Screencast
vixalien Aug 24, 2024
cadbe00
port: Scale
vixalien Aug 24, 2024
1f32e1e
port: Save File
vixalien Aug 24, 2024
ae64c2b
port: SVG
vixalien Aug 24, 2024
c2f7f86
port: Revealer
vixalien Aug 24, 2024
127f121
port: Radio Buttons
vixalien Aug 24, 2024
dbeb3a7
port: Progress Bar
vixalien Aug 24, 2024
28c7bef
port: Preferences Dialog
vixalien Aug 24, 2024
af5a004
port: Power Profile Monitor
vixalien Aug 24, 2024
5dd3613
port: Picture
vixalien Sep 3, 2024
0980ce8
port: Overlay
vixalien Sep 3, 2024
63052c9
port: Overlay Split View
vixalien Sep 3, 2024
46ac291
port: Open File
vixalien Sep 3, 2024
e691f0e
port: Network Monitor
vixalien Sep 3, 2024
b3fcb00
port: Navigation View
vixalien Sep 3, 2024
37b1477
port: Message Dialogs
vixalien Sep 3, 2024
fb40523
port: Menu
vixalien Sep 3, 2024
f0379a5
port: Menu Button
vixalien Sep 3, 2024
8cea618
port: Map
vixalien Sep 3, 2024
6347381
port: Location
vixalien Sep 3, 2024
c92d3da
port: List View
vixalien Sep 3, 2024
a866c15
port: List Model
vixalien Sep 3, 2024
e30a718
port: Level Bars
vixalien Sep 3, 2024
9734957
port: Launcher
vixalien Sep 3, 2024
e44809c
port: Label
vixalien Sep 3, 2024
49c38ae
port: Image
vixalien Sep 3, 2024
2ff26ee
port: HTTP Server
vixalien Sep 3, 2024
7e9e044
port: HTTP Request
vixalien Sep 3, 2024
6e3a142
port: HTTP Image
vixalien Sep 3, 2024
441aa06
port: Grid
vixalien Sep 3, 2024
cec3b11
port: Grid View
vixalien Sep 3, 2024
3f9fab6
port: Frame
vixalien Sep 3, 2024
72245ef
port: Font Dialog
vixalien Sep 3, 2024
3c98cf6
chore: regenerate types with `@ts-for-gir/[email protected]`
vixalien Sep 3, 2024
946b1df
port: Drawing Area
vixalien Sep 3, 2024
2570ec1
port: Drag and Drop
vixalien Sep 3, 2024
e18e596
port: List View with a Tree
vixalien Oct 31, 2024
8fd56c2
port: List View with Sections
vixalien Oct 31, 2024
79a381f
doc: update typescript instructions
vixalien Oct 31, 2024
7fa2cba
chore: update types
vixalien Oct 31, 2024
20e9d6e
port: Database
vixalien Oct 31, 2024
b38aab7
port: Gamepad
vixalien Oct 31, 2024
5a8c6b0
Use generic get_object
UrtsiSantsi Oct 31, 2024
f870918
Use generic get_object
UrtsiSantsi Oct 31, 2024
e1b164d
Use generic get_object
UrtsiSantsi Oct 31, 2024
f9b0619
Use generic get_object
UrtsiSantsi Oct 31, 2024
bdace52
Use generic get_object
UrtsiSantsi Oct 31, 2024
c12392f
Use generic get_object
UrtsiSantsi Oct 31, 2024
305822f
Use generic get_object
UrtsiSantsi Oct 31, 2024
2268b4c
Use generic get_object
UrtsiSantsi Oct 31, 2024
a5e5549
Use generic get_object
UrtsiSantsi Oct 31, 2024
11579c0
Use generic get_object
UrtsiSantsi Oct 31, 2024
bab55db
Use generic get_object
UrtsiSantsi Oct 31, 2024
f5a5214
Use generic get_object
UrtsiSantsi Oct 31, 2024
90d9b71
Use generic get_object
UrtsiSantsi Oct 31, 2024
f8f1818
Use generic get_object
UrtsiSantsi Oct 31, 2024
dd0fb50
Use generic get_object
UrtsiSantsi Oct 31, 2024
2bf3849
Use generic get_object
UrtsiSantsi Oct 31, 2024
f979327
Use generic get_object
UrtsiSantsi Oct 31, 2024
431e3d6
Use generic get_object
UrtsiSantsi Oct 31, 2024
f090d10
Use generic get_object
UrtsiSantsi Oct 31, 2024
588a46d
Use generic get_object
UrtsiSantsi Oct 31, 2024
61b3845
Use generic get_object
UrtsiSantsi Oct 31, 2024
681fc6d
Use generic get_object
UrtsiSantsi Oct 31, 2024
901f8b1
Use generic get_object
UrtsiSantsi Oct 31, 2024
e1b3b0a
Use generic get_object
UrtsiSantsi Oct 31, 2024
5bd43ce
Use generic get_object
UrtsiSantsi Oct 31, 2024
bea52b8
Use generic get_object
UrtsiSantsi Oct 31, 2024
6882a0c
Use generic get_object
UrtsiSantsi Oct 31, 2024
266f33e
Use generic get_object
UrtsiSantsi Oct 31, 2024
5b1d2ae
Use generic get_object
UrtsiSantsi Oct 31, 2024
59ae29b
Use generic get_object
UrtsiSantsi Oct 31, 2024
e23e347
Use generic get_object
UrtsiSantsi Oct 31, 2024
78e99ec
Use generic get_object
UrtsiSantsi Oct 31, 2024
5c9f45f
Use generic get_object
UrtsiSantsi Oct 31, 2024
c8e798d
Use generic get_object
UrtsiSantsi Oct 31, 2024
c533e28
Use generic get_object
UrtsiSantsi Oct 31, 2024
d493f50
Use generic get_object
UrtsiSantsi Oct 31, 2024
c2d46c5
Use generic get_object
UrtsiSantsi Oct 31, 2024
cbcbac2
Use generic get_object
UrtsiSantsi Oct 31, 2024
7567893
Use generic get_object
UrtsiSantsi Oct 31, 2024
bd68229
Use generic get_object
UrtsiSantsi Oct 31, 2024
544713e
Merge branch 'main' into wip/vixalien/typescript
sonnyp Mar 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,6 @@ src/*/*.gresource.xml
src/*/jsconfig.json
src/*/rustc-ice-*.txt
src/*/*.sqlite*

# All JavaScript files
src/**/*.js
2 changes: 1 addition & 1 deletion src/About Dialog/main.js → src/About Dialog/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { gettext as _ } from "gettext";
import Adw from "gi://Adw";
import Gtk from "gi://Gtk?version=4.0";

const button = workbench.builder.get_object("button");
const button = workbench.builder.get_object<Gtk.Button>("button");

function openAboutDialog() {
const dialog = new Adw.AboutDialog({
Expand Down
2 changes: 1 addition & 1 deletion src/Accessibility/main.js → src/Accessibility/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import GObject from "gi://GObject";
import Gdk from "gi://Gdk?version=4.0";
import Gtk from "gi://Gtk?version=4.0";

const button = workbench.builder.get_object("custom_button");
const button = workbench.builder.get_object<Gtk.Button>("custom_button");

const clicker = new Gtk.GestureClick();
clicker.connect("released", () => toggleButton(button));
Expand Down
23 changes: 16 additions & 7 deletions src/Account/main.js → src/Account/main.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import Adw from "gi://Adw";
import Gdk from "gi://Gdk?version=4.0";
import Gio from "gi://Gio";
import GLib from "gi://GLib?version=2.0";
import Gtk from "gi://Gtk?version=4.0";
import Xdp from "gi://Xdp?version=1.0";
import XdpGtk from "gi://XdpGtk4";

Expand All @@ -12,16 +15,22 @@ Gio._promisify(
const portal = new Xdp.Portal();
const parent = XdpGtk.parent_new_gtk(workbench.window);

const revealer = workbench.builder.get_object("revealer");
const button = workbench.builder.get_object("button");
const avatar = workbench.builder.get_object("avatar");
const entry = workbench.builder.get_object("entry");
const username = workbench.builder.get_object("username");
const display = workbench.builder.get_object("name");
const revealer = workbench.builder.get_object<Gtk.Revealer>("revealer");
const button = workbench.builder.get_object<Gtk.Button>("button");
const avatar = workbench.builder.get_object<Adw.Avatar>("avatar");
const entry = workbench.builder.get_object<Adw.EntryRow>("entry");
const username = workbench.builder.get_object<Gtk.Label>("username");
const display = workbench.builder.get_object<Gtk.Label>("name");

async function onClicked() {
const reason = entry.get_text();
const result = await portal.get_user_information(parent, reason, null, null);
// @ts-expect-error this function's isn't detected as `async` yet.
const result = await portal.get_user_information(
parent,
reason,
null,
null,
) as GLib.Variant;

/*
result is a GVariant dictionary containing the following fields
Expand Down
16 changes: 0 additions & 16 deletions src/Action Bar/main.js

This file was deleted.

18 changes: 18 additions & 0 deletions src/Action Bar/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import Gtk from "gi://Gtk?version=4.0";

const action_bar = workbench.builder.get_object<Gtk.ActionBar>("action_bar");
const button = workbench.builder.get_object<Gtk.ToggleButton>("button");
const start_widget = workbench.builder.get_object<Gtk.Button>("start_widget");
const end_widget = workbench.builder.get_object<Gtk.Button>("end_widget");

button.connect("notify::active", () => {
action_bar.revealed = !button.active;
});

start_widget.connect("clicked", () => {
console.log("Start widget");
});

end_widget.connect("clicked", () => {
console.log("End widget");
});
6 changes: 4 additions & 2 deletions src/Actions/main.js → src/Actions/main.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import Gtk from "gi://Gtk?version=4.0";
import Adw from "gi://Adw";
import GLib from "gi://GLib";
import Gio from "gi://Gio";

const demo = workbench.builder.get_object("demo");
const demo = workbench.builder.get_object<Adw.StatusPage>("demo");

const demo_group = new Gio.SimpleActionGroup();
demo.insert_action_group("demo", demo_group);
Expand Down Expand Up @@ -55,7 +57,7 @@ scale_action.connect("notify::state", (action) => {

demo_group.add_action(scale_action);

const text = workbench.builder.get_object("text");
const text = workbench.builder.get_object<Gtk.Label>("text");

const alignment_action = new Gio.PropertyAction({
name: "text-align",
Expand Down
9 changes: 5 additions & 4 deletions src/Animation/main.js → src/Animation/main.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import Adw from "gi://Adw";
import Graphene from "gi://Graphene";
import Gsk from "gi://Gsk";
import Gtk from "gi://Gtk?version=4.0";

const button_timed = workbench.builder.get_object("button_timed");
const progress_bar = workbench.builder.get_object("progress_bar");
const button_timed = workbench.builder.get_object<Gtk.Button>("button_timed");
const progress_bar = workbench.builder.get_object<Gtk.ProgressBar>("progress_bar");
const target_timed = Adw.PropertyAnimationTarget.new(progress_bar, "fraction");

const animation_timed = new Adw.TimedAnimation({
Expand All @@ -23,8 +24,8 @@ animation_timed.connect("done", () => {
animation_timed.reset();
});

const button_spring = workbench.builder.get_object("button_spring");
const ball = workbench.builder.get_object("ball");
const button_spring = workbench.builder.get_object<Gtk.Button>("button_spring");
const ball = workbench.builder.get_object<Adw.Bin>("ball");

const target_spring = Adw.CallbackAnimationTarget.new(animation_cb);
const params = Adw.SpringParams.new(
Expand Down
2 changes: 1 addition & 1 deletion src/Audio/main.js → src/Audio/main.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Gio from "gi://Gio";
import Gtk from "gi://Gtk?version=4.0";

const controls = workbench.builder.get_object("controls");
const controls = workbench.builder.get_object<Gtk.MediaControls>("controls");

const buttons = ["sound", "music"];
const audio_files = {
Expand Down
8 changes: 5 additions & 3 deletions src/Avatar/main.js → src/Avatar/main.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import Adw from "gi://Adw";
import Gdk from "gi://Gdk?version=4.0";
import Gio from "gi://Gio";
import Gtk from "gi://Gtk?version=4.0";

Gio._promisify(Gtk.FileDialog.prototype, "open", "open_finish");

const avatar_image = workbench.builder.get_object("avatar_image");
const button = workbench.builder.get_object("button");
const avatar_image = workbench.builder.get_object<Adw.Avatar>("avatar_image");
const button = workbench.builder.get_object<Gtk.Button>("button");

const file_filter = new Gtk.FileFilter();
file_filter.add_pixbuf_formats();
Expand All @@ -21,7 +22,8 @@ button.connect("clicked", () => {
});

async function onClicked() {
const file = await file_dialog.open(workbench.window, null);
// @ts-expect-error this function's type isn't detected as async yet
const file = await file_dialog.open(workbench.window, null) as Gio.File;
const texture = Gdk.Texture.new_from_file(file);
avatar_image.set_custom_image(texture);
}
7 changes: 4 additions & 3 deletions src/Banner/main.js → src/Banner/main.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import Adw from "gi://Adw";
import Gtk from "gi://Gtk?version=4.0";

const banner = workbench.builder.get_object("banner");
const overlay = workbench.builder.get_object("overlay");
const button_show_banner = workbench.builder.get_object("button_show_banner");
const banner = workbench.builder.get_object<Adw.Banner>("banner");
const overlay = workbench.builder.get_object<Adw.ToastOverlay>("overlay");
const button_show_banner = workbench.builder.get_object<Gtk.Button>("button_show_banner");

function alert() {
const toast = new Adw.Toast({
Expand Down
30 changes: 15 additions & 15 deletions src/Box/main.js → src/Box/main.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
import Gtk from "gi://Gtk?version=4.0";

const interactive_box = workbench.builder.get_object("interactive_box");
const button_append = workbench.builder.get_object("button_append");
const button_prepend = workbench.builder.get_object("button_prepend");
const button_remove = workbench.builder.get_object("button_remove");
const interactive_box = workbench.builder.get_object<Gtk.Box>("interactive_box");
const button_append = workbench.builder.get_object<Gtk.Button>("button_append");
const button_prepend = workbench.builder.get_object<Gtk.Button>("button_prepend");
const button_remove = workbench.builder.get_object<Gtk.Button>("button_remove");
let count = 0;

button_append.connect("clicked", append);
button_prepend.connect("clicked", prepend);
button_remove.connect("clicked", remove);

const toggle_orientation_horizontal = workbench.builder.get_object(
const toggle_orientation_horizontal = workbench.builder.get_object<Gtk.ToggleButton>(
"toggle_orientation_horizontal",
);
const toggle_orientation_vertical = workbench.builder.get_object(
const toggle_orientation_vertical = workbench.builder.get_object<Gtk.ToggleButton>(
"toggle_orientation_vertical",
);

Expand All @@ -27,19 +27,19 @@ toggle_orientation_vertical.connect("toggled", () => {
interactive_box.orientation = Gtk.Orientation.VERTICAL;
});

const highlight = workbench.builder.get_object("highlight");
const highlight = workbench.builder.get_object<Gtk.CheckButton>("highlight");
highlight.connect("toggled", () => {
highlight.active
? interactive_box.add_css_class("border")
: interactive_box.remove_css_class("border");
});

const halign_toggle_fill = workbench.builder.get_object("halign_toggle_fill");
const halign_toggle_start = workbench.builder.get_object("halign_toggle_start");
const halign_toggle_center = workbench.builder.get_object(
const halign_toggle_fill = workbench.builder.get_object<Gtk.ToggleButton>("halign_toggle_fill");
const halign_toggle_start = workbench.builder.get_object<Gtk.ToggleButton>("halign_toggle_start");
const halign_toggle_center = workbench.builder.get_object<Gtk.ToggleButton>(
"halign_toggle_center",
);
const halign_toggle_end = workbench.builder.get_object("halign_toggle_end");
const halign_toggle_end = workbench.builder.get_object<Gtk.ToggleButton>("halign_toggle_end");

halign_toggle_fill.connect("toggled", () => {
if (halign_toggle_fill.active) interactive_box.halign = Gtk.Align.FILL;
Expand All @@ -57,12 +57,12 @@ halign_toggle_end.connect("toggled", () => {
if (halign_toggle_end.active) interactive_box.halign = Gtk.Align.END;
});

const valign_toggle_fill = workbench.builder.get_object("valign_toggle_fill");
const valign_toggle_start = workbench.builder.get_object("valign_toggle_start");
const valign_toggle_center = workbench.builder.get_object(
const valign_toggle_fill = workbench.builder.get_object<Gtk.ToggleButton>("valign_toggle_fill");
const valign_toggle_start = workbench.builder.get_object<Gtk.ToggleButton>("valign_toggle_start");
const valign_toggle_center = workbench.builder.get_object<Gtk.ToggleButton>(
"valign_toggle_center",
);
const valign_toggle_end = workbench.builder.get_object("valign_toggle_end");
const valign_toggle_end = workbench.builder.get_object<Gtk.ToggleButton>("valign_toggle_end");

valign_toggle_fill.connect("toggled", () => {
if (valign_toggle_fill.active) interactive_box.valign = Gtk.Align.FILL;
Expand Down
16 changes: 0 additions & 16 deletions src/Boxed Lists/main.js

This file was deleted.

18 changes: 18 additions & 0 deletions src/Boxed Lists/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import Adw from "gi://Adw";
import GObject from "gi://GObject";
import Gtk from "gi://Gtk?version=4.0";

const drop_down = workbench.builder.get_object<Adw.ComboRow>("drop_down");

drop_down.connect("notify::selected-item", () => {
const selected_item = drop_down.selected_item as Gtk.StringObject;
const selected_string = selected_item.get_string();
console.log(selected_string);
});

const expression = Gtk.ClosureExpression.new(
GObject.TYPE_STRING,
(obj) => obj.string,
null,
);
drop_down.expression = expression;
4 changes: 3 additions & 1 deletion src/Breakpoints/main.js → src/Breakpoints/main.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
const breakpoint = workbench.builder.get_object("breakpoint");
import Adw from "gi://Adw";

const breakpoint = workbench.builder.get_object<Adw.Breakpoint>("breakpoint");

breakpoint.connect("apply", () => {
console.log("Breakpoint Applied");
Expand Down
File renamed without changes.
4 changes: 3 additions & 1 deletion src/Button/main.js → src/Button/main.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import Gtk from "gi://Gtk?version=4.0";

const button_ids = [
"regular",
"flat",
Expand All @@ -13,7 +15,7 @@ const button_ids = [
];

for (const id of button_ids) {
const button = workbench.builder.get_object(id);
const button = workbench.builder.get_object<Gtk.Button>(id);
button.connect("clicked", onClicked);
}

Expand Down
24 changes: 17 additions & 7 deletions src/CSS Gradients/main.js → src/CSS Gradients/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,25 @@ import GtkSource from "gi://GtkSource";

let css_provider;

const combo_row_gradient_type = workbench.builder.get_object(
const combo_row_gradient_type = workbench.builder.get_object<Adw.ComboRow>(
"combo_row_gradient_type",
);
const spin_row_angle = workbench.builder.get_object("spin_row_angle");
const button_color_1 = workbench.builder.get_object("button_color_1");
const button_color_2 = workbench.builder.get_object("button_color_2");
const button_color_3 = workbench.builder.get_object("button_color_3");
const gtksource_buffer = workbench.builder.get_object("gtksource_buffer");
const button_copy_css = workbench.builder.get_object("button_copy_css");
const spin_row_angle = workbench.builder.get_object<Adw.SpinRow>(
"spin_row_angle",
);
const button_color_1 = workbench.builder.get_object<Gtk.ColorDialogButton>(
"button_color_1",
);
const button_color_2 = workbench.builder.get_object<Gtk.ColorDialogButton>(
"button_color_2",
);
const button_color_3 = workbench.builder.get_object<Gtk.ColorDialogButton>(
"button_color_3",
);
const gtksource_buffer = workbench.builder.get_object<GtkSource.Buffer>(
"gtksource_buffer",
);
const button_copy_css = workbench.builder.get_object<Gtk.Button>("button_copy_css");

combo_row_gradient_type.connect("notify::selected", update);
spin_row_angle.connect("notify::value", update);
Expand Down
4 changes: 3 additions & 1 deletion src/Calendar/main.js → src/Calendar/main.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
const calendar = workbench.builder.get_object("calendar");
import Gtk from "gi://Gtk?version=4.0"

const calendar = workbench.builder.get_object<Gtk.Calendar>("calendar");

// calendar.get_date() returns a GLib.DateTime object
// https://docs.gtk.org/glib/struct.DateTime.html
Expand Down
Loading
Loading