MathGroup Archive 1999

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

Search the Archive

Re: InputString prompts

  • To: mathgroup at smc.vnet.net
  • Subject: [mg17401] Re: InputString prompts
  • From: "P.J. Hinton" <paulh>
  • Date: Thu, 6 May 1999 02:44:15 -0400
  • Organization: "Wolfram Research, Inc."
  • Sender: owner-wri-mathgroup at wolfram.com

On Mon, 3 May 1999, in article <7gfsol$6gf at smc.vnet.net>, Kristen Rounds
<krounds at accessone.com> writes:

> I would like to customize the prompt for an InputString to display 3
> matrices, as well as a text statement.  This is my code as is:
> 
> terma=InputString["Which term of the A matrix to change"];
> 
> I would like to add the display of
> MatrixForm[A1x],MatrixForm[A1y],MatrixForm[A1z] to the question "Which
> term of the A matrix to change".  Is there a way to do this?

No, you can't display two-dimensional typeset text in the label of an
Input[] generated dialog.  However, you can use notebook manipulation
commands to display this type of prompt within a smaller notebook that
acts as a dialog box.

notebookDialog[inputPrompt_String, labelBoxes_] := 
  Module[{nbObj}, 
    nbObj = NotebookPut[
        Notebook[{Cell[TextData[inputPrompt], "Text"], 
            Cell[BoxData[labelBoxes], "DisplayFormula"],
            Cell[BoxData[RowBox[{"\[Placeholder]"}]], "Text", 
              CellTags -> {"text field"}], 
            Cell[BoxData[
                ButtonBox["OK", 
                  ButtonFunction :> 
                    FrontEndExecute[{FrontEnd`NotebookLocate["text field"]; 
                        FrontEndToken["Copy"]; 
                        NotebookClose[ButtonNotebook[], 
                          Interactive -> False]}], ButtonEvaluator -> None, 
                  ButtonFrame -> "DialogBox"]], "Text" , Active -> True]}, 
          WindowSize -> {FitAll, FitAll}]]; 
    While[MemberQ[Notebooks[], nbObj], Sleep[1]]; 
    SelectionMove[ClipboardNotebook[], All, Notebook]; 
    ToExpression[
      NotebookRead[ClipboardNotebook[]] /.        
        Cell[BoxData[boxes_], __, ___] -> boxes]]

Here is an example of its usage:

A1x = Array[Ax,{2,2}]

A1y = Array[Ay,{2,2}]

A1z = Array[Az, {2,2}]

notebookDialog["Which term of the A matrix to change", 
  ToBoxes[MatrixForm /@ {A1x, A1y,A1z}]]

Note that you have to convert your displayed expression into boxes.

If you have trouble getting valid results from ClipboardNotebook[], let me
know, and I will post an alternative method for getting the data out of
the dialog box notebook.

--
P.J. Hinton
Mathematica Programming Group           paulh at wolfram.com
Wolfram Research, Inc.                  http://www.wolfram.com/~paulh/
Disclaimer: Opinions expressed herein are those of the author alone.




  • Prev by Date: Re: Re: The behaviour of DisplayTogether
  • Next by Date: Mathematica tracing.
  • Previous by thread: InputString prompts
  • Next by thread: Re: InputString prompts