summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/lua/astal/binding.lua9
-rw-r--r--lang/lua/astal/gtk3/widget.lua2
-rw-r--r--lang/lua/astal/variable.lua9
3 files changed, 14 insertions, 6 deletions
diff --git a/lang/lua/astal/binding.lua b/lang/lua/astal/binding.lua
index 81d2177..9708ef8 100644
--- a/lang/lua/astal/binding.lua
+++ b/lang/lua/astal/binding.lua
@@ -5,7 +5,9 @@ local GObject = lgi.require("GObject", "2.0")
---@field emitter table|Variable
---@field property? string
---@field transform_fn function
+---@overload fun(emitter: table | userdata, property?: string): Binding
local Binding = {}
+Binding.__index = Binding
---@param emitter table | userdata
---@param property? string
@@ -68,5 +70,8 @@ function Binding:subscribe(callback)
end
end
-Binding.__index = Binding
-return Binding
+return setmetatable(Binding, {
+ __call = function(_, emitter, prop)
+ return Binding.new(emitter, prop)
+ end,
+})
diff --git a/lang/lua/astal/gtk3/widget.lua b/lang/lua/astal/gtk3/widget.lua
index beaad6c..1a4454e 100644
--- a/lang/lua/astal/gtk3/widget.lua
+++ b/lang/lua/astal/gtk3/widget.lua
@@ -3,7 +3,9 @@ local Astal = lgi.require("Astal", "3.0")
local Gtk = lgi.require("Gtk", "3.0")
local astalify = require("astal.gtk3.astalify")
+---@overload fun(ctor: any): function
local Widget = {
+ ---@overload fun(ctor: any): function
astalify = astalify,
Box = astalify(Astal.Box),
Button = astalify(Astal.Button),
diff --git a/lang/lua/astal/variable.lua b/lang/lua/astal/variable.lua
index f06fd16..7a0d712 100644
--- a/lang/lua/astal/variable.lua
+++ b/lang/lua/astal/variable.lua
@@ -17,6 +17,7 @@ local Process = require("astal.process")
---@field private poll_fn? function
---@field private watch_transform? fun(next: any, prev: any): any
---@field private watch_exec? string[] | string
+---@overload fun(value?: any): Variable
local Variable = {}
Variable.__index = Variable
@@ -24,19 +25,19 @@ Variable.__index = Variable
---@return Variable
function Variable.new(value)
local v = Astal.VariableBase()
- local variable = setmetatable({
- variable = v,
- _value = value,
- }, Variable)
+ local variable = setmetatable({ variable = v, _value = value }, Variable)
+
v.on_dropped = function()
variable:stop_watch()
variable:stop_poll()
end
+
v.on_error = function(_, err)
if variable.err_handler then
variable.err_handler(err)
end
end
+
return variable
end