diff options
Diffstat (limited to 'apps/plugins/lua_scripts/file_browser.lua')
-rw-r--r-- | apps/plugins/lua_scripts/file_browser.lua | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/apps/plugins/lua_scripts/file_browser.lua b/apps/plugins/lua_scripts/file_browser.lua new file mode 100644 index 0000000000..19f475acf3 --- /dev/null +++ b/apps/plugins/lua_scripts/file_browser.lua | |||
@@ -0,0 +1,77 @@ | |||
1 | --[[ | ||
2 | __________ __ ___. | ||
3 | Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | \/ \/ \/ \/ \/ | ||
8 | $Id$ | ||
9 | Example Lua File Viewer script | ||
10 | Copyright (C) 2020 William Wilgus | ||
11 | This program is free software; you can redistribute it and/or | ||
12 | modify it under the terms of the GNU General Public License | ||
13 | as published by the Free Software Foundation; either version 2 | ||
14 | of the License, or (at your option) any later version. | ||
15 | This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | KIND, either express or implied. | ||
17 | ]]-- | ||
18 | |||
19 | require("actions") -- Contains rb.actions & rb.contexts | ||
20 | -- require("buttons") -- Contains rb.buttons -- not needed for this example | ||
21 | |||
22 | --local _timer = require("timer") | ||
23 | --local _clr = require("color") -- clrset, clrinc provides device independent colors | ||
24 | local _lcd = require("lcd") -- lcd helper functions | ||
25 | --local _print = require("print") -- advanced text printing | ||
26 | --local _img = require("image") -- image manipulation save, rotate, resize, tile, new, load | ||
27 | --local _blit = require("blit") -- handy list of blit operations | ||
28 | --local _draw = require("draw") -- draw all the things (primitives) | ||
29 | --local _math = require("math_ex") -- missing math sine cosine, sqrt, clamp functions | ||
30 | |||
31 | |||
32 | local scrpath = rb.current_path()--rb.PLUGIN_DIR .. "/demos/lua_scripts/" | ||
33 | |||
34 | package.path = scrpath .. "/?.lua;" .. package.path --add lua_scripts directory to path | ||
35 | |||
36 | require("printmenu") --menu | ||
37 | require("filebrowse") -- file browser | ||
38 | |||
39 | rb.actions = nil | ||
40 | package.loaded["actions"] = nil | ||
41 | |||
42 | -- uses print_table to display a menu | ||
43 | function main_menu() | ||
44 | local mt = { | ||
45 | [1] = "Rocklua File Browser Example", | ||
46 | [2] = "Sort by Name", | ||
47 | [3] = "Sort by Size", | ||
48 | [4] = "Sort by Date", | ||
49 | [5] = "Exit" | ||
50 | } | ||
51 | |||
52 | local ft = { | ||
53 | [0] = exit_now, --if user cancels do this function | ||
54 | [1] = function(TITLE) return true end, -- shouldn't happen title occupies this slot | ||
55 | [2] = function(SBNAME) | ||
56 | _lcd:splashf(rb.HZ, "%s", file_choose("/", "", "name", false) or "None") | ||
57 | end, | ||
58 | [3] = function(SBSIZE) | ||
59 | _lcd:splashf(rb.HZ, "%s", file_choose("/", "", "size", true) or "None") | ||
60 | end, | ||
61 | [4] = function(SBDATE) | ||
62 | _lcd:splashf(rb.HZ, "%s", file_choose("/", "", "date") or "None") | ||
63 | end, | ||
64 | [5] = function(EXIT_) return true end | ||
65 | } | ||
66 | |||
67 | print_menu(mt, ft) | ||
68 | |||
69 | end | ||
70 | |||
71 | function exit_now() | ||
72 | _lcd:update() | ||
73 | os.exit() | ||
74 | end -- exit_now | ||
75 | |||
76 | main_menu() | ||
77 | exit_now() | ||