Once an application has set up the appropriate screen, window, gadgets menus and requesters, it waits for the user to do something. Intuition can notify an application whenever user activity occurs by sending a message. The message is simply a pointer to some memory owned by Intuition that contains an IntuiMessage data structure describing the user activity that occurred. To wait for user activity or other events, the Exec library provides a special function named Wait(). The Exec Wait() function suspends your task allowing other applications or system tasks to run while your application is waiting for input or events from Intuition and other sources. Thus, the basic outline for any Intuition program is: * Set up the window, screen and any required gadgets, menus or requesters. * Wait() for a message from Intuition about user activity or other events. Copy needed data from the message and tell Intuition you received it by replying. Look at the data and take the appropriate action. * Repeat until the user wants to quit. These steps, sometimes referred to as the Intuition input event loop are basically the same for any Intuition application. As you might expect, Intuition can send a message to your application whenever the user presses a key on the keyboard or moves the mouse. Other types of input events Intuition will notify you about include gadget hits, menu item selection, time elapsing, disk insertion, disk removal, and window rearrangement. Gadgets, menus, requesters are the nuts and bolts of the Intuition GUI toolkit. Much of the code in an application that uses Intuition deals with the set up and operation of these important data objects. No matter how simple, complex, or fanciful your program design, it will fit within the basic Intuition framework of windows and screens, gadgets, menus and requesters. The users of the Amiga understand these basic Intuition elements and trust that the building blocks remain constant. This consistency ensures that a well-designed program will be understandable to the naive user as well as to the sophisticate.
[Back to Amiga Developer Docs]