Glyph Text in LC7 Won't Wrap

Scott Rossi scott at tactilemedia.com
Sun Mar 15 18:03:54 EDT 2015


On 3/15/15, 1:10 PM, "Richmond" <richmondmathewson at gmail.com> wrote:

>On 15/03/15 21:53, Scott Rossi wrote:
>> I have a text field that is filled with tab delimited glyph characters
>> from an icon font (FontAwesome).  The field wraps as expected in LC 6.7,
>> but displays all characters on a single line in LC 7.0.3 regardless of
>>the
>> dontWrap setting.  The dontWrap property works because if I place Roman
>> text in the field, it wraps as expected.
>>
>> This seems due to the new Unicode text handling, but now how now do I
>>get
>> the field to wrap its glyph character text?
>>
>> Thanks & Regards,
>>
>> Scott Rossi
>> Creative Director
>> Tactile Media, UX/UI Design
>>
>>
>>
>http://forums.livecode.com/viewtopic.php?f=6&t=10810&start=30
>
>Richmond.


The bottom line is one shouldn¹t have to do anything like this when text
is separated by spaces or tabs.  Text should wrap automatically.

That said, if using LC 6.5 or later, you can do what you show in your
stack much more dynamically by using something like the measureText
function within a resizeControl handler.  Unlock your source field, and
add the following script to the field:

on resizeControl
   local theWrappedText
   put width of me into myWidth
   put margins of me into myMargins
   subtract item 1 of myMargins from myWidth
   if item 3 of myMargins is not empty then
      subtract item 3 of myMargins from myWidth
   else subtract item 1 of myMargins from myWidth
   put text of me into myText
   replace return with empty in myText -- RESET TEXT
   lock screen
   put 1 into S
   repeat with N = 1 to number of chars of myText
      put measureText(char S to N of myText,me) into theLineWidth
      if theLineWidth > myWidth then
         put return after theWrappedText
         put N into S
      end if
      put char N of myText after theWrappedText
   end repeat
   set text of me to theWrappedText
   unlock screen
end resizeControl

You also make the field wrap instantaneous by placing the field in a group
and triggering the wrap from resizing the group since groups generate the
resizeControl message while they¹re being resized.  A sample of this has
been uploaded to your post in the forum.

Regards,

Scott Rossi
Creative Director
Tactile Media, UX/UI Design








More information about the use-livecode mailing list