Re: reducing the size of a Manipulate slider control, problem when using ImageSize
- To: mathgroup at smc.vnet.net
- Subject: [mg123426] Re: reducing the size of a Manipulate slider control, problem when using ImageSize
- From: Tomas Garza <tgarza10 at msn.com>
- Date: Wed, 7 Dec 2011 06:13:18 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
Yes, I think it's a good idea to experiment with different approaches. As for the Module inside my Manipulate, you're right; it's not necessary and only reflects on my habit of starting anything with a Module so as to have all variables properly localized. In this example there are no variables other than the controls. -Tomas > Date: Tue, 6 Dec 2011 03:14:21 -0500 > From: cy56 at comcast.net > Subject: Re: reducing the size of a Manipulate slider control, problem when using ImageSize > To: mathgroup at 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"}} > ] >