Hermann wrote: > In sum I learned very important things in this thread: > Using a styledText array (by Alex Tweedly). > Using liststyles for _any_ field (by Jim Lambert). > You could now think about making a "Sample stack" for that (livecodeshare). > > One thing to remark: > One has to adjust the "indention/oudention" by using the left margin and the > first indent. One can even make this width-adaptive to the num of lines and > adjust it in a way to make the numbering looking 'right aligned': > > ## LineNumbering technique by Jim Lambert > ## (applied below by for adaptive and right-aligned indention by -hh). > ## You need a field "TEXT" of styled Text and a checkButton "ShowNumbers". > > ## -- btn "showNumbers > on mouseUp > if the hilite of me then showNumbers > else hideNumbers > end mouseUp > > ## -- fld "TEXT > on textchanged > if the hilite of btn "showNumbers" then showNumbers > else hideNumbers > end textchanged > > on scrollbardrag > if the hilite of btn "showNumbers" then showNumbers > else hideNumbers > end scrollbardrag > > ## card script > local rg="TEXT" > > on hideNumbers > lock screen; lock messages > set the liststyle of line 1 to -1 of fld rg to empty > set the firstindent of line 1 to -1 of fld rg to 0 > set the margins of fld rg to 8 > if there is a grc rg then hide grc rg > unlock screen; unlock messages > end hideNumbers > > on showNumbers > lock screen; lock messages > set the hgrid of fld rg to true -- adjust to your taste > put the num of lines of fld rg into n0 > -- as an empty last line is ignored by LC: > if char -1 of fld rg is cr then add 1 to n0 > put length(n0) into L > set the borderColor of fld rg to "230,230,230" > put 10+L*8 into ww > repeat with i=1 to L > set the firstIndent of line 10^(i-1) to 10^i-1 \ > of fld rg to -16-i*8 > end repeat > set the margins of fld rg to (ww+10,8,8,8) > set the liststyle of line 1 to -1 of fld rg to "decimal" > if there is no grc rg then createNumBack rg > show grc rg > put the rect of fld rg into rct > set points of grc rg to \ > (ww div 2 + item 1 of rct, item 2 of rct) &cr& \ > (ww div 2 + item 1 of rct, item 4 of rct) > set linesize of grc rg to ww > unlock screen; unlock messages > end showNumbers > > on createNumBack gg -- adust to your taste > if there is no grc gg then create grc rg > set style of grc gg to "line" > set capstyle of grc gg to "butt" > set opaque of grc gg to true > set the colorOverlay["color"] of grc rg to "230,230,230" > set blendlevel of grc rg to 70 > end createNumBack > > ## known problem: incorrect 'rightalign' if after deleting the last line > ## the new last line is an empty one and the length of the num changes. > ###END_OF_SCRIPT
Hermann, That’s an elegantly full-featured solution! JimL _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode