Re: Nested Dialogs
- To: mathgroup at smc.vnet.net
- Subject: [mg79828] Re: Nested Dialogs
- From: David Bailey <dave at Remove_Thisdbailey.co.uk>
- Date: Mon, 6 Aug 2007 03:34:32 -0400 (EDT)
- References: <f91jmn$7m0$1@smc.vnet.net>
Albert wrote: > Hi, > > I am trying to create an modal dialog where a user can give some input > and which offers another modal dialog for part of the input, because in > the real application the input is somewhat lengthy to put into just one > dialog. I want both of them to be modal. > > When nesting DialogInput I discovered that the following does not work > as I expected (hoped) it would: > > DialogInput[{ > Button["Details", DialogInput[DefaultButton[]]], > DefaultButton[] > }] > > actually it hangs mathematica, so it will ask whether you want to wait > or abort the dynamic evaluation. When experimenting with CreateDialog I > found it has the option Modal, but this option does not really seem to > change the behaviour of the Dialog. Something else I detected is that > for two nested dialogs DialogReturn[] behaves not exactly as I did expect: > > DialogInput[{Button["Details", > CreateDialog[DefaultButton[DialogReturn[2]]]], > DefaultButton[DialogReturn[1]]}] > > When I click the Button in the nested dialog, the DialogInput returns 2, > but the window associated with the DialogInput stays on the screen. > > I could not find something about the > nesting of Dialogs in the Documentation Center so here are my questions: > > - am I misunderstanding or missing something? > - am I asking for too much? > - Is this the intended behavior? > - I am using 6.0.0. Has the situation with 6.0.1 changed for these > things? > - Has anyone some workaround to achieve what I try to do (I know how to > do this with JLink, but then I don't have easy access to all the nice > dynamic stuff within the dialogs...)? > > albert > It hangs for me too. You can create nested (Java) dialog boxes with my free SuperWidgetPackage. For example: Needs["SuperWidgetPackage`"] l2[_] := {"Level 2", SuperWidgetButton[Null, "Ok", 1]} // SuperGUIRunModal; {"Level 1", {SuperWidgetButton[Null, "Deeper", l2], SuperWidgetButton[Null, "OK", 1]}} // SuperGUIRunModal David Bailey http://www.dbaileyconsultancy.co.uk