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"}} ]