diff options
author | Kevin <[email protected]> | 2025-01-23 09:34:46 -0300 |
---|---|---|
committer | GitHub <[email protected]> | 2025-01-23 13:34:46 +0100 |
commit | 907230e479ba6c9489463797f81c7348ed754302 (patch) | |
tree | 4f12e013cebcff9097ae6a0e23885f1236b8b3d7 /docs/guide/lua/binding.md | |
parent | 4d6d85562be7fe25cf659f1f1898244e1bdb44ca (diff) |
add: lua gtk3 examples (#156)
Diffstat (limited to 'docs/guide/lua/binding.md')
-rw-r--r-- | docs/guide/lua/binding.md | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/docs/guide/lua/binding.md b/docs/guide/lua/binding.md index f4d5f0b..f9957b5 100644 --- a/docs/guide/lua/binding.md +++ b/docs/guide/lua/binding.md @@ -68,12 +68,13 @@ local Gtk = require("astal.gtk3").Gtk local Variable = require("astal.variable") ---@param initial table +---@return varmap return function(initial) local map = initial - local var = Variable() + local var = Variable.new({}) local function notify() - local arr + local arr = {} for _, value in pairs(map) do table.insert(arr, value) end @@ -90,7 +91,13 @@ return function(initial) notify() -- init - return { + ---@class varmap + ---@field set fun(key: any, value: any): nil + ---@field delete fun(key: any): nil + ---@field get fun(): any + ---@field subscribe fun(callback: function): function + ---@overload fun(): Binding + return setmetatable({ set = function(key, value) delete(key) map[key] = value @@ -106,7 +113,11 @@ return function(initial) subscribe = function(callback) return var:subscribe(callback) end, - } + }, { + __call = function() + return var() + end, + }) end ``` @@ -130,7 +141,7 @@ function MappedBox() map.delete(id) end) end, - bind(map):as(function (arr) + map():as(function(arr) -- can be sorted here return arr end), |