diff --git a/basis/ui/gadgets/scrollers/scrollers.factor b/basis/ui/gadgets/scrollers/scrollers.factor index 6c37c37acf..045ecc7990 100644 --- a/basis/ui/gadgets/scrollers/scrollers.factor +++ b/basis/ui/gadgets/scrollers/scrollers.factor @@ -129,10 +129,12 @@ M: scroller focusable-child* M: scroller model-changed nip f >>follows drop ; -TUPLE: limited-scroller < scroller fixed-dim ; +TUPLE: limited-scroller < scroller +{ min-dim initial: { 0 0 } } +{ max-dim initial: { 1/0. 1/0. } } ; -: ( gadget dim -- scroller ) - >r limited-scroller new-scroller r> >>fixed-dim ; +: ( gadget -- scroller ) + limited-scroller new-scroller ; M: limited-scroller pref-dim* - fixed-dim>> ; + [ call-next-method ] [ min-dim>> vmax ] [ max-dim>> vmin ] tri ; diff --git a/basis/ui/tools/deploy/deploy.factor b/basis/ui/tools/deploy/deploy.factor index 0ac89e122f..f310f72780 100644 --- a/basis/ui/tools/deploy/deploy.factor +++ b/basis/ui/tools/deploy/deploy.factor @@ -96,9 +96,12 @@ TUPLE: deploy-gadget < pack vocab settings ; : com-close ( gadget -- ) close-window ; +deploy-gadget "misc" "Miscellaneous commands" { + { T{ key-down f f "ESC" } com-close } +} define-command-map + deploy-gadget "toolbar" f { - { f com-close } - { f com-help } + { T{ key-down f f "F1" } com-help } { f com-revert } { f com-save } { T{ key-down f f "RET" } com-deploy } diff --git a/basis/ui/tools/listener/listener.factor b/basis/ui/tools/listener/listener.factor index d842bf8a68..49ce5203d3 100644 --- a/basis/ui/tools/listener/listener.factor +++ b/basis/ui/tools/listener/listener.factor @@ -25,7 +25,9 @@ TUPLE: listener-gadget < track input output stack ; : listener-input, ( listener -- listener ) dup >>input dup input>> - { 0 100 } + + { 0 100 } >>min-dim + { 1/0. 100 } >>max-dim "Input" f track-add ; diff --git a/basis/ui/tools/traceback/traceback.factor b/basis/ui/tools/traceback/traceback.factor index 6cb79916e0..7e2158e0e9 100644 --- a/basis/ui/tools/traceback/traceback.factor +++ b/basis/ui/tools/traceback/traceback.factor @@ -43,7 +43,10 @@ M: traceback-gadget pref-dim* drop { 550 600 } ; ; : ( model -- gadget ) - { 400 400 } ; + + + { 400 400 } >>min-dim + { 400 400 } >>max-dim ; : variables ( traceback -- ) model>> diff --git a/basis/ui/tools/workspace/workspace.factor b/basis/ui/tools/workspace/workspace.factor index bbe4b12712..f06e0aae26 100644 --- a/basis/ui/tools/workspace/workspace.factor +++ b/basis/ui/tools/workspace/workspace.factor @@ -47,12 +47,15 @@ M: gadget tool-scroller drop f ; : get-tool ( class -- gadget ) get-workspace find-tool nip ; +: ( topic -- pane ) + [ [ help ] with-pane ] keep ; + : help-window ( topic -- ) [ - [ [ help ] with-pane ] keep - { 550 700 } - ] keep - article-title open-window ; + + { 550 700 } >>max-dim + ] [ article-title ] bi + open-window ; : hide-popup ( workspace -- ) dup popup>> track-remove