And this is my final effort, for tonight, anyway. My earlier observation that it was necessary to create size tags for any unstyled text seems to be untrue, which saves a bit of work, and I think I've dealt with Wouters observation that it would all break if there were font face tags present. Of course, the whole thing would break anyway if applied to some HTML....

This comes in at around 150 to 200 ms, depending on how big the text gets. (It takes rev longer to put bigger text in a field.)


Mark


on changeTextSize inc
  put the effective textSize of fld 1 into fSize
  put the htmltext of fld 1 into ttext

  --now get all the size values from the size tags
  put getHSizes(ttext) into sizeList

  if inc > 0 AND MAX(sizeList & comma & fSize)+inc > 48 then exit to top
  if inc < 0 AND MIN(sizeList & comma & fSize)+inc < 8 then exit to top

  if inc > 0 then
    sort items of sizeList numeric descending
  else if inc < 0 then
    sort items of sizeList numeric ascending
  end if

  repeat for each item i in sizeList
    put quote & i & quote into pSize
    put quote & i+inc & quote into nSize
    replace "size=" & pSize with "size=" & nSize in ttext
  end repeat

  set the textSize of fld 1 to  fSize+inc
  set the htmltext of fld 1 to ttext
end changeTextSize


function getHSizes tt
  put empty into sizeList
  replace cr with empty in tt
  replace "<" with cr in tt
  replace ">" with cr in tt

  filter tt with "*size=*"

  replace quote with comma in tt
  repeat for each line i in tt
    get itemOffset("size=",i)
    get item it+1 of i
if it is not among the items of sizeList then put it & comma after sizeList
  end repeat

  return char 1 to -2 of sizeList
end getHSizes

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to