Re: Q: Can I create a button function ?
- To: mathgroup at smc.vnet.net
- Subject: [mg18861] Re: Q: Can I create a button function ?
- From: paulh at wolfram.com (P.J. Hinton)
- Date: Sun, 25 Jul 1999 03:30:03 -0400
- Organization: Wolfram Research, Inc.
- References: <7n6aq7$h8v@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <7n6aq7$h8v at smc.vnet.net>, xingjing at calvin.math.vt.edu (Xingjing Li) writes:
> I am trying to create a Mathematica notebook as a calculator type
> application for our project. I put some buttons such as fraction,
> square root, integration, differentiation etc. inside the notebook
> and an editable cell which works as the work and result window. I also
> put in a "Clear" button which I want to clear the contents in the
> editable window when I click it. But I can not find a function which
> can clear the cell but keep the original notebook open. I tried to
> write some button functions which I hope can replace the cell with
> blank cell or close the old, edited notebook then open an identical
> new notebook. But none of them worked. How can I achieve this goal by
> create my own Button Function and where should I keep this function?
The ButtonFunction can be expressed explicitly as an option value in
the ButtonBox object itself, or you can specify a style in the style
sheet from which the button can inherit the function. In your situation
you probably want the former. You can probably accomplish what you want
by embedding a cell tag in the user input cell. A call to NotebookLocate[]
can then be used to move the selection to the cell and then a NotebookWrite[]
can be used to replace the cell with a blank.
Evaluate this expression to create a cell for input entry.
Cell[TextData[""], "Input", CellFrame -> True,
CellTags -> "UserInput"] // CellPrint
Now evaluat this to make the button.
ButtonBox["clear input",
ButtonFunction :>
FrontEndExecute[{FrontEnd`NotebookLocate["UserInput"],
FrontEnd`NotebookWrite[FrontEnd`ButtonNotebook[],
Cell[TextData[""], "Input", CellFrame -> True,
CellTags -> "UserInput"]]}], ButtonEvaluator -> None,
Active -> True] // DisplayForm
Now enter something in the first cell you created and then press on the button
to make the cell contents disappear.
> I suspect that I can not keep it with my notebook but somewhere with
> the system files. Is there a place I can find some sample code for
> create button functions? I am using V3.0.1 on Power Mac.
See my tutorial notebook on MathSource
http://www.mathsource.com/Content/General/Tutorials/Programming/0209-809
You may also want to review this excellent demo that is bundled with the
Mathematica online documentation.
FrontEndExecute[
FrontEnd`HelpBrowserLookup[
"GettingStarted",
"CalendarMaker"
]
]
--
P.J. Hinton
Mathematica Programming Group paulh at wolfram.com
Wolfram Research, Inc.
Disclaimer: Opinions expressed herein are those of the author alone.