aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--handlers.ha7
-rw-r--r--main.ha6
2 files changed, 12 insertions, 1 deletions
diff --git a/handlers.ha b/handlers.ha
index c4f28db..fb6837e 100644
--- a/handlers.ha
+++ b/handlers.ha
@@ -43,6 +43,13 @@ fn runehandler(l: *widget::widget, r: libtui::key) bool = {
list::pagedown(l);
case 'u' =>
list::pageup(l);
+ case 'h' =>
+ if (msg != "") {
+ libtui::suspend(&l.widget.ui);
+ fmt::println(msg)!;
+ libtui::resume(&l.widget.ui);
+ return true;
+ };
case 'l' =>
// to print properly suspend the ui, print, then resume
libtui::suspend(&l.widget.ui);
diff --git a/main.ha b/main.ha
index 467f773..5f55a91 100644
--- a/main.ha
+++ b/main.ha
@@ -19,6 +19,7 @@ let searchterm: str = "";
let searchforward: bool = true;
let nulterm: bool = false;
+let msg: str = "";
type mainUI = struct {
list: *list::listwidget,
@@ -77,7 +78,8 @@ fn resize(list: *list::listwidget) void = {
export fn main() void = {
const cmd = getopt::parse(os::args,
"interactive list",
- ('0', "NUL terminated output")
+ ('0', "NUL terminated output"),
+ ('m', "msg", "string to print when 'h' is pressed (this can be used for custom help messages or building basic extra external features)"),
);
defer getopt::finish(&cmd);
@@ -86,6 +88,8 @@ export fn main() void = {
switch (opt.0) {
case '0' =>
nulterm = true;
+ case 'm' =>
+ msg = opt.1;
};
};