When Intuition gets a left mouse button click in a window, one of the things it does is check through the window's list of gadgets to see if that click was inside the bounds of a gadget's gadget structure (using the leftedge, topedge, width, and height fields). if it was (and that gadget is a Boopsi gadget), Intuition sends that gadget a GM_HITTEST message (defined in <intuition/gadgetclass.h>): struct gpHitTest { ULONG MethodID; /* GM_HITTEST */ struct GadgetInfo *gpht_GInfo; struct { WORD X; /* Is this point inside of the gadget? */ WORD Y; } gpht_Mouse; }; This message contains the coordinates of the mouse click. These coordinates are relative to the upper-left of the gadget (leftedge, topedge). Because Intuition can only tell if the user clicked inside gadget's "bounding box", Intuition only knows that the click was close to the gadget. Intuition uses the GM_HITTEST to ask the gadget if the click was really inside the gadget. The gadget returns GMR_GADGETHIT (defined in <intuition/gadgetclass>) to tell intuition that the user hit it, otherwise it returns zero. This method allows a gadget to be any shape or pattern, rather than just rectangular.