From bbd67b3a16d25f29ef0ff1da938e5519febe0ef8 Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Mon, 26 Dec 2022 11:31:10 +0000 Subject: [PATCH] make entry widget a file-scoped local --- command.fnl | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/command.fnl b/command.fnl index bd40d1e..1b86e85 100644 --- a/command.fnl +++ b/command.fnl @@ -111,19 +111,16 @@ (local prompt (Gtk.Label { :label ""})) -(fn update-widget-state [w result] - (set prompt.label (or result.prompt "")) - (set w.sensitive result.active) - (set w.text - (or result.default result.error ""))) - (local widget (let [w (Gtk.Entry { :sensitive false })] (tset w :on_activate (fn [event] - (update-widget-state w (on-input event.text)))) + (let [result (on-input event.text)] + (set prompt.label (or result.prompt "")) + (set w.sensitive result.active) + (set w.text (or result.default result.error ""))))) w)) (local box @@ -136,6 +133,11 @@ (box:pack_start widget true true 5) box)) +(fn update-widget-state [result] + (set prompt.label (or result.prompt "")) + (set widget.sensitive result.active) + (set widget.text (or result.default result.error ""))) + (fn activate [] (tset state :active true) (set widget.sensitive true) @@ -153,15 +155,15 @@ }] (set state s) (let [r (on-input nil)] - (update-widget-state widget r) + (update-widget-state r) (widget:grab_focus) r))) -(fn active? [] state.active) + { : activate - : active? + :active? (fn [] state.active) : define-command : on-input : invoke-interactively