{{omit from|ACL2}} {{omit from|Applesoft BASIC|no concept of a GUI}} {{omit from|AWK|no concept of a GUI}} {{omit from|Batch File}} {{omit from|Blast}} {{omit from|Brainf***}} {{omit from|Commodore BASIC}} {{omit from|GUISS|Only makes use of installed applications}} {{omit from|Integer BASIC|no concept of a GUI}} {{omit from|Lilypond}} {{omit from|Logtalk}} {{omit from|Lotus 123}} {{omit from|Maxima}} {{omit from|PARI/GP}} {{omit from|PostScript}} {{omit from|Retro}} {{omit from|SQL PL|It does not handle GUI}} Almost every application needs to communicate with the user in some way. Therefore, a substantial part of the code deals with the interaction of program logic with GUI components. Typically, the following is needed: * put values into input fields under program control * read and check input from the user * pop up dialogs to query the user for further information ;Task: For a minimal "application", write a program that presents a form with three components to the user: ::* a numeric input field ("Value") ::* a button ("increment") ::* a button ("random") The field is initialized to zero. The user may manually enter a new value into the field, or increment its value with the "increment" button. Entering a non-numeric value should be either impossible, or issue an error message. Pressing the "random" button presents a confirmation dialog, and resets the field's value to a random value if the answer is "Yes". (This task may be regarded as an extension of the task [[Simple windowed application]]).