From b3b57e12fa7f07d5827fecd42449a77beb1889e6 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Thu, 26 Oct 2023 18:45:47 +0400 Subject: [PATCH] Move conversations widget to the samples --- community/screen-state-menu.lua | 53 +++++++++++++++++++ .../conversations-widget.lua | 0 2 files changed, 53 insertions(+) create mode 100644 community/screen-state-menu.lua rename {community => samples}/conversations-widget.lua (100%) diff --git a/community/screen-state-menu.lua b/community/screen-state-menu.lua new file mode 100644 index 0000000..c433bb6 --- /dev/null +++ b/community/screen-state-menu.lua @@ -0,0 +1,53 @@ +-- name = "Screen state" +-- type = "drawer" + +local prefs = require "prefs" + +function on_drawer_open() + if prefs.states == nil then + prefs.states = {} + end + + update_screen() +end + +function update_screen() + local state_names = {} + + for k,v in pairs(prefs.states) do + table.insert(state_names, k) + end + + table.insert(state_names, "Save new state") + + drawer:show_list(state_names) +end + +function on_click(idx) + if idx > #prefs.states then + save_state("State") + else + restore_state(name) + end +end + +function save_state(name) + local state = aio:active_widgets() + prefs.states[name] = state + update_screen() +end + +function restore_state(name) + remove_all_widgets() + + for k,v in pairs(prefs.states[name]) do + aio:add_widget(v.name, v.position) + end +end + +function remove_all_widgets() + local curr_state = aio:active_widgets() + for k,v in pairs(curr_state) do + aio:remove_widget(v.position) + end +end diff --git a/community/conversations-widget.lua b/samples/conversations-widget.lua similarity index 100% rename from community/conversations-widget.lua rename to samples/conversations-widget.lua