Re: ButtonBox, styles, GraphicsGenerator.nb
- To: mathgroup at smc.vnet.net
- Subject: [mg25026] Re: ButtonBox, styles, GraphicsGenerator.nb
- From: "P.J. Hinton" <paulh at wolfram.com>
- Date: Fri, 1 Sep 2000 21:57:32 -0400 (EDT)
- Organization: Wolfram Research, Inc.
- References: <8hfgjn$i54@smc.vnet.net> <8onegm$ojj@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On 1 Sep 2000, Peter Dickof wrote:
> In the GraphicsGenerator notebook available on MathSource, an example
> is given of button which generates a plot in a standalone notebook
> window. The notebook then says
>
> "Earlier in this notebook, we took some pains in separating
> task-specific material from things that might be reusable. Gathering
> the set of reusable ButtonBox objects together, we can place them in a
> StyleData cell in a style sheet so that you can speed the creation of
> similar buttons. Here is an example of what a cell style might look
> like
>
> Cell[StyleData["PutGraphicInWindow"], StyleMenuListing -> None,
> ButtonStyleMenuListing -> Automatic,
> ButtonBoxOptions -> {ButtonEvaluator -> "Automatic",
> ButtonFunction :> (NotebookPut[
> Notebook[{Cell[GraphicsData["PostScript",
> DisplayString[#2]],
> ShowCellBracket -> False]}, WindowSize -> {300,
> 250},
> WindowElements -> {}, WindowTitle -> "Graphics"]] &
> ),
> Active -> True}] // CellPrint
>
>
> The sample notebook never actually resuses thuis, and I can't figure
> it out.
>
> I copied this to a notebook which I put in the /
> ../configuration/FrontEnds/StyleSheets directory. It still does not
> appear in the Input/Create Button or Input/Edit button menu. Isn't it
> supposed to?
Did you make sure that your working notebook was configured to use the
style sheet that contains the "PutGraphicInWindow" style prototype? The
front end's Edit -> Create Button menu lists only those button styles
which are found in the notebook's current style sheet. It does not search
other style sheet notebooks.
> Also I try to include it directly in a notebook and then use it in
> command
>
> ButtonBox[ToExpression["Plot3D[Sin[x] Cos[y],{x,0,2Pi}, {y,0,2Pi},
> DisplayFunction->Identity],
> ButtonStyle->PutGraphicInWindow]
>
> and nothing happens
>
> What am I doing wrong?
You have complicated the problem here in three ways:
1) You have specified the button's contents to be something that will
evaluate to something else. You should use an inert label instead.
2) Your ToExpression[] is not completely terminated. You need to close
off the string argument and supply a closing square bracket.
3) The value of ButtonStyle should be a string, not a symbol.
Here is how you might reformulate your button structure.
ButtonBox[
"Plot3D[Sin[x] Cos[y],{x,0,2Pi}, {y,0,2Pi}]",
ButtonEvaluator->Automatic,
ButtonData:>ToExpression[
"Plot3D[Sin[x] Cos[y],{x,0,2Pi}, {y,0,2Pi}, DisplayFunction -> \
Identity]"],
Active->True,
ButtonStyle->"PutGraphicInWindow"
]
--
P.J. Hinton
User Interface Programmer paulh at wolfram.com
Wolfram Research, Inc.
Disclaimer: Opinions expressed herein are those of the author alone.