Glyph Text in LC7 Won't Wrap
Richmond
richmondmathewson at gmail.com
Sun Mar 15 18:10:41 EDT 2015
The whole point of my stack was to wrap a long string that contained NO spaces.
Richmond.
from my jail-broken, recycled iPad 1
On 16 Mar 2015, at 00:03, Scott Rossi <scott at tactilemedia.com> wrote:
>
> 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
>
>
>
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list