Re: Manipulate with Wrapping SetterBars
- To: mathgroup at smc.vnet.net
- Subject: [mg80385] Re: Manipulate with Wrapping SetterBars
- From: Albert <awnl at arcor.net>
- Date: Tue, 21 Aug 2007 04:57:59 -0400 (EDT)
- References: <fabgb6$i7i$1@smc.vnet.net>
Hi David, > I always find that there is a disconnect in the documentation in specifying > the operation of various ControlTypes in Manipulate. Various Control > elements have options but it is never quite clear how these options are to > be supplied to the Manipulate statement. > > So here is a simple case that has me stymied. I want to display a long > SetterBar and I want it to wrap to the size of the displayed expression. > But I can't make the SetterBar wrap even though, according to the > documentation, there is a SetterBar option that is suppose to make it > wrap - and does for one example. > > nvalues = Flatten[Table[{2, 3, 5, 7, 10} 10^i, {i, 0, 4}]]; > Manipulate[ > Row[{Text["The value of the parameter n used in this case is: "], > n}], > {{n, First[nvalues], "n: "}, nvalues, ControlType -> SetterBar, > Appearance -> "Row"}] > > I don't think the Appearance->"Row" option is even being picked up. > > And even if it does get picked up, how can I control the wrapping > width of > the SetterBar? I don't know whether this is possible without extra effort. The line wrapping seems to be relativ to the CellOption PageWidth of the containing Cell, which you can check by manually changing it. I don't know if and how you can make the line wrapping depend on the displayed expression directly. It should be possible to get something to work with some clever usage of Dynamic and/or if the Manipulate is shown in an extra Window, but since the documentation is not very verbose, it would take some experimental effort to find out. The following lets you set the PageWidth dynamically, so if you can extract the ImageSize of the displayed expression, you can set the PageWidth correspondingly: pw=700; ExpressionCell[Manipulate[Row[{Text["The value of the parameter n used in this case is: "],n}],{{n,First[nvalues],"n: "},nvalues,ControlType->SetterBar,Appearance->"Row"}],PageWidth->Dynamic[pw] ] now when changing e.g. pw=500 you will see the wrapping will change. hth, albert