feat: add documentation for `gears.timer`
This commit is contained in:
parent
067473e045
commit
956bd4ac6b
|
@ -0,0 +1,39 @@
|
||||||
|
--- ### Description
|
||||||
|
--- This file contains the EmmyLua based annotations for `gears.timer`, you should not use `require` in this file.
|
||||||
|
--- @module "gears.timer.__emmylua"
|
||||||
|
|
||||||
|
--#region TimerDescriptor Definition
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- These are the arguments that will be passed to `gears.timer`.
|
||||||
|
--- @class TimerDescriptor
|
||||||
|
--- @field timeout number Timeout in seconds.
|
||||||
|
--- @field autostart? boolean Automatically start the timer. It is false by default.
|
||||||
|
--- @field call_now? boolean Call the callback at timer creation. It is false by default.
|
||||||
|
--- @field single_shot? boolean Run only once then stop. It is false by default.
|
||||||
|
--- @field callback? function to connect to the `timeout` signal.
|
||||||
|
|
||||||
|
--#endregion
|
||||||
|
|
||||||
|
--#region Timer Properties
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- The timer timeout value.
|
||||||
|
--- ### Emit Signals
|
||||||
|
--- ```
|
||||||
|
--- -- When the timeout value changes.
|
||||||
|
--- property::timeout(self: Timer, new_value: number)
|
||||||
|
--- ```
|
||||||
|
--- @alias TimerPropertyTimeout number
|
||||||
|
|
||||||
|
--#endregion
|
||||||
|
|
||||||
|
--#region Timer Signals
|
||||||
|
|
||||||
|
--- @alias TimerSignal
|
||||||
|
--- | "start" # Emitted when the timer is started.
|
||||||
|
--- | "stop" # Emitted when the timer is stopped.
|
||||||
|
--- | "timeout" # Emitted when [`timeout`](https://awesomewm.org/apidoc/core_components/gears.timer.html#timeout) seconds have elapsed.
|
||||||
|
--- | "property::timeout" # When the [`timeout`](https://awesomewm.org/apidoc/core_components/gears.timer.html#timeout) value changes.
|
||||||
|
|
||||||
|
--#endregion
|
|
@ -0,0 +1,154 @@
|
||||||
|
--- ### Description
|
||||||
|
--- Timer objects and functions.
|
||||||
|
--- ### Information
|
||||||
|
--- - **Copyright**: 2014 Uli Schlachter
|
||||||
|
--- - **Originally authored by**: Uli Schlachter
|
||||||
|
---
|
||||||
|
--- [See all contributors on GitHub](https://github.com/awesomeWM/awesome/graphs/contributors)
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/utility_libraries/gears.protected_call.html)
|
||||||
|
--- @module "gears.timer"
|
||||||
|
local GTiming = {
|
||||||
|
timer = {
|
||||||
|
--- ### Description
|
||||||
|
--- Create a simple timer for calling the `callback` function continuously.
|
||||||
|
---
|
||||||
|
--- This is a small wrapper around [`gears.timer`](https://awesomewm.org/apidoc/core_components/gears.timer.html#), that creates a timer based on callback.
|
||||||
|
--- The timer will run continuously and call callback every [`timeout`](https://awesomewm.org/apidoc/core_components/gears.timer.html#timeout) seconds.
|
||||||
|
--- It is stopped when `callback` returns false,
|
||||||
|
--- when `callback` throws an error or when the `:stop()`
|
||||||
|
--- method is called on the return value.
|
||||||
|
--- ### Parameters
|
||||||
|
--- @param timeout number Timeout in seconds.
|
||||||
|
--- @param callback function Function to run.
|
||||||
|
--- ### Returns
|
||||||
|
--- @return Timer timer The new timer object.
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/core_components/gears.timer.html#start_new)
|
||||||
|
start_new = function(timeout, callback) end,
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- Create a simple timer for calling the `callback` function continuously.
|
||||||
|
---
|
||||||
|
--- This function is almost identical to [`gears.timer.start_new`](https://awesomewm.org/apidoc/core_components/gears.timer.html#start_new).
|
||||||
|
--- The only difference is that this does not prevent the callback function from being garbage collected.
|
||||||
|
--- In addition to the conditions in [`gears.timer.start_new`](https://awesomewm.org/apidoc/core_components/gears.timer.html#start_new),
|
||||||
|
--- this timer will also stop if `callback` was garbage collected since the previous run.
|
||||||
|
--- ### Parameters
|
||||||
|
--- @param timeout number Timeout in seconds.
|
||||||
|
--- @param callback function Function to run.
|
||||||
|
--- ### Returns
|
||||||
|
--- @return Timer timer The new timer object.
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/core_components/gears.timer.html#weak_start_new)
|
||||||
|
weak_start_new = function(timeout, callback) end,
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- Run all pending delayed calls now.
|
||||||
|
--- This function should best not be used at all, because it means that less batching happens and the delayed calls run prematurely.
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/core_components/gears.timer.html#run_delayed_calls_now)
|
||||||
|
run_delayed_calls_now = function() end,
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- Call the given function at the end of the current GLib event loop iteration.
|
||||||
|
--- ### Parameters
|
||||||
|
--- @param callback function The function that should be called.
|
||||||
|
--- @param ... any Arguments to the callback function
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/core_components/gears.timer.html#delayed_call)
|
||||||
|
delayed_call = function(callback, ...) end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- Create a new timer object.
|
||||||
|
---
|
||||||
|
--- `call_now` only takes effect when a `callback` is provided. `single_shot`, on the other hand, also stops signals connected to the [`timeout`](https://awesomewm.org/apidoc/core_components/gears.timer.html#timeout) signal.
|
||||||
|
---
|
||||||
|
--- Specifying a function `func` as `args.callback` is equivalent to calling `:connect_signal(func)` on the timer object.
|
||||||
|
--- ### Parameters
|
||||||
|
--- @param args TimerDescriptor The arguments.
|
||||||
|
--- ### Returns
|
||||||
|
--- @return Timer timer A new timer.
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/core_components/gears.timer.html#gears.timer)
|
||||||
|
GTiming.timer = function(args) end
|
||||||
|
|
||||||
|
--- @class Timer : Object
|
||||||
|
--- @field started boolean The timer is started.
|
||||||
|
--- @field timeout TimerPropertyTimeout The timer timeout value.
|
||||||
|
local Timer = {}
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- Connect to a signal.
|
||||||
|
--- ### Parameters
|
||||||
|
--- @param name TimerSignal The name of the signal.
|
||||||
|
--- @param action function The callback to call when the signal is emitted.
|
||||||
|
--- ### Inherits
|
||||||
|
--- - [`Object`](https://awesomewm.org/apidoc/utility_libraries/gears.object.html#gears.object) from [`gears.object`](https://awesomewm.org/apidoc/utility_libraries/gears.object.html).
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/core_components/gears.timer.html#connect_signal)
|
||||||
|
function Timer:connect_signal(name, action) end
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- Connect to a signal weakly.
|
||||||
|
--- ### Parameters
|
||||||
|
--- @param name TimerSignal The name of the signal.
|
||||||
|
--- @param action function The callback to call when the signal is emitted.
|
||||||
|
--- ### Inherits
|
||||||
|
--- - [`Object`](https://awesomewm.org/apidoc/utility_libraries/gears.object.html#gears.object) from [`gears.object`](https://awesomewm.org/apidoc/utility_libraries/gears.object.html).
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/core_components/gears.timer.html#weak_connect_signal)
|
||||||
|
function Timer:weak_connect_signal(name, action) end
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- Emit a signal.
|
||||||
|
--- ### Parameters
|
||||||
|
--- @param name TimerSignal The name of the signal.
|
||||||
|
--- @param ... any Extra arguments for the callback functions. Each connected function receives the object as first argument and then any extra arguments that are given to [`emit_signal()`](https://awesomewm.org/apidoc/core_components/gears.timer.html#emit_signal).
|
||||||
|
--- ### Inherits
|
||||||
|
--- - [`Object`](https://awesomewm.org/apidoc/utility_libraries/gears.object.html#gears.object) from [`gears.object`](https://awesomewm.org/apidoc/utility_libraries/gears.object.html).
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/core_components/gears.timer.html#emit_signal)
|
||||||
|
function Timer:emit_signal(name, ...) end
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- Start the timer.
|
||||||
|
--- ### Emit Signals
|
||||||
|
--- ```
|
||||||
|
--- -- When the timer starts.
|
||||||
|
--- start()
|
||||||
|
--- ```
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/core_components/gears.timer.html#start)
|
||||||
|
function Timer:start() end
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- Stop the timer.
|
||||||
|
---
|
||||||
|
--- Does nothing if the timer isn't running.
|
||||||
|
--- ### Emit Signals
|
||||||
|
--- ```
|
||||||
|
--- -- When the timer stops.
|
||||||
|
--- stop()
|
||||||
|
--- ```
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/core_components/gears.timer.html#stop)
|
||||||
|
function Timer:stop() end
|
||||||
|
|
||||||
|
--- ### Description
|
||||||
|
--- Restart the timer.
|
||||||
|
--- This is equivalent to stopping the timer if it is running and then starting it.
|
||||||
|
--- ### Emit Signals
|
||||||
|
--- ```
|
||||||
|
--- -- When the timer starts.
|
||||||
|
--- start()
|
||||||
|
--- -- When the timer stops.
|
||||||
|
--- stop()
|
||||||
|
--- ```
|
||||||
|
---
|
||||||
|
--- [View documents](https://awesomewm.org/apidoc/core_components/gears.timer.html#again)
|
||||||
|
function Timer:again() end
|
||||||
|
|
||||||
|
return GTiming.timer
|
Loading…
Reference in New Issue