home *** CD-ROM | disk | FTP | other *** search
- /* 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--;
- }
-