Re: New lines in InputField
- To: mathgroup at smc.vnet.net
- Subject: [mg117726] Re: New lines in InputField
- From: "Chris Degnen" <degnen at cwgsy.net>
- Date: Wed, 30 Mar 2011 04:14:35 -0500 (EST)
This seems to be the solution. FrontEndExecute clues gleaned from
perdalum's post of January 2010.
CreateDialog[{TextCell["Enter your text here:"],
InputField[Dynamic[input], String, FieldSize -> {50, 12}],
DefaultButton[
DialogReturn[
CreateDocument[
Graphics[{Yellow, Rectangle[{0, 0}, {300, 200}], Black,
Inset[TextCell[input, 12, LineSpacing -> {0, 16},
TextJustification -> 1], {0, 200}, {Left, Top}, {300,
Automatic}]}, PlotRange -> {{0, 300}, {0, 200}},
ImageSize -> {300, 200}]]]]},
NotebookEventActions -> {"ReturnKeyDown" :>
FrontEndExecute[{NotebookWrite[InputNotebook[], "\n", After]}]}];
> I spoke too soon. Using the front end token HandleShiftReturn
> doesn't replicate the correct effect of a pasted-in carriage return,
> as becomes apparent when text justification is applied.
> Is there another front end token that will do the trick? Thanks
>
>
> CreateDialog[{TextCell["Enter your text here:"],
> InputField[Dynamic[input], String, FieldSize -> {50, 12}], DefaultButton[
> DialogReturn[
> CreateDocument[
> Graphics[{Yellow, Rectangle[{0, 0}, {300, 200}], Black,
> Inset[TextCell[input, 12, LineSpacing -> {0, 16}, TextJustification -> 1],
> {0, 200}, {Left, Top}, {300, Automatic}]}, PlotRange -> {{0, 300}, {0,
> 200}}, ImageSize -> {300, 200}]]]]}, NotebookEventActions ->
> {"ReturnKeyDown" :> FrontEndTokenExecute["HandleShiftReturn"]}];
>
>
>
>> Aha, got it.
>>
>> CreateDialog[{TextCell["Enter your text here:"],
>> InputField[Dynamic[input], String, FieldSize -> {50, 12}], DefaultButton[
>> DialogReturn[CreateDocument[TextCell[input, "Print"]]]]},
>> NotebookEventActions -> {"ReturnKeyDown" :>
>> FrontEndTokenExecute["HandleShiftReturn"]}];
>>
>>
>>
>>> Can anyone suggest how to enter new lines in input text,
>>> preferably using the return key?
>>> In the example below I can paste into an input field a piece
>>> of text which includes new lines, such as these two sentences,
>>> but new lines can't be typed straight in to the input field,
>>> as users are wont to do.
>>>
>>>
>>> CreateDialog[{TextCell["Enter your text here:"],
>>> InputField[Dynamic[input], String, FieldSize -> {50, 12}],
>>> DefaultButton[
>>> DialogReturn[CreateDocument[TextCell[input, "Print"]]]]},
>>> NotebookEventActions -> {}];
>>>