summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-06-19 02:29:23 +0200
committerAylur <[email protected]>2024-06-19 02:29:23 +0200
commit9f775f32422a6934a4e76eeaad066ea26443e294 (patch)
tree49845754db93cfac344b6a9fb05098234de13027
parent4e2fefe8c0174f6d8b8c9942b57bd89740a29f77 (diff)
expose toggleClassName
-rw-r--r--gjs/src/astalify.ts5
-rw-r--r--lua/astal/widget.lua4
-rw-r--r--src/widget/widget.vala18
3 files changed, 19 insertions, 8 deletions
diff --git a/gjs/src/astalify.ts b/gjs/src/astalify.ts
index 6e5e5b5..915014a 100644
--- a/gjs/src/astalify.ts
+++ b/gjs/src/astalify.ts
@@ -67,6 +67,7 @@ export type Widget<C extends { new(...args: any): Gtk.Widget }> = InstanceType<C
className: string
css: string
cursor: Cursor
+ toggleClassName(name: string, on: boolean): void
hook(
object: Connectable,
signal: string,
@@ -173,6 +174,10 @@ function proxify<
return hook(this, obj, sig, callback)
}
+ klass.prototype.toggleClassName = function (name: string, on = true) {
+ Astal.widget_toggle_class_name(this, name, on)
+ }
+
Object.defineProperty(klass.prototype, "className", {
get() { return Astal.widget_get_class_names(this).join(" ") },
set(v) { Astal.widget_set_class_names(this, v.split(/\s+/)) },
diff --git a/lua/astal/widget.lua b/lua/astal/widget.lua
index f9a7800..f38cdb9 100644
--- a/lua/astal/widget.lua
+++ b/lua/astal/widget.lua
@@ -128,6 +128,10 @@ local function astalify(ctor)
end
end
+ function ctor:toggle_class_name(name, on)
+ Astal.toggle_class_name(self, name, on)
+ end
+
return function(tbl)
if tbl == nil then
tbl = {}
diff --git a/src/widget/widget.vala b/src/widget/widget.vala
index de34c6d..de5ba00 100644
--- a/src/widget/widget.vala
+++ b/src/widget/widget.vala
@@ -72,14 +72,16 @@ public List<weak string> widget_get_class_names(Gtk.Widget widget) {
return widget.get_style_context().list_classes();
}
-public void widget_toggle_class_name(Gtk.Widget widget,
- string class_name,
- bool condition) {
- var c = widget.get_style_context();
- if (condition)
- c.add_class(class_name);
- else
- c.remove_class(class_name);
+public void widget_toggle_class_name(
+ Gtk.Widget widget,
+ string class_name,
+ bool condition = true
+) {
+ var c = widget.get_style_context();
+ if (condition)
+ c.add_class(class_name);
+ else
+ c.remove_class(class_name);
}
private class Cursor {