MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

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


  • Prev by Date: Re: Interpolation of data to form a parametric curve
  • Next by Date: Re: Intensive numerical calculations
  • Previous by thread: Re: Manipulate with Wrapping SetterBars
  • Next by thread: Re: Manipulate with Wrapping SetterBars