Use symbols for shapes
authorDave Carlton <davec@mac.com>
Thu, 8 Sep 2022 16:49:37 +0000 (11:49 -0500)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 8 Sep 2022 18:09:26 +0000 (11:09 -0700)
basis/ui/gadgets/editors/editors-docs.factor
basis/ui/gadgets/editors/editors.factor

index 927e50682496b31a70f920b773531ea00a3f80af..15da0b931ef74fe8d2f2be03d75561d7a2ffdbdb 100644 (file)
@@ -40,16 +40,15 @@ HELP: caret-is-shape
 $nl
 { $code
 "  IN: ui.gadgets.editors"
-"  2 caret-is-shape set"
+"  +box+ caret-shape set-global"
 ""
 } print-element
 $nl
 { $table
   { "Value" "Shape" }
-  { "f" "default (line)" }
-  { "0" "line" }
-  { "1" "box" }
-  { "2" "filled box" }
+  { "+line+" "line (default)" }
+  { "+box+" "box" }
+  { "+filled+" "filled box" }
 } print-element
 
 { $references   "Set desired shape in your .factor-rc file" 
index b4ec2c37448db8c2093ae956ae893b067b55cbac..f846d6cbdb881cefa69dbfb7104f58cc124b6edb 100644 (file)
@@ -8,12 +8,13 @@ models.arrow namespaces opengl opengl.gl sequences sorting
 splitting system timers ui.baseline-alignment ui.clipboards
 ui.commands ui.gadgets ui.gadgets.borders
 ui.gadgets.line-support ui.gadgets.menus ui.gadgets.scrollers
-prettyprint ui.gadgets.editors.private math.parser
+prettyprint math.parser
 ui.gestures ui.pens.solid ui.render ui.text ui.theme unicode variables ;
 IN: ui.gadgets.editors
 
 TUPLE: editor < line-gadget
     caret mark
+    caret-shape
     focused? blink blink-timer
     default-text
     preedit-start
@@ -25,8 +26,11 @@ TUPLE: editor < line-gadget
 
 M: editor preedit? preedit-start>> ;
 
-SYMBOL: caret-is-shape 
-: <caret-shape> ( -- shape )  caret-is-shape get <model> ;
+SYMBOLS: +line+ +box+ +filled+ ;
+GLOBAL: caret-is-shape 
++line+ caret-is-shape set-global
+
+: <caret-shape> ( -- shape )  caret-is-shape get-global <model> ;
 
 <PRIVATE
 
@@ -188,10 +192,10 @@ M: editor ungraft*
     (caret-location) (caret-rect) gl-fill-rect ;
 
 : draw-caret-shape ( editor -- )
-    dup caret-shape>> value>> 
+    dup caret-shape>> value>>
     {
-        { 1 [ draw-caret-rect ] }
-        { 2 [ draw-caret-rect-filled ] }
+        { +box+ [ draw-caret-rect ] }
+        { +filled+ [ draw-caret-rect-filled ] }
         [ drop  draw-caret-line ]
     } case ;
     
@@ -199,8 +203,7 @@ M: editor ungraft*
 : draw-caret ( editor -- )
     dup draw-caret? [
         [ editor-caret-color gl-color ] dip
-        [ caret-loc ] [ caret-dim ] bi
-        over v+ gl-line
+        draw-caret-shape
     ] [ drop ] if ;
 
 :: draw-preedit-underlines ( editor -- )