I’ve taken a quick stab at this ...

This script adds spaces between words of a line to get it close to the full 
width of the field to create a quick & dirty faux fully-justified field.
In operation, It converts each visible line of text to a LiveCode line 
(delineated by CRs) so the final text has a CR after each visible line. Then it 
uses the formattedWidth property of each line to determine its current width, 
then adds spaces between words to fill out the full width of the line. 

Note that the final width of the text is determined by tMaxWidth, which is 
based on the widest visible line of the field. But that could be changed to use 
the width property of the field itself, minus any V scrollbars.

Peter Bogdanoff


on mouseUp
   set lockscreen to true
   # Add CRs to the end of each line 
   put the formattedText of field "Text2" into field "Text2"
   
   # Find longest line of text. This will determine the overall width of the 
text.
   # This probably should be modified to simply get the width property of the 
field itself.
   put 0 into tMaxWidth
   repeat with x = 1 to the number of lines of field "Text2"
      put the formattedWidth of line x of field"Text2" into tWidth
      if tWidth > tMaxWidth then put tWidth into tMaxWidth
   end repeat
   
   # Format each line
   put tMaxWidth - 5 into tMaxWidth # This number can be adjusted for best 
results

   repeat with x = 1 to (the number of lines of field "Text2" - 1) # Don't 
format last line
      put 100 into maxRepeats # Max number of spaces that can be added to a line
      if line x of field "Text2" is empty then next repeat      
      if the formattedWidth of line x of field"Text2" >= tMaxWidth then next 
repeat
      
      put the number of words of line x of field "Text2" into tWordNum
      if char -1 of word tWordNum of line x of field "Text2" is "." then next 
repeat # Last word of a paragraph
      repeat with z = 1 to maxRepeats
         repeat with y = 1 to (tWordNum - 1) # Don't add spaces after the last 
word of a line
            put space after word y of line x of field "Text2"
            if the formattedWidth of line x of field "Text2" >= tMaxWidth then 
exit repeat
         end repeat
         if the formattedWidth of line x of field"Text2" >= tMaxWidth then put 
maxRepeats into z
      end repeat
   end repeat
end mouseUp


> On Feb 9, 2022, at 10:28 PM, Tom Glod via use-livecode 
> <use-livecode@lists.runrev.com> wrote:
> 
> Hello Curt,
> 
> The only thing you can do is adjust the font size to maximize the use of
> the width of the field.....with the don't wrap enabled. :)
> Remember the margins can be adjusted individually. like so 0,5,5,0
> Also, there is a problem with the margins when the font gets too small. in
> those cases, it helps to have "showborder" enabled, even if the borderwidth
> is set to 0.
> 
> All the best,
> 
> Tom
> 
> Founder & Developer @ MakeShyft R.D.A <https://www.makeshyft.com/>
> Build Software with AppStarterStack <https://www.appstarterstack.com/> for
> Livecode
> Save Time with The Time Saver's Toolbox <https://www.timesaverstoolbox.com/>
> 
> On Wed, Feb 9, 2022 at 5:50 PM Paul Dupuis via use-livecode <
> use-livecode@lists.runrev.com> wrote:
> 
>> On 2/9/2022 5:24 PM, Curt Ford via use-livecode wrote:
>>> This seems like an awfully basic question, but is it possible to have
>>> text with full justification in a field?
>>> 
>>> I've looked at using WordLib, but this client's text has lots of fussy
>>> formatting (background colors, different colors for individual
>>> characters) that didn't come through well.
>>> 
>>> Thanks for any ideas,
>>> 
>>> Curt
>> 
>> See the Dictionary entry for textAlign:
>> 
>> set the textAlign [of line] of {button | field} to {left | center | right}
>> 
>> There is no justified option. There is a REALLY old enhancement request
>> at https://quality.livecode.com/show_bug.cgi?id=4714
>> 
>> _______________________________________________
>> 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
>> 
> _______________________________________________
> 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


_______________________________________________
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

Reply via email to