Set Text to the Vertical Center of the field
J. Landman Gay
jacque at hyperactivesw.com
Sat Apr 2 19:14:19 EDT 2016
On 4/2/2016 4:42 PM, Richard Gaskin wrote:
> 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.
Okay, I think I have this partly figured out. I saw the same jiggling,
but now that I know the margins are part of the formattedheight, it
makes sense. On every click, the margins were reset and the
formattedheight changed.
So the solution seems to be:
1 get the formattedheight of only the lines (which ignores the margins)
2 calculate the extra empty space above and below that text
3 divide the space in half to get a top margin
4 add in half the ascender/descender padding (about 33% of textheight)
I think...
--
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the use-livecode
mailing list