WIP show prompt for command parameters

This commit is contained in:
Daniel Barlow 2022-12-23 20:27:01 +00:00
parent 2610930690
commit 6efbc34576

View File

@ -105,13 +105,14 @@
{ {
:active s.active :active s.active
:error s.error :error s.error
:prompt (or s.this-param "") :prompt (if s.active (or s.this-param "Command?" "") "")
:default (and param (param)) :default (and param (param))
})) }))
(local prompt (Gtk.Label { :label ""}))
(fn update-widget-state [w result] (fn update-widget-state [w result]
(set w.placeholder_text (set prompt.label (or result.prompt ""))
(or result.prompt ""))
(set w.sensitive result.active) (set w.sensitive result.active)
(set w.text (set w.text
(or result.default result.error ""))) (or result.default result.error "")))
@ -125,10 +126,21 @@
(update-widget-state w (on-input event.text)))) (update-widget-state w (on-input event.text))))
w)) w))
(local box
(let [box
(Gtk.Box {
:orientation Gtk.Orientation.HORIZONTAL
})]
(box:pack_start prompt false false 15)
(box:pack_start widget true true 5)
box))
(fn activate [] (fn activate []
(tset state :active true) (tset state :active true)
(set widget.sensitive true) (set widget.sensitive true)
(set widget.text "") (set widget.text "")
(set prompt.label (or state.this-param "Command" ""))
(widget:grab_focus) (widget:grab_focus)
state) state)
@ -153,7 +165,7 @@
: define-command : define-command
: on-input : on-input
: invoke-interactively : invoke-interactively
: widget :widget box
:_ { :_ {
: reset-state : reset-state
} }