From c69c380ffe150b5a9115c7780fdf365283360b89 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Thu, 8 Sep 2022 11:37:44 -0700 Subject: [PATCH] ui.gadgets.editors: tweak caret-style and fix docs --- basis/ui/gadgets/editors/editors-docs.factor | 27 ++++++-------------- basis/ui/gadgets/editors/editors.factor | 23 +++++++---------- 2 files changed, 17 insertions(+), 33 deletions(-) diff --git a/basis/ui/gadgets/editors/editors-docs.factor b/basis/ui/gadgets/editors/editors-docs.factor index 15da0b931e..60dddd03a1 100644 --- a/basis/ui/gadgets/editors/editors-docs.factor +++ b/basis/ui/gadgets/editors/editors-docs.factor @@ -33,27 +33,16 @@ HELP: { editor-caret editor-mark } related-words -HELP: caret-is-shape -{ $description - "Shape is defined as line, box, or filled box" -} -$nl -{ $code -" IN: ui.gadgets.editors" -" +box+ caret-shape set-global" -"" -} print-element -$nl +HELP: caret-style +{ $description "Caret styles available:" { $table { "Value" "Shape" } - { "+line+" "line (default)" } - { "+box+" "box" } - { "+filled+" "filled box" } -} print-element - -{ $references "Set desired shape in your .factor-rc file" - "rc-files" } - ; + { { $link +line+ } "line (default)" } + { { $link +box+ } "box" } + { { $link +filled+ } "filled box" } +} +} +{ $references "Set desired caret style in your .factor-rc file" "rc-files" } ; HELP: editor-caret { $values { "editor" editor } { "loc" "a pair of integers" } } diff --git a/basis/ui/gadgets/editors/editors.factor b/basis/ui/gadgets/editors/editors.factor index f846d6cbdb..a036bd550c 100644 --- a/basis/ui/gadgets/editors/editors.factor +++ b/basis/ui/gadgets/editors/editors.factor @@ -27,10 +27,8 @@ TUPLE: editor < line-gadget M: editor preedit? preedit-start>> ; SYMBOLS: +line+ +box+ +filled+ ; -GLOBAL: caret-is-shape -+line+ caret-is-shape set-global - -: ( -- shape ) caret-is-shape get-global ; +SYMBOL: caret-style ++line+ caret-style set-global >>caret - >>caret-shape >>mark ; inline : editor-theme ( editor -- editor ) @@ -176,29 +173,27 @@ M: editor ungraft* { [ focused?>> ] [ blink>> ] [ [ preedit? not ] [ preedit-selection-mode?>> not ] bi or ] } 1&& ; -: (caret-location) ( editor -- loc dim ) +: caret-line ( editor -- loc dim ) [ caret-loc ] [ caret-dim ] bi ; -: (caret-rect) ( dim -- newdim ) - second [ 2 / ] keep 2array ; +: caret-rect ( editor -- loc dim ) + caret-line second [ 2 / ] keep 2array ; : draw-caret-line ( editor -- ) - (caret-location) over v+ gl-line ; + caret-line over v+ gl-line ; : draw-caret-rect ( editor -- ) - (caret-location) (caret-rect) gl-rect ; + caret-rect gl-rect ; : draw-caret-rect-filled ( editor -- ) - (caret-location) (caret-rect) gl-fill-rect ; + caret-rect gl-fill-rect ; : draw-caret-shape ( editor -- ) - dup caret-shape>> value>> - { + caret-style get { { +box+ [ draw-caret-rect ] } { +filled+ [ draw-caret-rect-filled ] } [ drop draw-caret-line ] } case ; - : draw-caret ( editor -- ) dup draw-caret? [ -- 2.34.1