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.