Skip to content
Merged
Changes from all commits
Commits
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
19 changes: 13 additions & 6 deletions snowcap/api/lua/snowcap/widget/base.lua
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ end
---unique identifiers and signals.
---
---@class snowcap.widget.base.Base
---@field private signaler snowcap.signal.Signaler
---@field private _signaler snowcap.signal.Signaler
---@field private widget_id integer
local Base = {}
Base.__index = Base
Expand Down Expand Up @@ -61,27 +61,27 @@ end
---@param name string The name of the signal you're connecting to.
---@return snowcap.signal.SignalHandle
function Base:connect(name, callback)
return self.signaler:connect(name, callback)
return self._signaler:connect(name, callback)
end

---Emits a signal.
---
---@param name string Signal to emit
---@param ... any Parameter to sent to the callbacks
function Base:emit(name, ...)
self.signaler:emit(name, ...)
self._signaler:emit(name, ...)
end

---Disconnects a given callback.
---
---@param handle snowcap.signal.SignalHandle Handle to the callback to disconnect.
function Base:disconnect(handle)
self.signaler:disconnect(handle)
self._signaler:disconnect(handle)
end

---Disconnects all signal handlers.
function Base:disconnect_all()
self.signaler:disconnect_all()
self._signaler:disconnect_all()
end

---Gets the widget's unique id.
Expand All @@ -91,14 +91,21 @@ function Base:id()
return self.widget_id
end

---Gets the widget's signaler
---
---@return snowcap.signal.Signaler
function Base:signaler()
return self._signaler
end

---Creates a new widget base.
---
---@return snowcap.widget.base.Base
function Base.new()
---@type snowcap.widget.base.Base
local self = {
widget_id = next_id(),
signaler = signal.Signaler.new(),
_signaler = signal.Signaler.new(),
}

setmetatable(self, Base)
Expand Down
Loading