/* include not needed for Aztec C using provided makefile */ #include "sb:sb.h" extern int level; void PrGadget(string, gadget) char *string; struct Gadget *gadget; { static struct StructData structdata[] = { { " NextGadget", "struct Gadget *", 5, PTRSIZE }, { "-LeftEdge", "SHORT", 2, INTSIZE }, { "-TopEdge", "SHORT", 2, INTSIZE }, { "-Width", "SHORT", 2, INTSIZE }, { "-Height", "SHORT", 2, INTSIZE }, { " Flags", "USHORT", 12, INTSIZE }, { " Activation", "USHORT", 12, INTSIZE }, { " GadgetType", "USHORT", 12, INTSIZE }, { "(GadgetRender", "APTR)", 5, PTRSIZE }, { "(SelectRender", "APTR)", 5, PTRSIZE }, { " GadgetText", "struct IntuiText *", 5, PTRSIZE }, { "-MutualExclude","LONG", 1, PTRSIZE }, { "(SpecialInfo", "APTR)", 5, PTRSIZE }, { "-GadgetID", "USHORT", 12, INTSIZE }, { "-UserData", "APTR", 5, PTRSIZE } }; static char *flagnames[16] = { "GADGHBOX", "GADGHIMAGE", "GADGIMAGE", "GRELBOTTOM", "GRELRIGHT", "GRELWIDTH", "GRELHEIGHT", "SELECTED", "GADGDISABLED" }; static char *activatenames[16] = { "RELVERIFY", "GADGIMMEDIATE", "ENDGADGET", "FOLLOWMOUSE", "RIGHTBORDER", "LEFTBORDER", "TOPBORDER", "BOTTOMBORDER", "TOGGLESELECT", "STRINGCENTER", "STRINGRIGHT", "LONGINT", "ALTKEYMAP", "BOOLEXTEND" }; static char *systypenames[16] = { "SIZING", "WDRAGGING", "SDRAGGING", "WUPFRONT", "SUPFRONT", "WDOWNBACK", "SDOWNBACK", "CLOSE", NULL, NULL, NULL, NULL, "REQGADGET", "GZZGADGET", "SCRGADGET", "SYSGADET" }; static char *applitypenames[16] = { "BOOLGADGET", "GADGET0002", "PROPGADGET", "STRGADGET", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "REQGADGET", "GZZGADGET", "SCRGADGET", "SYSGADGET" }; int sum, choice = -1; USHORT bits; level++; while (choice) { sum = SetOptionText(string, structdata, (APTR)gadget, DATASIZE, 0); switch (choice = GetChoice(DATASIZE)) { case 1: if (gadget->NextGadget) PrGadget("The next gadget in Intuition's list", gadget->NextGadget); break; case 6: bits = gadget->Flags; switch (bits & GADGHIGHBITS) { case 0: flagnames[0] = "GADGHCOMP"; bits |= 0x01; break; case 1: flagnames[0] = "GADGHBOX"; break; case 2: flagnames[1] = "GADGHIMAGE"; break; case 3: flagnames[1] = "GADGHNONE"; bits ^= 0x01; break; } FlagPrint("Flags set for this gadget", flagnames, (ULONG)bits); break; case 7: FlagPrint("Activation flags set for this gadget", activatenames, (ULONG)gadget->Activation); break; case 8: bits = gadget->GadgetType; if (bits & SYSGADGET) { bits = (bits & 0xff00) | (1 << (((bits & 0xf0) >> 4) - 1)); FlagPrint("Gadget type flags set for this gadget", systypenames, (ULONG)bits); } else { bits = (bits & 0xff00) | (1 << ((bits & 0x0f) - 1)); FlagPrint("Gadget type flags set for this gadget", applitypenames, (ULONG)bits); } break; case 11: if (gadget->GadgetText) PrIntuiText("The gadget's first text (IntuiText structure)", gadget->GadgetText); break; } } level--; }