That is doable, though those values would have to be specified as strings, since "size:+1" isn't valid JSON. But that is OK, since that makes it easier to handle those cases. If size is a number, it is handled as a point size. Otherwise, if it is a string and begins with "+" or "-", we can treat it as a increment or decrement value. If it ends with "%", we would treat it as a percentage value.

On the other hand, "+1" is somewhat vague. What units would apply here? Does the value represent a point size? If so, then you'd still need to know something about the default font to know how "1" relates to it. Maybe a strictly relative format (such as percentage) would be better.

G

On Oct 5, 2009, at 3:21 PM, Noel Grandin wrote:

Hi

Since font sizing is also generally part of the theme, is would be
nice to be able to specify

 styles="font:{size:+1}"

or

 styles="font:{size:120%}"

so that no knowledge of the theme's settings is necessary.

Regards, Noel.

On Mon, Oct 5, 2009 at 19:56, Greg Brown <[email protected]> wrote:
Hi all,

I have just finished making a change that provides much more flexibility in
customizing the appearance of text-based components. Instead of the
"fontBold", "fontItalic", and "fontSize" styles that were previously limited
to the Label skin, you can now use a new JSON-based encoding on any
component that displays text. For example, the following markup will create a PushButton that uses a 12-point bold font whose other attributes are taken
from the theme font:

<PushButton buttonData="Foo" styles="{font:{size:12, bold:true}}"/>

All properties are optional; any unspecified properties will be taken from the theme. The supported attributes are "name" (String), "size" (int), "bold" (boolean), and "italic" (boolean). Note that, if the curly braces are not included, the previous encoding that relied on Font.decodeFont () will be
used.

The down side is that you will need to update any WTKX files that were using the previous styles, since they are no longer supported. Any such changes should be straightforward, but please let me know if you have any questions.

Greg



Reply via email to