Sannyasin Brahmanathaswami wrote:

> Someone sent me this solution off line..
>
> on mouseUp
>   CenterTextVertically "field 2"
> end mouseUp
>
> on CenterTextVertically myFld
>   put the effective textHeight of myFld into tTextHeight
>   put item 2 of the loc of myFld into tfield
>   put the formattedRect of line 1 to - 1 of myFld into tFormatRect
>   put item 4 of tFormatRect - item 2 of tFormatRect into tFormatHeight
>   put tFormatHeight div 2 into tFormatHalfHeight
>   put item 2 of tFormatRect into tCurrFormatTop
>   put tfieldY - tCurrFormatTop into tCenterField_To_TopTextDiff
> set the topMargin of myFld to the topMargin of myFld + tCenterField_To_TopTextDiff - tFormatHalfHeight
> end CenterTextVertically
>
> But, agreed, it should be a 3 liner  will you "bug it" for us?

The first executable line there sets a value in tTextHeight but doesn't use it later on, so it's really fewer lines than it appears. :)

The number of lines isn't as important as that it's possible.

That one's just a longer version of Jacque's algo, which gets the difference between the formatted height of the text from the field, and set the topMargin to half of that.

That's logical and should work, but trying my version this morning and later Jacque's and this one, all of them are a bit off and more than a bit funky: if you click the button multiple times the text moves up and down in ever smaller increments before settling into a position that's somewhat close the vertically centered, but too high in tall fields and too low in short fields.

So a bug report wouldn't be for any specific number of lines, but merely that either the topMargin and/or formattedHeight be fixed so it can be possible to apply good logic to get good results.

--
 Richard Gaskin
 Fourth World Systems
 Software Design and Development for the Desktop, Mobile, and the Web
 ____________________________________________________________________
 ambassa...@fourthworld.com                http://www.FourthWorld.com


_______________________________________________
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