[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

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

Thus, the basic outline for any Intuition program is:

  * Set up the window, screen and any required gadgets, menus or

  * 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

  * 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.