scripting challenge: Large/Smaller text size

Buster wouter.abraham at scarlet.be
Sat Jul 2 19:19:05 EDT 2005


Hi,

When reducing textsize by the way of the htmltext there must be a  
little check added on the size itself.
When <font size="8"  is reduced to  <font size="7" by the handlers,  
setting the htmltext will turn it into  <font size="25"
(this goes back to rev 1.1.1)

Greetings,
Wouter

On 02 Jul 2005, at 21:59, Richard Gaskin wrote:

> Mark Smith wrote:
>
>> So I think I've cracked it...
>> since the htmltext of a field includes tags only for those parts  
>> of the text that do not inherit their attributes from their  
>> parent, it seems to be necessary to generate the appropriate tags  
>> for the rest of the text, as well. Not doing so produced peculiar  
>> results. This took 157 milliseconds on the same 20000 word field.
>>
>
> That's some damn fine work, Mark.
>
> Anyone beat 157ms on a block of 20,000 words with 2,000 of them  
> styled?
>
> --
>  Richard Gaskin
>  Managing Editor, revJournal
>  _______________________________________________________
>  Rev tips, tutorials and more: http://www.revJournal.comm
>
>
>> on changeTextSize inc
>>   -- make the tags that will set text to the effective textSize in  
>> force
>>   put "<font size=" & quote & the effective textSize of fld 1 &  
>> quote & ">" into openTag
>>   put "</font>" into closeTag
>>   -- get the html
>>   put the htmltext of fld 1 into ttext
>>   --this next block sets size tags for all the unsized text
>>   replace "</font>" with "</font>" & openTag in ttext
>>   replace "<font size=" with closeTag & "<font size=" in ttext
>>   replace closeTag & closeTag with closeTag in ttext
>>    --ugly, i know, but I could'nt see a better way
>>   put openTag after char 3 of ttext
>>   -- puts openTag after the intial <p> tag
>>   --now get all the size values from the size tags
>>   --via the getHSizes function
>>   put getHSizes(ttext) into sizeList
>>   if sizeList is not empty then
>>     repeat for each line L in sizeList
>>       put quote & L & quote into pSize
>>       put quote & L+inc & quote into nSize
>>       replace "<font size=" & pSize with "<font size=" & nSize in  
>> ttext
>>     end repeat
>>   end if
>>   set the htmltext of fld 1 to ttext
>> end changeTextSize
>> function getHSizes tt
>>   put empty into sizeList
>>   -- turn each tag into an item
>>   replace "<" with numToChar(28) in tt
>>   replace ">" with numToChar(28) in tt
>>   set the itemDelimiter to numToChar(28)
>>   repeat for each item i in tt
>>     if "font size=" is in i then
>>       --if the item is a font size tag then
>>       --get the value inside the quotes ie font size="14"
>>       put offset(quote,i) +1 into startChar
>>       put offset(quote,i,startchar) into endChar
>>       put char startChar to (startChar + endChar -1) of i into fSize
>>       if fSize is not among the lines of sizeList then put fSize &  
>> cr after sizeList
>>     end if
>>   end repeat
>>   return char 1 to -2 of sizeList
>> end getHSizes
>> Cheers,
>> Mark





More information about the use-livecode mailing list