15

Edit > Preferences > "Advanced" tab > Open Option Inspector In the Option Inspector's sidebar, drill down to Notebook Options > Window Properties. For the WindowElements option, uncheck "StatusArea" and "MagnificationPopUp". Here's what your Option Inspector should look like:


14

Yes, I have encountered this problem very often. For me, the reason is that I have 2 screens on my desktop pc and when I save a notebook which is on the second screen and open this notebook later, e.g. on my MacBook, then it happens that the notebook window has coordinates outside my Mac screen-area. The solution is simple: Assuming testme.nb is your ...


8

What really makes Dialog a model dialog is: WindowFrame -> "ModalDialog" (*or*) WindowFrame -> "MovableModalDialog" So be careful when changing WindowFrame with the expectation that your dialog will remain modal. Funny proof is that the following: CreateDialog[DefaultButton[], WindowFrame -> "ModalDialog", Modal -> False] is a modal ...


8

There is a straightforward way to set CellMargins to be zero: DialogInput[ DialogNotebook[{ExpressionCell[Pane[RandomImage[], ImageMargins -> 8], CellMargins -> 0]}]] Instead of ImageMargins we can rely on CellFrameMargins: DialogInput[ DialogNotebook[{ExpressionCell[RandomImage[], CellMargins -> 0, CellFrameMargins -> 8, ...


8

You can overwrite specific NotebookEventActions which are responsible for that: CreateDialog[ Overlay[{DefaultButton[], CancelButton[], InputField[]}, {3}, 3], NotebookEventActions -> { "EscapeKeyDown" :> {}, "ReturnKeyDown" :> {}, PassEventsDown -> True } ] PassEventsDown -> True allows "\[AliasDelimiter]" to appear in the ...


8

I'm honestly not entirely satisfied with this answer, but it should get you on the right track: dialogWithTimeLimit[Dynamic[val_Symbol], limit_?NumericQ] := With[{ startTime = AbsoluteTime[] }, CreateDialog[ { Dynamic[ If[AbsoluteTime[] - startTime > limit, DialogReturn[val = "time's up"]]; ...


7

Edit Once again b3m2a1 provided more detailed information about a FE's feature so I have to retract my claim that it is not worth an effort to create a popup on cursor position as opposed to e.g. in the corner of the notebook. Main The following answer is closely related to Live code templates I'm working on in a free time. I will outline two alternative ...


7

it is not etirely clear for what you need that, but I think the best way to store data within a Notebook so that it is available in the next session is the TaggingRules option. This is how you could store data for a there: CurrentValue[EvaluationNotebook[],{TaggingRules,"dataset-name"}] = data; And this is how you can read it: data = CurrentValue[...


7

It seems that some functions are not initialized correctly and options are not passed around as they should. Mentioning URLFetch, which is probably used internally, fixes that Quit[] URLFetch; URLRead["https://httpbin.org/status/401", Interactive -> False]


6

I gave up looking for neat solution. Here's brute force. Since the bottom CellMargins are not respected then let's not use any! :) We can use Pane and its ImageMargins to take control over padding. DialogInput[ DynamicModule[{}, Pane[RandomImage[], ImageMargins -> 8], Initialization :> (SetOptions[EvaluationCell[], CellMargins -> 0]...


6

I can understand you might be more comfortable with GUIKit if you have done GUI development with other GUI frameworks. But in Version 6, the Mathematica front-end became a programable GUI with the introduction of the wrapper function Dynamic. This made GUI development possible for users with no previous experience with Java and no desire to learn it. It also ...


5

My approach to this task would be to create new Input Cells within the notebook, that have the same structure as newly typed in symbol definition. createNewSymbol[] := Module[{importFileName = SystemDialogInput["FileOpen", ".txt"]}, With[{importedData = If[StringQ@importFileName, Import[importFileName, "Table"]], symName = If[StringQ@...


5

Using DialogInput instead of CreateDialog DialogInput[ Grid[{{"Year:", InputField[Dynamic[yyyy], Number]}, {"Month:", InputField[Dynamic[mm], Number]}, {"Day:", InputField[Dynamic[dd], Number]}, {CancelButton[], DefaultButton[ DialogReturn[{Year = yyyy, Month = mm, day = dd}]]}}, Spacings -> {1, Automatic}, Alignment -> Left]] ...


5

I might not have understood the question correctly. But it seems to me that adding WindowElements->"VerticalScrollBar" to the code should fix the problem. a simple code DialogInput[Table[InputField[i], {i, 2000}], WindowElements -> "VerticalScrollBar"] works real well. Here's my screenshot of the last several InputField: Still works for the ...


4

Update: It appears that the Magnification option is available and can be used to scale whatever collection of objects is placed in the window so that everything fits. (This, of course, doesn't mean that everything will be readable.) DialogInput[Table[InputField[i], {i, 50}], WindowSize -> All, Magnification -> 0.35] End-of-update. The issue is ...


4

DynamicModule[{counters, oldcounters}, Button["Set Counters", oldcounters = CurrentValue[InputNotebook[], {CounterAssignments}][[All, 2]]; counters = DialogInput[{x = 0, y = 0}, Column[{ "SetCounters:", Row[{"StaticChapter ", InputField[Dynamic[x,(x = Round[#]) &], Number]}], Row[{"StaticSection ", InputField[Dynamic[y,(y ...


4

You can't run Kernel Blocking Dialogs on the preemptive link. But you can prompt other dialogs. And we can abuse that to run a procedure containing Input[], DialogInput[] or some system dialogs. The trick is to run your code inside an asynchronous initialization of the regular dialog: MessageDialog[ DynamicModule[{}, 1, Initialization :> (...


4

I suppose the it is expected and it happens because after prompting a DialogNotebook the evaluation of Module is finished and a Temporary attribute of its variables is kicking in. Why the first example works the second doesn't? I don't know but how a Temporary attribute works is not documented well. One way to make it work is to use kernel blocking dialog ...


4

You can use DynamicWrapper or the second argument of Dynamic to take an action after something is done. Additionaly let me reshape your dataset to association form: <|name1->activities1,...|> CreateWindow[ DialogNotebook[ DynamicModule[ {name, activity, fauxDB, dbRow} , fauxDB = { <|"name" -> "Bill", "activities" -> {"...


4

A support case with the identification [CASE:3620463] was created. And a reply: [...] I have forwarded an incident report to our developers with the information you provided.


4

Before it is fixed one can use this quick workaround based on How to get StatusCode without fetching Body/Content in the background: DialoglessURLDownload = URLFetch[ #, "StatusCode", Method -> "HEAD", "DisplayProxyDialog" -> False ] /. (200 :> URLDownload[##]) & I've decided I will return the status code for any case that isn't 200, that ...


4

Within a single cell, the default behavior of Tab is to move between InputField objects. This means you want your CreateDialog call to create a single cell instead of multiple cells. Now: CreateDialog[ {expr1, expr2, ..} ] will create a separate cell for each of the expri objects, while: CreateDialog[ Column[{expr1, expr2, ..}] ] will create a single ...


3

As you mentioned,*EventActions are called before any lower-level stuff, so yes this means you could write your own window-close dialog, but there's another way, assuming you're not killing the kernel too. It's obviously not ideal, but you can do this via RunScheduledTask and really quite simply too. This is what I often do for event actions when I need them ...


3

Here are two functions that make the content of the DialogInput scrollable, if it's to big for the screen. With Scrollbars: screenFit1 := Pane[#, {Automatic, Min[(# // Rasterize // ImageDimensions)[[2]], ("ScreenArea" /. SystemInformation["Devices", "ScreenInformation"])[[1, 2, 2]]*0.95]}, Scrollbars -> Automatic] &...


3

This seems to work. picture = Rasterize[Table[i + j, {i, 100}, {j, 100}] // MatrixForm]; DialogInput[ {Manipulate[Pane[picture, Scrollbars -> True, ImageSize -> Large], {a}, {a}, {a}, {a}, {a}], DefaultButton@DialogReturn[]}, WindowSize -> All] But it has scrollbars


3

Perhaps: f[aa_, oo_, pp_] := CreateDialog[ Column[{Manipulate[ Plot[(aa = amp) Sin[(oo = omega) t - (pp = phi)], {t, 0, 10}], {amp, 0, 1}, {omega, 1, 10}, {phi, 0, 2 Pi}], DefaultButton["Close", DialogReturn[]]}], Modal -> True]; Dynamic[{a, o, p}] f[Unevaluated@a, Unevaluated@o, Unevaluated@p]


3

You need the values of the options "WindowTitle" and "ModifiedInMemory". These can be obtained using the function NotebookInformation. For notebooks that have not been modified since the last save the value of the option "ModifiedInMemory" is True. So, you can do: {"WindowTitle", "ModifiedInMemory"} /. (NotebookInformation /@ Notebooks[]) to get all the ...


3

Dialogs are notebooks with different from regular options settings, so you can export save them as you want: (that is the case with palettes too) Export[ FileNameJoin[{$TemporaryDirectory, "myDialog.nb"}], CreateDialog[ Column[{ InputField[Dynamic[a], Number, FieldHint -> "enter a"], InputField[Dynamic[b], Number, FieldHint -&...


3

If what you are looking for is the ability to halt access to the notebook (or the Mathematica front end in general), then you want to set Modal->True in the MessageDialog options. MessageDialog["Click to Continue", Modal->True] As mentioned in the comments, Model does not appear to be a valid option for MessageDialog; however, it works. It does ...


3

Is this what you are looking for? PrintMessage[expr_] := NotebookWrite[MessagesNotebook[], Cell[RawBoxes@ToBoxes[expr,StandardForm],"Output"]]


Only top voted, non community-wiki answers of a minimum length are eligible