Re: reducing the size of a Manipulate slider control, problem when using ImageSize
- To: mathgroup at smc.vnet.net
- Subject: [mg123419] Re: reducing the size of a Manipulate slider control, problem when using ImageSize
- From: Chris Young <cy56 at comcast.net>
- Date: Tue, 6 Dec 2011 03:14:21 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <fbj3ae$noj$1@smc.vnet.net> <jbi6j5$532$1@smc.vnet.net>
On 2011-12-05 10:32:05 +0000, Tomas Garza said:
It's not necessarily redundant, since you might want to have different
sizes for the sliders (or whatever control you use). Take a look at
this example:
Column[
{
Style["Different size sliders in the same row", 13, "Label"],
Manipulate[
Module[
{},
Graphics[
{
{Line[{p1, p2, p3, p1}], Yellow, Disk[p1, 0.05]},
Style[Text["A", p1], Background -> White, Bold, Italic, 12, "Label"],
Style[Text["B", p2], Background -> White, Bold, Italic, 12, "Label"],
Style[Text["C", p3], Background -> White, Bold, Italic, 12, "Label"]
},
PlotRange -> {{-0.2, 1.2}, {-0.2, 1}},
Axes -> True
]
],
Row[
{
Spacer[35],
Control[{{p1, {0, 0}, "A"}, {0, 0}, {1, 1}, ImageSize -> 25}],
Spacer[50],
Control[{{p2, {1, 0}, "B"}, {0, 0}, {1, 1}, ImageSize -> 50}],
Spacer[50],
Control[{{p3, {0.5, 0.5}, "C"}, {0, 0}, {1, 1}, ImageSize -> 75}]
}
] (* Row *)
] (* Manipulate *)
}
] (* Column *)
Thanks, that's good to know. It looks like Manipulate will accept the
following, too. Here the Row[ ] of controls seems to be accepted as a
valid set of control specifications, so we don't need the Module.
Column[
{
Style["Different size sliders in the same row", 13, "Label"],
Manipulate[
Graphics[
{
{Line[{p1, p2, p3, p1}], Yellow, Disk[p1, 0.05]},
Style[Text["A", p1], Background -> White, Bold, Italic, 12, "Label"],
Style[Text["B", p2], Background -> White, Bold, Italic, 12, "Label"],
Style[Text["C", p3], Background -> White, Bold, Italic, 12, "Label"]
},
PlotRange -> {{-0.2, 1.2}, {-0.2, 1}},
Axes -> True
],
Row[
{
Spacer[35],
{p1, {0, 0}, {1, 1}},
Spacer[50],
Control[{{p2, {1, 0}, "B"}, {0, 0}, {1, 1}, ImageSize -> 50}],
Spacer[50],
Control[{{p3, {0.5, 0.5}, "C"}, {0, 0}, {1, 1}, ImageSize -> 75}]
}
] (* Row *)
] (* Manipulate *)
}
] (* Column *)
Also, I managed to get it down to the following, just to experiment
with the different labelling options. Might as well use FrameLabel
instead of going through the trouble of setting up a Row, although you
still have to fuss with the nested curly brackets to specify which side
you want the label on.
Manipulate[
Graphics[
{
{Line[{p1, p2, p3, p1}], Yellow, Disk[p1, 0.05]},
Style[Text["A", p1], Background -> White, Bold, Italic, 12, "Label"],
Style[Text["B", p2], Background -> White, Bold, Italic, 12, "Label"],
Style[Text["C", p3], Background -> White, Bold, Italic, 12, "Label"]
},
PlotRange -> {{-0.2, 1.2}, {-0.2, 1}},
Axes -> True,
PlotLabel -> "Triangle points via 2D sliders"
],
Item["2D sliders in a column", ControlPlacement -> Center],
{p1, {0, 0}, {1, 1}},
{p2, {0, 0}, {1, 1}},
{p3, {0, 0}, {1, 1}},
ControlPlacement -> Left,
FrameLabel -> {{"", ""}, {"", "Moving labelled points via 2D sliders"}}
]