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

The various GadTools gadget types require certain classes of IDCMP
messages in order to work.  Applications specify these IDCMP classes when
the window is opened or later with ModifyIDCMP() (see "Intuition Windows"
chapter for more on this).  Each kind of GadTools gadget requires
one or more of these IDCMP classes: IDCMP_GADGETUP, IDCMP_GADGETDOWN,
IDCMP_MOUSEMOVE, IDCMP_MOUSEBUTTONS and IDCMP_INTUITICKS.  As a
convenience, the IDCMP classes required by each kind of gadget are defined
in <libraries/gadtools.h>.  For example, SLIDERIDCMP is defined to be:

    #define SLIDERIDCMP (IDCMP_GADGETUP | IDCMP_GADGETDOWN |
                                          IDCMP_MOUSEMOVE)


    Always OR the IDCMP Flag Bits.
    ------------------------------
    When specifying the IDCMP classes for a window, never add the
    flags together, always OR the bits together.  Since many of the
    GadTools IDCMP constants have multiple bits set, adding the values
    will not lead to the proper flag combination.

If a certain kind of GadTools gadget is used, the window must use all
IDCMP classes required by that kind of gadget.  Do not omit any that are
given for that class, even if the application does require the message
type.

Because of the way GadTools gadgets are implemented, programs that use
them always require notification about window refresh events.  Even if the
application performs no rendering of its own, it may not use the
WFLG_NOCAREREFRESH window flag and must always set IDCMP_REFRESHWINDOW.
See the section on "Gadget Refresh Functions" later in this chapter for
more on this.