Re: Re: text size in GUIKit
- To: mathgroup at smc.vnet.net
- Subject: [mg50958] Re: [mg50872] Re: [mg50862] text size in GUIKit
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Wed, 29 Sep 2004 03:15:41 -0400 (EDT)
- Organization: Mathematics & Statistics, Univ. of Mass./Amherst
- References: <200409240841.EAA21793@smc.vnet.net> <200409250555.BAA05036@smc.vnet.net>
- Reply-to: murray at math.umass.edu
- Sender: owner-wri-mathgroup at wolfram.com
OK. But now how do I change the font size of a field label?
I tried replacing the label with a StyleForm expression, but that is not
accepted. For example, in your "first variant", I edited it to be:
GUIRun[
Widget["Panel", {
{Widget["Label", {"text" -> StyleForm["Input:", FontSize -> 36]}],
Widget["TextField", {"text" -> "Some text.",
"columns" -> 12}, Name -> "myText"]},
Script[
fnt = PropertyValue[{"myText", "font"}];
newFnt = InvokeMethod[{fnt, "deriveFont"}, 36];
SetPropertyValue[{"myText", "font"}, newFnt];
]
}, WidgetLayout -> {"Border" -> {{5, 5}, {5, 10}}}]
]
An error message ensued:
Widget::deferr: Input: is not valid GUI definition content.
(with the word 'Input' in 36-point type!), and of course then the
subsequent error message:
GUIRun::nvalid: The GUI definition contains invalid content.
Jeff Adams wrote:
> On Sep 24, 2004, at 3:41 AM, Murray Eisenberg wrote:
>
>
>>With the GUIKit, is there some way to force a larger font size for text
>>input fields?
>
>
> Hello,
>
> Most widgets that display text have a "font" property that you can get
> or set.
>
> You can either construct a new instance of a font with an appropriate
> call to
> Widget["Font", InitialArguments -> {...}] but normally you want to
> modify the
> existing font used by the widget so that you preserve the chosen look
> and feel
> font for any given platform.
>
> A convenient method on Widget["Font"] is InvokeMethod[{font,
> "deriveFont"}, fontSize_]
> which returns a new instance of the font with only the size changed.
>
> Here are a few examples that modify this basic user interface:
>
> GUIRun[
> Widget["Panel", {
> {Widget["Label", {"text" -> "Input:"}],
> Widget["TextField", {"text" -> "Some text.",
> "columns" -> 12}, Name -> "myText"]}
> }, WidgetLayout -> {"Border" -> {{5, 5}, {5, 10}}}]
> ]
>
> to highlight how you can use the "deriveFont" method or create a
> new Widget["Font"] instance based on an existing font or constructed
> anew:
>
> In this first variant we use "deriveFont" with the default font of the
> text field
> and change its font size to 36:
>
> GUIRun[
> Widget["Panel", {
> {Widget["Label", {"text" -> "Input:"}],
> Widget["TextField", {"text" -> "Some text.",
> "columns" -> 12}, Name -> "myText"]},
> Script[
> fnt = PropertyValue[{"myText", "font"}];
> newFnt = InvokeMethod[{fnt, "deriveFont"}, 36];
> SetPropertyValue[{"myText", "font"}, newFnt];
> ]
> }, WidgetLayout -> {"Border" -> {{5, 5}, {5, 10}}}]
> ]
>
>
> Here, we construct a new instance of Widget["Font"] but use the
> existing properties
> of the default font again, increasing its current size by 5:
>
> GUIRun[
> Widget["Panel", {
> {Widget["Label", {"text" -> "Input:"}],
> Widget["TextField", {"text" -> "Some text.",
> "columns" -> 12}, Name -> "myText"]},
> Script[
> fnt = PropertyValue[{"myText", "font"}];
> args = {PropertyValue[{fnt, "fontName"}], PropertyValue[{fnt,
> "style"}],
> PropertyValue[{fnt, "size"}] + 5};
> newFnt = Widget["Font", InitialArguments -> args];
> SetPropertyValue[{"myText", "font"}, newFnt];
> ]
> }, WidgetLayout -> {"Border" -> {{5, 5}, {5, 10}}}]
> ]
>
>
> Lastly, you can also construct a new font from literal names and sizes
> though this
> may not work on all platforms depending upon what font names you use:
>
> GUIRun[
> Widget["Panel", {
> {Widget["Label", {"text" -> "Input:"}],
> Widget["TextField", {"text" -> "Some text.",
> "columns" -> 12}, Name -> "myText"]},
> Script[
> args = {"Monospaced", PropertyValue[{"class:java.awt.Font",
> "Bold"}], 18};
> newFnt = Widget["Font", InitialArguments -> args];
> SetPropertyValue[{"myText", "font"}, newFnt];
> ]
> }, WidgetLayout -> {"Border" -> {{5, 5}, {5, 10}}}]
> ]
>
>
> In all cases above, once you construct a new font instance you can use
> this single font and
> set it as the font property value for all or as many widgets in your
> user interface as you want.
> You can also give this font instance a name using the Name -> "myFont"
> option and
> reference this font in the rest of your user interface using a
> WidgetReference["myFont"] call
>
> Jeff Adams
> Wolfram Research
>
>
--
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305
- References:
- text size in GUIKit
- From: Murray Eisenberg <murray@math.umass.edu>
- Re: text size in GUIKit
- From: Jeff Adams <jeffa@wolfram.com>
- text size in GUIKit