home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / c / skew.lha / Skew / Source / skew1.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-12  |  36.5 KB  |  1,564 lines

  1.  
  2. /*
  3.  *  skew1.c
  4.  *
  5.  *  PROGRAM NAME:        SKEW    ( "SKEleton Writer" )
  6.  *
  7.  *  VERSION:            1.2
  8.  *
  9.  *  FINISHED:            it seems so...
  10.  *
  11.  *  PURPOSE:            Utility for generating GetIDCMP() functions & Co.
  12.  *
  13.  *  PROGRAMMER:         Piotr Obminski
  14.  *
  15.  *  LEGAL STATUS:        Public Domain
  16.  *
  17.  *  COMPILER:            DICE V2.06
  18.  *
  19.  *  COMPILATION:        dmake -f skew.make
  20.  *
  21.  *  COMMENTS:
  22.  *
  23.  *  HISTORY:
  24.  */
  25.  
  26. #include <exec/exec.h>
  27. #include <exec/types.h>
  28. #include <dos/dosextens.h>
  29. #include <intuition/intuition.h>
  30. #include <intuition/classes.h>
  31. #include <intuition/classusr.h>
  32. #include <intuition/imageclass.h>
  33. #include <intuition/gadgetclass.h>
  34. #include <libraries/gadtools.h>
  35. #include <graphics/displayinfo.h>
  36. #include <graphics/gfxbase.h>
  37. #include <clib/exec_protos.h>
  38. #include <clib/intuition_protos.h>
  39. #include <clib/gadtools_protos.h>
  40. #include <clib/graphics_protos.h>
  41. #include <string.h>
  42.  
  43. #include "skew.h"
  44.  
  45.  
  46. LONG GlobalError = 0;                /* not much used so far... */
  47.  
  48. struct Process *ThisProcess;
  49.  
  50. APTR    GadToolsBase;
  51. APTR    AslBase;
  52. struct  Window  *Wnd;
  53. struct  Screen  *Scr;
  54. APTR    VisualInfo;
  55.  
  56. APTR OldWindow;
  57.  
  58. struct TextAttr topaz8 = { ( STRPTR )"topaz.font", 8, 0x00, 0x01 };
  59.  
  60. struct ColorSpec  ScreenColors[] = {
  61.      0, 10, 10, 10,
  62.      1, 00, 00, 00,
  63.      2, 15, 15, 15,
  64.      3, 12, 00, 00,
  65.     ~0, 00, 00, 00 };
  66.  
  67. UWORD DriPens[] = { 0,1,1,2,1,3,1,0,2,~0 };
  68.  
  69. /* text & images */
  70. struct IntuiText  IText1[] = {
  71.     3, 0, JAM2, 588, 12, &topaz8, (UBYTE *)"1/3", &IText1[1],
  72.     3, 0, JAM1, 40, 135, &topaz8, (UBYTE *)"Fields in IntuiMessage:", NULL };
  73.  
  74. struct IntuiText  IText2[] = {
  75.     3, 0, JAM2, 588, 12, &topaz8, (UBYTE *)"2/3", &IText2[1],
  76.     3, 0, JAM1, 80, 16, &topaz8, (UBYTE *)"Class:", NULL };
  77.  
  78. struct IntuiText  IText3[] = {
  79.     3, 0, JAM2, 588, 12, &topaz8, (UBYTE *)"3/3", &IText3[1],
  80.     3, 0, JAM1, 60, 12, &topaz8, (UBYTE *)"Global options:", NULL };
  81.  
  82. /* stuff related to displaying program's logo */
  83. __far extern UWORD Title_data[];
  84.  
  85. /* IMAGE STRUCTURE */
  86. struct Image Title = { 0, 0, 477, 40, 2, &Title_data[0], 2, 0, NULL };
  87.  
  88.  
  89. /* skewed pointer stuff */
  90. __chip const static UWORD ptr_data[] =
  91. {
  92.     0x0000, 0x0000,
  93.  
  94.     0xC000, 0x4000,
  95.     0x7000, 0xB000,
  96.     0x3C00, 0x4C00,
  97.     0x3F00, 0x4300,
  98.     0x1FC0, 0x20C0,
  99.     0x1FC0, 0x2000,
  100.     0x0F00, 0x1100,
  101.     0x0D80, 0x1280,
  102.     0x04C0, 0x0940,
  103.     0x0460, 0x08A0,
  104.     0x0030, 0x0050,
  105.     0x0030, 0x0050,
  106.     0x0060, 0x00A0,
  107.     0x00C0, 0x0140,
  108.     0x0180, 0x0280,
  109.     0x00C0, 0x0140,
  110.  
  111.     0x0000, 0x0000
  112. };
  113.  
  114.  
  115. LONG Display_num;
  116.  
  117.  
  118. /* stuff for top-level function name */
  119. char *TOP_LEVEL_BUF;
  120. char TOP_LEVEL_NAME[ 40 ] = "GetIDCMP";
  121.  
  122. /* stuff for IDCMPWindow name */
  123. char *IDCMP_WIN_BUF;
  124. char IDCMP_WIN_NAME[ 40 ] = "Wnd";
  125.  
  126. /* stuff for test variable */
  127. char *TEST_VAR_BUF;
  128. char TEST_VAR_NAME[ 40 ] = "Done";
  129.  
  130. /* prefix & suffix for the names of the generated functions */
  131. char *PREFIX_BUF, *SUFFIX_BUF;
  132. char PREFIX_NAME[ 20 ], SUFFIX_NAME[ 20 ];
  133.  
  134. struct Gadget *GList;
  135. struct Gadget *Gadgets[ 55 ];
  136.  
  137. /* flags related to gadgets & output file */
  138. extern LONG Flag1, Flag2A, Flag2B, Flag3;
  139.  
  140. /* flags for cycle gadgets on display #3 */
  141. LONG WaitingMode_FLAG, Variables_FLAG, Comments_FLAG, FillIns_FLAG,
  142.         TopArgs_FLAG, TopReturn_FLAG, TestVarScope_FLAG;
  143.  
  144. /* stuff needed for cycle gadgets in last (third) display */
  145. UBYTE *WaitingModeLabels0[] = {
  146.     "passive",
  147.     "busy",
  148.     0L };
  149.  
  150. UBYTE *WaitingModeLabels1[] = {
  151.     "busy",
  152.     "passive",
  153.     0L };
  154.  
  155.  
  156. UBYTE *VariablesLabels0[] = {
  157.     "global",
  158.     "local",
  159.     0L };
  160.  
  161. UBYTE *VariablesLabels1[] = {
  162.     "local",
  163.     "global",
  164.     0L };
  165.  
  166.  
  167. UBYTE *CommentsLabels0[] = {
  168.     "sparse",
  169.     "NONE",
  170.     "verbose",
  171.     0L };
  172.  
  173. UBYTE *CommentsLabels1[] = {
  174.     "NONE",
  175.     "verbose",
  176.     "sparse",
  177.     0L };
  178.  
  179. UBYTE *CommentsLabels2[] = {
  180.     "verbose",
  181.     "sparse",
  182.     "NONE",
  183.     0L };
  184.  
  185.  
  186. UBYTE *FillInsLabels0[] = {
  187.     "NONE",
  188.     "@@@@@@@@@@",
  189.     "/* @@ */",
  190.     "@@",
  191.     0L };
  192.  
  193. UBYTE *FillInsLabels1[] = {
  194.     "@@@@@@@@@@",
  195.     "/* @@ */",
  196.     "@@",
  197.     "NONE",
  198.     0L };
  199.  
  200. UBYTE *FillInsLabels2[] = {
  201.     "/* @@ */",
  202.     "@@",
  203.     "NONE",
  204.     "@@@@@@@@@@",
  205.     0L };
  206.  
  207. UBYTE *FillInsLabels3[] = {
  208.     "@@",
  209.     "NONE",
  210.     "@@@@@@@@@@",
  211.     "/* @@ */",
  212.     0L };
  213.  
  214.  
  215. UBYTE *TopArgsLabels0[] = {
  216.     "NONE",
  217.     "window ptr",
  218.     0L };
  219.  
  220. UBYTE *TopArgsLabels1[] = {
  221.     "window ptr",
  222.     "NONE",
  223.     0L };
  224.  
  225.  
  226. UBYTE *TopRetLabels0[] = {
  227.     "NOTHING",
  228.     "LONG",
  229.     0L };
  230.  
  231. UBYTE *TopRetLabels1[] = {
  232.     "LONG",
  233.     "NOTHING",
  234.     0L };
  235.  
  236.  
  237. UBYTE *TestVariable_scope0[] = {
  238.     "global",
  239.     "local",
  240.     0L };
  241.  
  242. UBYTE *TestVariable_scope1[] = {
  243.     "local",
  244.     "global",
  245.     0L };
  246.  
  247.  
  248. /*  function prototypes  */
  249. static VOID _main();
  250. static VOID dummy_function( VOID );
  251. static long InitStuff( VOID );
  252. static long MakeWindow( VOID );
  253. static VOID CleanStuff( VOID );
  254. __regargs long MakeDisplay( long num );
  255.  
  256. extern VOID HandleIDCMP( VOID );
  257. __regargs extern VOID HandleGadgets( USHORT, APTR );
  258.  
  259.  
  260. VOID
  261. dummy_function()
  262. {
  263.     _waitwbmsg();
  264. }
  265.  
  266. VOID
  267. _main()
  268. {
  269.     if ( ! InitStuff() ) {
  270.         GlobalError = 5;
  271.         _exit( GlobalError );
  272.     };
  273.  
  274.     HandleIDCMP();
  275.  
  276.     CleanStuff();
  277.     _exit( GlobalError );
  278. }
  279.  
  280.  
  281. LONG
  282. InitStuff()
  283. {
  284.     struct GfxBase *GfxBase;
  285.  
  286.     struct TagItem    ScreenTags[] = {
  287.         SA_Left,          0,
  288.         SA_Top,           0,
  289.         SA_Width,          640,
  290.         SA_Height,        256,
  291.         SA_Depth,          2,
  292.         SA_Colors,        ScreenColors,
  293.         SA_Font,          &topaz8,
  294.         SA_Type,          CUSTOMSCREEN,
  295.  
  296.         SA_DisplayID,
  297.                           ( GfxBase->DisplayFlags & NTSC ) ?
  298.                             ( NTSC_MONITOR_ID | HIRESLACE_KEY ) :
  299.                             ( PAL_MONITOR_ID | HIRES_KEY ),
  300.  
  301.         SA_Pens,          DriPens,
  302.         TAG_DONE };
  303.  
  304.  
  305.     if ( ! ( GadToolsBase = (APTR)OpenLibrary( "gadtools.library", 36 ) ) ) {
  306.         PutStr( "gadtools.library not found!\n" );
  307.         return( 0L );
  308.     }
  309.  
  310.     if ( ! ( AslBase = (APTR)OpenLibrary( "asl.library", 36 ) ) ) {
  311.         PutStr( "asl.library not found!\n" );
  312.         return( 0L );
  313.     }
  314.  
  315.     if ( ! ( Scr = OpenScreenTagList( 0L, ScreenTags ) ) ) {
  316.         PutStr( "Screen couldn't be opened!\n" );
  317.         return( 0L );
  318.     }
  319.  
  320.     if ( ! MakeWindow() ) {
  321.         PutStr( "Window couldn't be opened!\n" );
  322.         return( 0L );
  323.     }
  324.  
  325.     return( 1L );
  326. }
  327.  
  328.  
  329. LONG
  330. MakeWindow()
  331. {
  332.     struct TagItem    WindowTags[] = {
  333.         WA_Left,            2,
  334.            WA_Top,             10,
  335.         WA_Width,            637,
  336.         WA_Height,          246,
  337.         WA_IDCMP,            IDCMP_GADGETDOWN | IDCMP_GADGETUP |
  338.                               IDCMP_REFRESHWINDOW | IDCMP_MENUPICK,
  339.         WA_Flags,            WFLG_SMART_REFRESH | WFLG_ACTIVATE | WFLG_RMBTRAP |
  340.                               WFLG_BACKDROP,
  341.         WA_Gadgets,         0L,
  342.         WA_Title,            NULL,
  343.         WA_ScreenTitle,
  344.   "SKEleton Writer v1.20             Public Domain",
  345.  
  346.         WA_CustomScreen,      Scr,
  347.         WA_MinWidth,          637,
  348.         WA_MinHeight,          1,
  349.         WA_MaxWidth,          637,
  350.         WA_MaxHeight,          246,
  351.         TAG_DONE };
  352.  
  353.     if ( ! ( Wnd = OpenWindowTagList( 0L, WindowTags ) ) )
  354.         return( 0L );
  355.  
  356.       /* Make system requesters come up on this screen */
  357.     ThisProcess = (struct Process *)FindTask( 0 );
  358.     OldWindow = ThisProcess->pr_WindowPtr;
  359.     ThisProcess->pr_WindowPtr = (APTR)Wnd;
  360.  
  361.     if ( ! MakeDisplay( 0 ) )
  362.         return( 0L );
  363.  
  364.     RefreshGList( GList, Wnd, NULL, -1 );
  365.     GT_RefreshWindow( Wnd, NULL );
  366.  
  367.     SetPointer( Wnd, ptr_data, 21, 16, 0, 0 );
  368.  
  369.     return( 1L );
  370. }
  371.  
  372.  
  373. LONG
  374. MakeDisplay( long Display_num )
  375. {
  376.     struct  NewGadget          ng;
  377.     struct  Gadget            *g;
  378.     BOOL    check_flag;
  379.     UBYTE    *temp_ptr;
  380.  
  381.     TOP_LEVEL_BUF = &TOP_LEVEL_NAME[ 0 ];
  382.     IDCMP_WIN_BUF = &IDCMP_WIN_NAME[ 0 ];
  383.  
  384.     PREFIX_BUF = &PREFIX_NAME[ 0 ];
  385.     SUFFIX_BUF = &SUFFIX_NAME[ 0 ];
  386.  
  387.     if ( VisualInfo )
  388.         FreeVisualInfo( VisualInfo );
  389.  
  390.     if ( GList )
  391.         FreeGadgets( GList );
  392.  
  393.     switch ( Display_num ) {
  394.  
  395.         /*  making window #0 */
  396.         case 0 :
  397.  
  398.             if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  399.                 return( 0L );
  400.  
  401.             if ( ! ( g = CreateContext( &GList )))
  402.                 return( 0L );
  403.  
  404.             ng.ng_LeftEdge        =    110;
  405.             ng.ng_TopEdge          =    104;
  406.             ng.ng_Width           =    166;
  407.             ng.ng_Height          =    16;
  408.             ng.ng_GadgetText      =    "IDCMPWindow name";
  409.             ng.ng_TextAttr        =    &topaz8;
  410.             ng.ng_GadgetID        =    GD_IDCMPWindow;
  411.             ng.ng_Flags           =    PLACETEXT_ABOVE;
  412.             ng.ng_VisualInfo      =    VisualInfo;
  413.  
  414.             g = CreateGadget( STRING_KIND, g, &ng,
  415.                     GTST_String, IDCMP_WIN_NAME, GTST_MaxChars, 40, TAG_DONE );
  416.  
  417.             IDCMP_WIN_BUF = ((struct StringInfo *) g->SpecialInfo)->Buffer;
  418.  
  419.             Gadgets[ 0 ] = g;
  420.  
  421.             ng.ng_LeftEdge        =    116;
  422.             ng.ng_TopEdge          =    150;
  423.             ng.ng_GadgetText      =    "Class";
  424.             ng.ng_GadgetID        =    GD_Code;
  425.             ng.ng_Flags           =    PLACETEXT_LEFT;
  426.  
  427.             check_flag = (Flag1 & CLASS_FLAG) ? TRUE : FALSE;
  428.  
  429.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  430.                             check_flag, TAG_DONE );
  431.  
  432.             Gadgets[ 1 ] = g;
  433.  
  434.             ng.ng_TopEdge          =    170;
  435.             ng.ng_GadgetText      =    "Code";
  436.             ng.ng_GadgetID        =    GD_Code;
  437.             ng.ng_Flags           =    PLACETEXT_LEFT;
  438.  
  439.             check_flag = (Flag1 & CODE_FLAG) ? TRUE : FALSE;
  440.  
  441.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  442.                             check_flag, TAG_DONE );
  443.  
  444.             Gadgets[ 2 ] = g;
  445.  
  446.             ng.ng_TopEdge          =    190;
  447.             ng.ng_GadgetText      =    "Qualifier";
  448.             ng.ng_GadgetID        =    GD_Qualifier;
  449.             ng.ng_Flags           =    PLACETEXT_LEFT;
  450.  
  451.             check_flag = (Flag1 & QUALIFIER_FLAG) ? TRUE : FALSE;
  452.  
  453.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  454.                             check_flag, TAG_DONE );
  455.  
  456.             Gadgets[ 3 ] = g;
  457.  
  458.             ng.ng_LeftEdge        =    236;
  459.             ng.ng_TopEdge          =    150;
  460.             ng.ng_GadgetText      =    "MouseX";
  461.             ng.ng_GadgetID        =    GD_MouseX;
  462.             ng.ng_Flags           =    PLACETEXT_LEFT;
  463.  
  464.             check_flag = (Flag1 & MOUSEX_FLAG) ? TRUE : FALSE;
  465.  
  466.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  467.                             check_flag, TAG_DONE );
  468.  
  469.             Gadgets[ 4 ] = g;
  470.  
  471.             ng.ng_LeftEdge        =    341;
  472.             ng.ng_GadgetText      =    "MouseY";
  473.             ng.ng_GadgetID        =    GD_MouseY;
  474.             ng.ng_Flags           =    PLACETEXT_LEFT;
  475.  
  476.             check_flag = (Flag1 & MOUSEY_FLAG) ? TRUE : FALSE;
  477.  
  478.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  479.                             check_flag, TAG_DONE );
  480.  
  481.             Gadgets[ 5 ] = g;
  482.  
  483.             ng.ng_LeftEdge        =    236;
  484.             ng.ng_TopEdge          =    170;
  485.             ng.ng_GadgetText      =    "Seconds";
  486.             ng.ng_GadgetID        =    GD_Seconds;
  487.             ng.ng_Flags           =    PLACETEXT_LEFT;
  488.  
  489.             check_flag = (Flag1 & SECONDS_FLAG) ? TRUE : FALSE;
  490.  
  491.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  492.                             check_flag, TAG_DONE );
  493.  
  494.             Gadgets[ 6 ] = g;
  495.  
  496.             ng.ng_LeftEdge        =    341;
  497.             ng.ng_GadgetText      =    "Micros";
  498.             ng.ng_GadgetID        =    GD_Micros;
  499.             ng.ng_Flags           =    PLACETEXT_LEFT;
  500.  
  501.             check_flag = (Flag1 & MICROS_FLAG) ? TRUE : FALSE;
  502.  
  503.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  504.                             check_flag, TAG_DONE );
  505.  
  506.             Gadgets[ 7 ] = g;
  507.  
  508.             ng.ng_LeftEdge        =    310;
  509.             ng.ng_TopEdge          =    190;
  510.             ng.ng_GadgetText      =    "IAddress";
  511.             ng.ng_GadgetID        =    GD_IAddress;
  512.             ng.ng_Flags           =    PLACETEXT_LEFT;
  513.  
  514.             check_flag = (Flag1 & IADDRESS_FLAG) ? TRUE : FALSE;
  515.  
  516.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  517.                             check_flag, TAG_DONE );
  518.  
  519.             Gadgets[ 8 ] = g;
  520.  
  521.             ng.ng_LeftEdge        =    530;
  522.             ng.ng_TopEdge          =    100;
  523.             ng.ng_GadgetText      =    "gadtools.library";
  524.             ng.ng_GadgetID        =    GD_gadtools;
  525.  
  526.             check_flag = (Flag1 & gadtools_FLAG) ? TRUE : FALSE;
  527.  
  528.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  529.                             check_flag, TAG_DONE );
  530.  
  531.             Gadgets[ 9 ] = g;
  532.  
  533.             ng.ng_LeftEdge        =    80;
  534.             ng.ng_TopEdge          =    222;
  535.             ng.ng_Width           =    100;
  536.             ng.ng_Height          =    18;
  537.             ng.ng_GadgetText      =    "QUIT";
  538.             ng.ng_GadgetID        =    GD_QUIT1;
  539.             ng.ng_Flags           =    PLACETEXT_IN;
  540.  
  541.             g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  542.  
  543.             Gadgets[ 10 ] = g;
  544.  
  545.             ng.ng_LeftEdge        =    460;
  546.             ng.ng_TopEdge          =    222;
  547.             ng.ng_GadgetText      =    "GO ON";
  548.             ng.ng_GadgetID        =    GD_GO_ON1;
  549.             ng.ng_Flags           =    PLACETEXT_IN;
  550.  
  551.             g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  552.  
  553.             Gadgets[ 11 ] = g;
  554.  
  555.             if ( ! g )
  556.                 return( 0L );
  557.  
  558.             AddGList( Wnd, GList, 0, -1, NULL );
  559.  
  560.             PrintIText( Wnd->RPort, IText1, 0L, 0L );
  561.  
  562.             DrawImage( Wnd->RPort, &Title, 76L, 30L );
  563.  
  564.             break;
  565.  
  566.         /*  making window #1  */
  567.         case 1 :
  568.  
  569.             if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  570.                 return( 0L );
  571.  
  572.             if ( ! ( g = CreateContext( &GList )))
  573.                 return( 0L );
  574.  
  575.             ng.ng_LeftEdge        =    138;
  576.             ng.ng_TopEdge          =    33;
  577.             ng.ng_GadgetText      =    "MOUSEBUTTONS";
  578.             ng.ng_TextAttr        =    &topaz8;
  579.             ng.ng_GadgetID        =    GD_MOUSEBUTTONS;
  580.             ng.ng_Flags           =    PLACETEXT_LEFT;
  581.             ng.ng_VisualInfo      =    VisualInfo;
  582.  
  583.             check_flag = (Flag2A & MOUSEBUTTONS_FLAG) ? TRUE : FALSE;
  584.  
  585.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  586.                             check_flag, TAG_DONE );
  587.  
  588.             Gadgets[ 0 ] = g;
  589.  
  590.             ng.ng_LeftEdge        =    166;
  591.             ng.ng_GadgetText      =    "F";
  592.             ng.ng_GadgetID        =    GD_MOUSEBUTTONS_F;
  593.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  594.  
  595.             check_flag = (Flag2A & MOUSEBUTTONS_F_FLAG) ? TRUE : FALSE;
  596.  
  597.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  598.                             check_flag, TAG_DONE );
  599.  
  600.             Gadgets[ 1 ] = g;
  601.  
  602.             ng.ng_LeftEdge        =    138;
  603.             ng.ng_TopEdge          =    45;
  604.             ng.ng_GadgetText      =    "MOUSEMOVE";
  605.             ng.ng_GadgetID        =    GD_MOUSEMOVE;
  606.             ng.ng_Flags           =    PLACETEXT_LEFT;
  607.  
  608.             check_flag = (Flag2A & MOUSEMOVE_FLAG) ? TRUE : FALSE;
  609.  
  610.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  611.                             check_flag, TAG_DONE );
  612.  
  613.             Gadgets[ 2 ] = g;
  614.  
  615.             ng.ng_LeftEdge        =    166;
  616.             ng.ng_GadgetText      =    "F";
  617.             ng.ng_GadgetID        =    GD_MOUSEMOVE_F;
  618.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  619.  
  620.             check_flag = (Flag2A & MOUSEMOVE_F_FLAG) ? TRUE : FALSE;
  621.  
  622.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  623.                             check_flag, TAG_DONE );
  624.  
  625.             Gadgets[ 3 ] = g;
  626.  
  627.             ng.ng_LeftEdge        =    138;
  628.             ng.ng_TopEdge          =    57;
  629.             ng.ng_GadgetText      =    "DELTAMOVE";        /* it's NO msg! */
  630.             ng.ng_GadgetID        =    GD_DELTAMOVE;
  631.             ng.ng_Flags           =    PLACETEXT_LEFT;
  632.  
  633.             check_flag = FALSE;
  634.  
  635.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  636.                             check_flag, GA_Disabled, TRUE, TAG_DONE );
  637.  
  638.             Gadgets[ 4 ] = g;
  639.  
  640.             ng.ng_LeftEdge        =    166;
  641.             ng.ng_GadgetText      =    "F";
  642.             ng.ng_GadgetID        =    GD_DELTAMOVE_F;    /* it's NO msg! */
  643.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  644.  
  645.             check_flag = FALSE;
  646.  
  647.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  648.                             check_flag, GA_Disabled, TRUE, TAG_DONE );
  649.  
  650.             Gadgets[ 5 ] = g;
  651.  
  652.             ng.ng_LeftEdge        =    138;
  653.             ng.ng_TopEdge          =    77;
  654.             ng.ng_GadgetText      =    "GADGETDOWN";
  655.             ng.ng_GadgetID        =    GD_GADGETDOWN;
  656.             ng.ng_Flags           =    PLACETEXT_LEFT;
  657.  
  658.             check_flag = (Flag2A & GADGETDOWN_FLAG) ? TRUE : FALSE;
  659.  
  660.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  661.                             check_flag, TAG_DONE );
  662.  
  663.             Gadgets[ 6 ] = g;
  664.  
  665.             ng.ng_LeftEdge        =    166;
  666.             ng.ng_GadgetText      =    "F";
  667.             ng.ng_GadgetID        =    GD_GADGETDOWN_F;
  668.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  669.  
  670.             check_flag = (Flag2A & GADGETDOWN_F_FLAG) ? TRUE : FALSE;
  671.  
  672.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  673.                             check_flag, TAG_DONE );
  674.  
  675.             Gadgets[ 7 ] = g;
  676.  
  677.             ng.ng_LeftEdge        =    138;
  678.             ng.ng_TopEdge          =    89;
  679.             ng.ng_GadgetText      =    "GADGETUP";
  680.             ng.ng_GadgetID        =    GD_GADGETUP;
  681.             ng.ng_Flags           =    PLACETEXT_LEFT;
  682.  
  683.             check_flag = (Flag2A & GADGETUP_FLAG) ? TRUE : FALSE;
  684.  
  685.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  686.                             check_flag, TAG_DONE );
  687.  
  688.             Gadgets[ 8 ] = g;
  689.  
  690.             ng.ng_LeftEdge        =    166;
  691.             ng.ng_GadgetText      =    "F";
  692.             ng.ng_GadgetID        =    GD_GADGETUP_F;
  693.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  694.  
  695.             check_flag = (Flag2A & GADGETUP_F_FLAG) ? TRUE : FALSE;
  696.  
  697.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  698.                             check_flag, TAG_DONE );
  699.  
  700.             Gadgets[ 9 ] = g;
  701.  
  702.             ng.ng_LeftEdge        =    138;
  703.             ng.ng_TopEdge          =    101;
  704.             ng.ng_GadgetText      =    "CLOSEWINDOW";
  705.             ng.ng_GadgetID        =    GD_CLOSEWINDOW;
  706.             ng.ng_Flags           =    PLACETEXT_LEFT;
  707.  
  708.             check_flag = (Flag2A & CLOSEWINDOW_FLAG) ? TRUE : FALSE;
  709.  
  710.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  711.                             check_flag, TAG_DONE );
  712.  
  713.             Gadgets[ 10 ] = g;
  714.  
  715.             ng.ng_LeftEdge        =    166;
  716.             ng.ng_GadgetText      =    "F";
  717.             ng.ng_GadgetID        =    GD_CLOSEWINDOW_F;
  718.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  719.  
  720.             check_flag = (Flag2A & CLOSEWINDOW_F_FLAG) ? TRUE : FALSE;
  721.  
  722.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  723.                             check_flag, TAG_DONE );
  724.  
  725.             Gadgets[ 11 ] = g;
  726.  
  727.             ng.ng_LeftEdge        =    138;
  728.             ng.ng_TopEdge          =    121;
  729.             ng.ng_GadgetText      =    "MENUPICK";
  730.             ng.ng_GadgetID        =    GD_MENUPICK;
  731.             ng.ng_Flags           =    PLACETEXT_LEFT;
  732.  
  733.             check_flag = (Flag2A & MENUPICK_FLAG) ? TRUE : FALSE;
  734.  
  735.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  736.                             check_flag, TAG_DONE );
  737.  
  738.             Gadgets[ 12 ] = g;
  739.  
  740.             ng.ng_LeftEdge        =    166;
  741.             ng.ng_GadgetText      =    "F";
  742.             ng.ng_GadgetID        =    GD_MENUPICK_F;
  743.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  744.  
  745.             check_flag = (Flag2A & MENUPICK_F_FLAG) ? TRUE : FALSE;
  746.  
  747.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  748.                             check_flag, TAG_DONE );
  749.  
  750.             Gadgets[ 13 ] = g;
  751.  
  752.             ng.ng_LeftEdge        =    138;
  753.             ng.ng_TopEdge          =    133;
  754.             ng.ng_GadgetText      =    "MENUVERIFY";
  755.             ng.ng_GadgetID        =    GD_MENUVERIFY;
  756.             ng.ng_Flags           =    PLACETEXT_LEFT;
  757.  
  758.             check_flag = (Flag2A & MENUVERIFY_FLAG) ? TRUE : FALSE;
  759.  
  760.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  761.                             check_flag, TAG_DONE );
  762.  
  763.             Gadgets[ 14 ] = g;
  764.  
  765.             ng.ng_LeftEdge        =    166;
  766.             ng.ng_GadgetText      =    "F";
  767.             ng.ng_GadgetID        =    GD_MENUVERIFY_F;
  768.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  769.  
  770.             check_flag = (Flag2A & MENUVERIFY_F_FLAG) ? TRUE : FALSE;
  771.  
  772.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  773.                             check_flag, TAG_DONE );
  774.  
  775.             Gadgets[ 15 ] = g;
  776.  
  777.             ng.ng_LeftEdge        =    138;
  778.             ng.ng_TopEdge          =    145;
  779.             ng.ng_GadgetText      =    "MENUHELP";
  780.             ng.ng_GadgetID        =    GD_MENUHELP;
  781.             ng.ng_Flags           =    PLACETEXT_LEFT;
  782.  
  783.             check_flag = (Flag2A & MENUHELP_FLAG) ? TRUE : FALSE;
  784.  
  785.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  786.                             check_flag, TAG_DONE );
  787.  
  788.             Gadgets[ 16 ] = g;
  789.  
  790.             ng.ng_LeftEdge        =    166;
  791.             ng.ng_GadgetText      =    "F";
  792.             ng.ng_GadgetID        =    GD_MENUHELP_F;
  793.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  794.  
  795.             check_flag = (Flag2A & MENUHELP_F_FLAG) ? TRUE : FALSE;
  796.  
  797.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  798.                             check_flag, TAG_DONE );
  799.  
  800.             Gadgets[ 17 ] = g;
  801.  
  802.             ng.ng_LeftEdge        =    138;
  803.             ng.ng_TopEdge          =    165;
  804.             ng.ng_GadgetText      =    "RAWKEY";
  805.             ng.ng_GadgetID        =    GD_RAWKEY;
  806.             ng.ng_Flags           =    PLACETEXT_LEFT;
  807.  
  808.             check_flag = (Flag2A & RAWKEY_FLAG) ? TRUE : FALSE;
  809.  
  810.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  811.                             check_flag, TAG_DONE );
  812.  
  813.             Gadgets[ 18 ] = g;
  814.  
  815.             ng.ng_LeftEdge        =    166;
  816.             ng.ng_GadgetText      =    "F";
  817.             ng.ng_GadgetID        =    GD_RAWKEY_F;
  818.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  819.  
  820.             check_flag = (Flag2A & RAWKEY_F_FLAG) ? TRUE : FALSE;
  821.  
  822.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  823.                             check_flag, TAG_DONE );
  824.  
  825.             Gadgets[ 19 ] = g;
  826.  
  827.             ng.ng_LeftEdge        =    138;
  828.             ng.ng_TopEdge          =    177;
  829.             ng.ng_GadgetText      =    "VANILLAKEY";
  830.             ng.ng_GadgetID        =    GD_VANILLAKEY;
  831.             ng.ng_Flags           =    PLACETEXT_LEFT;
  832.  
  833.             check_flag = (Flag2A & VANILLAKEY_FLAG) ? TRUE : FALSE;
  834.  
  835.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  836.                             check_flag, TAG_DONE );
  837.  
  838.             Gadgets[ 20 ] = g;
  839.  
  840.             ng.ng_LeftEdge        =    166;
  841.             ng.ng_GadgetText      =    "F";
  842.             ng.ng_GadgetID        =    GD_VANILLAKEY_F;
  843.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  844.  
  845.             check_flag = (Flag2A & VANILLAKEY_F_FLAG) ? TRUE : FALSE;
  846.  
  847.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  848.                             check_flag, TAG_DONE );
  849.  
  850.             Gadgets[ 21 ] = g;
  851.  
  852.             ng.ng_LeftEdge        =    356;
  853.             ng.ng_TopEdge          =    33;
  854.             ng.ng_GadgetText      =    "REQSET";
  855.             ng.ng_GadgetID        =    GD_REQSET;
  856.             ng.ng_Flags           =    PLACETEXT_LEFT;
  857.  
  858.             check_flag = (Flag2A & REQSET_FLAG) ? TRUE : FALSE;
  859.  
  860.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  861.                             check_flag, TAG_DONE );
  862.  
  863.             Gadgets[ 22 ] = g;
  864.  
  865.             ng.ng_LeftEdge        =    384;
  866.             ng.ng_GadgetText      =    "F";
  867.             ng.ng_GadgetID        =    GD_REQSET_F;
  868.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  869.  
  870.             check_flag = (Flag2A & REQSET_F_FLAG) ? TRUE : FALSE;
  871.  
  872.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  873.                             check_flag, TAG_DONE );
  874.  
  875.             Gadgets[ 23 ] = g;
  876.  
  877.             ng.ng_LeftEdge        =    356;
  878.             ng.ng_TopEdge          =    45;
  879.             ng.ng_GadgetText      =    "REQCLEAR";
  880.             ng.ng_GadgetID        =    GD_REQCLEAR;
  881.             ng.ng_Flags           =    PLACETEXT_LEFT;
  882.  
  883.             check_flag = (Flag2A & REQCLEAR_FLAG) ? TRUE : FALSE;
  884.  
  885.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  886.                             check_flag, TAG_DONE );
  887.  
  888.             Gadgets[ 24 ] = g;
  889.  
  890.             ng.ng_LeftEdge        =    384;
  891.             ng.ng_GadgetText      =    "F";
  892.             ng.ng_GadgetID        =    GD_REQCLEAR_F;
  893.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  894.  
  895.             check_flag = (Flag2A & REQCLEAR_F_FLAG) ? TRUE : FALSE;
  896.  
  897.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  898.                             check_flag, TAG_DONE );
  899.  
  900.             Gadgets[ 25 ] = g;
  901.  
  902.             ng.ng_LeftEdge        =    356;
  903.             ng.ng_TopEdge          =    57;
  904.             ng.ng_GadgetText      =    "REQVERIFY";
  905.             ng.ng_GadgetID        =    GD_REQVERIFY;
  906.             ng.ng_Flags           =    PLACETEXT_LEFT;
  907.  
  908.             check_flag = (Flag2A & REQVERIFY_FLAG) ? TRUE : FALSE;
  909.  
  910.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  911.                             check_flag, TAG_DONE );
  912.  
  913.             Gadgets[ 26 ] = g;
  914.  
  915.             ng.ng_LeftEdge        =    384;
  916.             ng.ng_GadgetText      =    "F";
  917.             ng.ng_GadgetID        =    GD_REQVERIFY_F;
  918.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  919.  
  920.             check_flag = (Flag2A & REQVERIFY_F_FLAG) ? TRUE : FALSE;
  921.  
  922.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  923.                             check_flag, TAG_DONE );
  924.  
  925.             Gadgets[ 27 ] = g;
  926.  
  927.             ng.ng_LeftEdge        =    356;
  928.             ng.ng_TopEdge          =    77;
  929.             ng.ng_GadgetText      =    "NEWSIZE";
  930.             ng.ng_GadgetID        =    GD_NEWSIZE;
  931.             ng.ng_Flags           =    PLACETEXT_LEFT;
  932.  
  933.             check_flag = (Flag2B & NEWSIZE_FLAG) ? TRUE : FALSE;
  934.  
  935.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  936.                             check_flag, TAG_DONE );
  937.  
  938.             Gadgets[ 28 ] = g;
  939.  
  940.             ng.ng_LeftEdge        =    384;
  941.             ng.ng_GadgetText      =    "F";
  942.             ng.ng_GadgetID        =    GD_NEWSIZE_F;
  943.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  944.  
  945.             check_flag = (Flag2B & NEWSIZE_F_FLAG) ? TRUE : FALSE;
  946.  
  947.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  948.                             check_flag, TAG_DONE );
  949.  
  950.             Gadgets[ 29 ] = g;
  951.  
  952.             ng.ng_LeftEdge        =    356;
  953.             ng.ng_TopEdge          =    89;
  954.             ng.ng_GadgetText      =    "SIZEVERIFY";
  955.             ng.ng_GadgetID        =    GD_SIZEVERIFY;
  956.             ng.ng_Flags           =    PLACETEXT_LEFT;
  957.  
  958.             check_flag = (Flag2B & SIZEVERIFY_FLAG) ? TRUE : FALSE;
  959.  
  960.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  961.                             check_flag, TAG_DONE );
  962.  
  963.             Gadgets[ 30 ] = g;
  964.  
  965.             ng.ng_LeftEdge        =    384;
  966.             ng.ng_GadgetText      =    "F";
  967.             ng.ng_GadgetID        =    GD_SIZEVERIFY_F;
  968.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  969.  
  970.             check_flag = (Flag2B & SIZEVERIFY_F_FLAG) ? TRUE : FALSE;
  971.  
  972.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  973.                             check_flag, TAG_DONE );
  974.  
  975.             Gadgets[ 31 ] = g;
  976.  
  977.             ng.ng_LeftEdge        =    356;
  978.             ng.ng_TopEdge          =    101;
  979.             ng.ng_GadgetText      =    "ACTIVEWINDOW";
  980.             ng.ng_GadgetID        =    GD_ACTIVEWINDOW;
  981.             ng.ng_Flags           =    PLACETEXT_LEFT;
  982.  
  983.             check_flag = (Flag2B & ACTIVEWINDOW_FLAG) ? TRUE : FALSE;
  984.  
  985.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  986.                             check_flag, TAG_DONE );
  987.  
  988.             Gadgets[ 32 ] = g;
  989.  
  990.             ng.ng_LeftEdge        =    384;
  991.             ng.ng_GadgetText      =    "F";
  992.             ng.ng_GadgetID        =    GD_ACTIVEWINDOW_F;
  993.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  994.  
  995.             check_flag = (Flag2B & ACTIVEWINDOW_F_FLAG) ? TRUE : FALSE;
  996.  
  997.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  998.                             check_flag, TAG_DONE );
  999.  
  1000.             Gadgets[ 33 ] = g;
  1001.  
  1002.             ng.ng_LeftEdge        =    356;
  1003.             ng.ng_TopEdge          =    113;
  1004.             ng.ng_GadgetText      =    "INACTIVEWINDOW";
  1005.             ng.ng_GadgetID        =    GD_INACTIVEWINDOW;
  1006.             ng.ng_Flags           =    PLACETEXT_LEFT;
  1007.  
  1008.             check_flag = (Flag2B & INACTIVEWINDOW_FLAG) ? TRUE : FALSE;
  1009.  
  1010.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1011.                             check_flag, TAG_DONE );
  1012.  
  1013.             Gadgets[ 34 ] = g;
  1014.  
  1015.             ng.ng_LeftEdge        =    384;
  1016.             ng.ng_GadgetText      =    "F";
  1017.             ng.ng_GadgetID        =    GD_INACTIVEWINDOW_F;
  1018.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  1019.  
  1020.             check_flag = (Flag2B & INACTIVEWINDOW_F_FLAG) ? TRUE : FALSE;
  1021.  
  1022.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1023.                             check_flag, TAG_DONE );
  1024.  
  1025.             Gadgets[ 35 ] = g;
  1026.  
  1027.             ng.ng_LeftEdge        =    356;
  1028.             ng.ng_TopEdge          =    125;
  1029.             ng.ng_GadgetText      =    "CHANGEWINDOW";
  1030.             ng.ng_GadgetID        =    GD_CHANGEWINDOW;
  1031.             ng.ng_Flags           =    PLACETEXT_LEFT;
  1032.  
  1033.             check_flag = (Flag2B & CHANGEWINDOW_FLAG) ? TRUE : FALSE;
  1034.  
  1035.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1036.                             check_flag, TAG_DONE );
  1037.  
  1038.             Gadgets[ 36 ] = g;
  1039.  
  1040.             ng.ng_LeftEdge        =    384;
  1041.             ng.ng_GadgetText      =    "F";
  1042.             ng.ng_GadgetID        =    GD_CHANGEWINDOW_F;
  1043.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  1044.  
  1045.             check_flag = (Flag2B & CHANGEWINDOW_F_FLAG) ? TRUE : FALSE;
  1046.  
  1047.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1048.                             check_flag, TAG_DONE );
  1049.  
  1050.             Gadgets[ 37 ] = g;
  1051.  
  1052.             ng.ng_LeftEdge        =    356;
  1053.             ng.ng_TopEdge          =    137;
  1054.             ng.ng_GadgetText      =    "REFRESHWINDOW";
  1055.             ng.ng_GadgetID        =    GD_REFRESHWINDOW;
  1056.             ng.ng_Flags           =    PLACETEXT_LEFT;
  1057.  
  1058.             check_flag = (Flag2B & REFRESHWINDOW_FLAG) ? TRUE : FALSE;
  1059.  
  1060.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1061.                             check_flag, TAG_DONE );
  1062.  
  1063.             Gadgets[ 38 ] = g;
  1064.  
  1065.             ng.ng_LeftEdge        =    384;
  1066.             ng.ng_GadgetText      =    "F";
  1067.             ng.ng_GadgetID        =    GD_REFRESHWINDOW_F;
  1068.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  1069.  
  1070.             check_flag = (Flag2B & REFRESHWINDOW_F_FLAG) ? TRUE : FALSE;
  1071.  
  1072.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1073.                             check_flag, TAG_DONE );
  1074.  
  1075.             Gadgets[ 39 ] = g;
  1076.  
  1077.             ng.ng_LeftEdge        =    356;
  1078.             ng.ng_TopEdge          =    157;
  1079.             ng.ng_GadgetText      =    "DISKINSERTED";
  1080.             ng.ng_GadgetID        =    GD_DISKINSERTED;
  1081.             ng.ng_Flags           =    PLACETEXT_LEFT;
  1082.  
  1083.             check_flag = (Flag2B & DISKINSERTED_FLAG) ? TRUE : FALSE;
  1084.  
  1085.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1086.                             check_flag, TAG_DONE );
  1087.  
  1088.             Gadgets[ 40 ] = g;
  1089.  
  1090.             ng.ng_LeftEdge        =    384;
  1091.             ng.ng_GadgetText      =    "F";
  1092.             ng.ng_GadgetID        =    GD_DISKINSERTED_F;
  1093.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  1094.  
  1095.             check_flag = (Flag2B & DISKINSERTED_F_FLAG) ? TRUE : FALSE;
  1096.  
  1097.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1098.                             check_flag, TAG_DONE );
  1099.  
  1100.             Gadgets[ 41 ] = g;
  1101.  
  1102.             ng.ng_LeftEdge        =    356;
  1103.             ng.ng_TopEdge          =    169;
  1104.             ng.ng_GadgetText      =    "DISKREMOVED";
  1105.             ng.ng_GadgetID        =    GD_DISKREMOVED;
  1106.             ng.ng_Flags           =    PLACETEXT_LEFT;
  1107.  
  1108.             check_flag = (Flag2B & DISKREMOVED_FLAG) ? TRUE : FALSE;
  1109.  
  1110.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1111.                             check_flag, TAG_DONE );
  1112.  
  1113.             Gadgets[ 42 ] = g;
  1114.  
  1115.             ng.ng_LeftEdge        =    384;
  1116.             ng.ng_GadgetText      =    "F";
  1117.             ng.ng_GadgetID        =    GD_DISKREMOVED_F;
  1118.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  1119.  
  1120.             check_flag = (Flag2B & DISKREMOVED_F_FLAG) ? TRUE : FALSE;
  1121.  
  1122.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1123.                             check_flag, TAG_DONE );
  1124.  
  1125.             Gadgets[ 43 ] = g;
  1126.  
  1127.             ng.ng_LeftEdge        =    541;
  1128.             ng.ng_TopEdge          =    65;
  1129.             ng.ng_GadgetText      =    "NEWPREFS";
  1130.             ng.ng_GadgetID        =    GD_NEWPREFS;
  1131.             ng.ng_Flags           =    PLACETEXT_LEFT;
  1132.  
  1133.             check_flag = (Flag2B & NEWPREFS_FLAG) ? TRUE : FALSE;
  1134.  
  1135.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1136.                             check_flag, TAG_DONE );
  1137.  
  1138.             Gadgets[ 44 ] = g;
  1139.  
  1140.             ng.ng_LeftEdge        =    569;
  1141.             ng.ng_GadgetText      =    "F";
  1142.             ng.ng_GadgetID        =    GD_NEWPREFS_F;
  1143.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  1144.  
  1145.             check_flag = (Flag2B & NEWPREFS_F_FLAG) ? TRUE : FALSE;
  1146.  
  1147.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1148.                             check_flag, TAG_DONE );
  1149.  
  1150.             Gadgets[ 45 ] = g;
  1151.  
  1152.             ng.ng_LeftEdge        =    541;
  1153.             ng.ng_TopEdge          =    85;
  1154.             ng.ng_GadgetText      =    "INTUITICKS";
  1155.             ng.ng_GadgetID        =    GD_INTUITICKS;
  1156.             ng.ng_Flags           =    PLACETEXT_LEFT;
  1157.  
  1158.             check_flag = (Flag2B & INTUITICKS_FLAG) ? TRUE : FALSE;
  1159.  
  1160.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1161.                             check_flag, TAG_DONE );
  1162.  
  1163.             Gadgets[ 46 ] = g;
  1164.  
  1165.             ng.ng_LeftEdge        =    569;
  1166.             ng.ng_GadgetText      =    "F";
  1167.             ng.ng_GadgetID        =    GD_INTUITICKS_F;
  1168.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  1169.  
  1170.             check_flag = (Flag2B & INTUITICKS_F_FLAG) ? TRUE : FALSE;
  1171.  
  1172.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1173.                             check_flag, TAG_DONE );
  1174.  
  1175.             Gadgets[ 47 ] = g;
  1176.  
  1177.             ng.ng_LeftEdge        =    541;
  1178.             ng.ng_TopEdge          =    105;
  1179.             ng.ng_GadgetText      =    "IDCMPUPDATE";
  1180.             ng.ng_GadgetID        =    GD_IDCMPUPDATE;
  1181.             ng.ng_Flags           =    PLACETEXT_LEFT;
  1182.  
  1183.             check_flag = (Flag2B & IDCMPUPDATE_FLAG) ? TRUE : FALSE;
  1184.  
  1185.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1186.                             check_flag, TAG_DONE );
  1187.  
  1188.             Gadgets[ 48 ] = g;
  1189.  
  1190.             ng.ng_LeftEdge        =    569;
  1191.             ng.ng_GadgetText      =    "F";
  1192.             ng.ng_GadgetID        =    GD_IDCMPUPDATE_F;
  1193.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  1194.  
  1195.             check_flag = (Flag2B & IDCMPUPDATE_F_FLAG) ? TRUE : FALSE;
  1196.  
  1197.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1198.                             check_flag, TAG_DONE );
  1199.  
  1200.             Gadgets[ 49 ] = g;
  1201.  
  1202.             ng.ng_LeftEdge        =    541;
  1203.             ng.ng_TopEdge          =    190;
  1204.             ng.ng_GadgetText      =    "LONELYMESSAGE";
  1205.             ng.ng_GadgetID        =    GD_LONELYMESSAGE;
  1206.             ng.ng_Flags           =    PLACETEXT_LEFT;
  1207.  
  1208.             check_flag = (Flag2B & LONELYMESSAGE_FLAG) ? TRUE : FALSE;
  1209.  
  1210.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1211.                             check_flag, TAG_DONE );
  1212.  
  1213.             Gadgets[ 50 ] = g;
  1214.  
  1215.             ng.ng_LeftEdge        =    569;
  1216.             ng.ng_GadgetText      =    "F";
  1217.             ng.ng_GadgetID        =    GD_LONELYMESSAGE_F;
  1218.             ng.ng_Flags           =    PLACETEXT_RIGHT;
  1219.  
  1220.             check_flag = (Flag2B & LONELYMESSAGE_F_FLAG) ? TRUE : FALSE;
  1221.  
  1222.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1223.                             check_flag, TAG_DONE );
  1224.  
  1225.             Gadgets[ 51 ] = g;
  1226.  
  1227.             ng.ng_LeftEdge        =    80;
  1228.             ng.ng_TopEdge          =    222;
  1229.             ng.ng_Width           =    100;
  1230.             ng.ng_Height          =    18;
  1231.             ng.ng_GadgetText      =    "QUIT";
  1232.             ng.ng_TextAttr        =    &topaz8;
  1233.             ng.ng_GadgetID        =    GD_QUIT2;
  1234.             ng.ng_Flags           =    PLACETEXT_IN;
  1235.  
  1236.             g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  1237.  
  1238.             Gadgets[ 52 ] = g;
  1239.  
  1240.             ng.ng_LeftEdge        =    460;
  1241.             ng.ng_GadgetText      =    "GO ON";
  1242.             ng.ng_GadgetID        =    GD_GO_ON2;
  1243.  
  1244.             g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  1245.  
  1246.             Gadgets[ 53 ] = g;
  1247.  
  1248.             ng.ng_LeftEdge        =    324;
  1249.             ng.ng_GadgetText      =    "STEP BACK";
  1250.             ng.ng_GadgetID        =    GD_STEP_BACK2;
  1251.  
  1252.             g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  1253.  
  1254.             Gadgets[ 54 ] = g;
  1255.  
  1256.             if ( ! g )
  1257.                 return( 0L );
  1258.  
  1259.             AddGList( Wnd, GList, 0, -1, NULL );
  1260.  
  1261.             PrintIText( Wnd->RPort, IText2, 0L, 0L );
  1262.  
  1263.             break;
  1264.  
  1265.         /*  making window #2 */
  1266.         case 2 :
  1267.  
  1268.             if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  1269.                 return( 0L );
  1270.  
  1271.             if ( ! ( g = CreateContext( &GList )))
  1272.                 return( 0L );
  1273.  
  1274.             ng.ng_LeftEdge        =    36;
  1275.             ng.ng_TopEdge          =    43;
  1276.             ng.ng_Width           =    166;
  1277.             ng.ng_Height          =    14;
  1278.             ng.ng_GadgetText      =    " top-level returning";
  1279.             ng.ng_GadgetID        =    GD_TopLevelRet;
  1280.             ng.ng_Flags           =    PLACETEXT_ABOVE;
  1281.             ng.ng_TextAttr        =    &topaz8;
  1282.             ng.ng_VisualInfo      =    VisualInfo;
  1283.  
  1284.             switch ( TopReturn_FLAG ) {
  1285.                 case 0:
  1286.                     temp_ptr = TopRetLabels0;
  1287.                     break;
  1288.                 case 1:
  1289.                     temp_ptr = TopRetLabels1;
  1290.                     break;
  1291.             }
  1292.  
  1293.             g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, temp_ptr, TAG_DONE );
  1294.  
  1295.             Gadgets[ 0 ] = g;
  1296.  
  1297.             ng.ng_LeftEdge        =    220;
  1298.             ng.ng_TopEdge          =    42;
  1299.             ng.ng_Width           =    166;
  1300.             ng.ng_Height          =    16;
  1301.             ng.ng_GadgetText      =    "top-level name";
  1302.             ng.ng_GadgetID        =    GD_TopLevelName;
  1303.  
  1304.             g = CreateGadget( STRING_KIND, g, &ng, GTST_String, TOP_LEVEL_NAME,
  1305.                           GTST_MaxChars, 40, TAG_DONE );
  1306.  
  1307.             TOP_LEVEL_BUF = ((struct StringInfo *) g->SpecialInfo)->Buffer;
  1308.  
  1309.             Gadgets[ 1 ] = g;
  1310.  
  1311.             ng.ng_LeftEdge        =    36;
  1312.             ng.ng_TopEdge          =    90;
  1313.             ng.ng_Width           =    146;
  1314.             ng.ng_GadgetText      =    "low-level prefix";
  1315.             ng.ng_GadgetID        =    GD_Prefix;
  1316.  
  1317.             g = CreateGadget( STRING_KIND, g, &ng, GTST_String, PREFIX_NAME,
  1318.                     GTST_MaxChars, 20, TAG_DONE );
  1319.  
  1320.             PREFIX_BUF = ((struct StringInfo *) g->SpecialInfo)->Buffer;
  1321.  
  1322.             Gadgets[ 2 ] = g;
  1323.  
  1324.             ng.ng_LeftEdge        =    194;
  1325.             ng.ng_GadgetText      =    "low-level suffix";
  1326.             ng.ng_GadgetID        =    GD_Suffix;
  1327.  
  1328.             g = CreateGadget( STRING_KIND, g, &ng, GTST_String, SUFFIX_NAME,
  1329.                     GTST_MaxChars, 20, TAG_DONE );
  1330.  
  1331.             SUFFIX_BUF = ((struct StringInfo *) g->SpecialInfo)->Buffer;
  1332.  
  1333.             Gadgets[ 3 ] = g;
  1334.  
  1335.             ng.ng_LeftEdge        =    250;
  1336.             ng.ng_TopEdge          =    167;
  1337.             ng.ng_GadgetText      =    "low-level skeletons";
  1338.             ng.ng_GadgetID        =    GD_Skeletons;
  1339.             ng.ng_Flags           =    PLACETEXT_LEFT;
  1340.  
  1341.             check_flag = (Flag3 & Skeletons_FLAG) ? TRUE : FALSE;
  1342.  
  1343.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1344.                             check_flag, TAG_DONE );
  1345.  
  1346.             Gadgets[ 4 ] = g;
  1347.  
  1348.             ng.ng_TopEdge          =    187;
  1349.             ng.ng_GadgetText      =    "function prototypes";
  1350.             ng.ng_GadgetID        =    GD_Prototypes;
  1351.  
  1352.             check_flag = (Flag3 & Prototypes_FLAG) ? TRUE : FALSE;
  1353.  
  1354.             g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked,
  1355.                             check_flag, TAG_DONE );
  1356.  
  1357.             Gadgets[ 5 ] = g;
  1358.  
  1359.             ng.ng_LeftEdge        =    428;
  1360.             ng.ng_TopEdge          =    83;
  1361.             ng.ng_Width           =    166;
  1362.             ng.ng_Height          =    14;
  1363.             ng.ng_GadgetText      =    "  waiting";
  1364.             ng.ng_GadgetID        =    GD_WaitingMode;
  1365.             ng.ng_Flags           =    PLACETEXT_ABOVE;
  1366.  
  1367.             switch (WaitingMode_FLAG) {
  1368.                 case 0:
  1369.                     temp_ptr = WaitingModeLabels0;
  1370.                     break;
  1371.                 case 1:
  1372.                     temp_ptr = WaitingModeLabels1;
  1373.                     break;
  1374.             }
  1375.  
  1376.             g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, temp_ptr, TAG_DONE );
  1377.  
  1378.             Gadgets[ 6 ] = g;
  1379.  
  1380.             ng.ng_TopEdge          =    118;
  1381.             ng.ng_GadgetText      =    "  variables";
  1382.             ng.ng_GadgetID        =    GD_Variables;
  1383.  
  1384.             switch (Variables_FLAG) {
  1385.                 case 0:
  1386.                     temp_ptr = VariablesLabels0;
  1387.                     break;
  1388.                 case 1:
  1389.                     temp_ptr = VariablesLabels1;
  1390.                     break;
  1391.             }
  1392.  
  1393.             g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, temp_ptr, TAG_DONE );
  1394.  
  1395.             Gadgets[ 7 ] = g;
  1396.  
  1397.             ng.ng_TopEdge          =    153;
  1398.             ng.ng_GadgetText      =    "  comments";
  1399.             ng.ng_GadgetID        =    GD_Comments;
  1400.  
  1401.             switch ( Comments_FLAG ) {
  1402.                 case 0:
  1403.                     temp_ptr = CommentsLabels0;
  1404.                     break;
  1405.                 case 1:
  1406.                     temp_ptr = CommentsLabels1;
  1407.                     break;
  1408.                 case 2:
  1409.                     temp_ptr = CommentsLabels2;
  1410.                     break;
  1411.             }
  1412.  
  1413.             g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, temp_ptr, TAG_DONE );
  1414.  
  1415.             Gadgets[ 8 ] = g;
  1416.  
  1417.             ng.ng_TopEdge          =    188;
  1418.             ng.ng_GadgetText      =    "  fill-ins";
  1419.             ng.ng_GadgetID        =    GD_FillIns;
  1420.  
  1421.             switch (FillIns_FLAG) {
  1422.                 case 0:
  1423.                     temp_ptr = FillInsLabels0;
  1424.                     break;
  1425.                 case 1:
  1426.                     temp_ptr = FillInsLabels1;
  1427.                     break;
  1428.                 case 2:
  1429.                     temp_ptr = FillInsLabels2;
  1430.                     break;
  1431.                 case 3:
  1432.                     temp_ptr = FillInsLabels3;
  1433.                     break;
  1434.             }
  1435.  
  1436.             g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, temp_ptr, TAG_DONE );
  1437.  
  1438.             Gadgets[ 9 ] = g;
  1439.  
  1440.             ng.ng_TopEdge        =    43;
  1441.             ng.ng_LeftEdge      =    400;
  1442.             ng.ng_Width         =    166;
  1443.             ng.ng_Height        =    14;
  1444.             ng.ng_GadgetText    =    " top-level args";
  1445.             ng.ng_GadgetID      =    GD_TopArgs;
  1446.             ng.ng_Flags         =    PLACETEXT_ABOVE;
  1447.  
  1448.             switch ( TopArgs_FLAG ) {
  1449.                 case 0:
  1450.                     temp_ptr = TopArgsLabels0;
  1451.                     break;
  1452.                 case 1:
  1453.                     temp_ptr = TopArgsLabels1;
  1454.             }
  1455.  
  1456.             g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, temp_ptr, TAG_DONE );
  1457.  
  1458.             Gadgets[ 10 ] = g;
  1459.  
  1460.             ng.ng_LeftEdge        =    80;
  1461.             ng.ng_TopEdge          =    222;
  1462.             ng.ng_Width           =    100;
  1463.             ng.ng_Height          =    18;
  1464.             ng.ng_GadgetText      =    "QUIT";
  1465.             ng.ng_TextAttr        =    &topaz8;
  1466.             ng.ng_GadgetID        =    GD_QUIT3;
  1467.             ng.ng_Flags           =    PLACETEXT_IN;
  1468.  
  1469.             g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  1470.  
  1471.             Gadgets[ 11 ] = g;
  1472.  
  1473.             ng.ng_LeftEdge        =    324;
  1474.             ng.ng_GadgetText      =    "STEP BACK";
  1475.             ng.ng_GadgetID        =    GD_STEP_BACK3;
  1476.  
  1477.             g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  1478.  
  1479.             Gadgets[ 12 ] = g;
  1480.  
  1481.             ng.ng_LeftEdge        =    460;
  1482.             ng.ng_GadgetText      =    "WRITE C";
  1483.             ng.ng_GadgetID        =    GD_WRITE_C;
  1484.  
  1485.             g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  1486.  
  1487.             Gadgets[ 13 ] = g;
  1488.  
  1489.             ng.ng_LeftEdge        =    36;
  1490.             ng.ng_TopEdge          =    130;
  1491.             ng.ng_Width           =    166;
  1492.             ng.ng_Height          =    16;
  1493.             ng.ng_Flags           =    PLACETEXT_ABOVE;
  1494.             ng.ng_GadgetText      =    "test-variable name";
  1495.             ng.ng_GadgetID        =    GD_TestVarName;
  1496.  
  1497.             g = CreateGadget( STRING_KIND, g, &ng, GTST_String, TEST_VAR_NAME,
  1498.                           GTST_MaxChars, 40, TAG_DONE );
  1499.  
  1500.             TEST_VAR_BUF = ((struct StringInfo *) g->SpecialInfo)->Buffer;
  1501.  
  1502.             Gadgets[ 14 ] = g;
  1503.  
  1504.             ng.ng_LeftEdge        =    220;
  1505.             ng.ng_TopEdge          =    131;
  1506.             ng.ng_Height          =    14;
  1507.             ng.ng_GadgetText      =    " test-variable scope";
  1508.             ng.ng_GadgetID        =    GD_TestVarScope;
  1509.  
  1510.             switch ( TestVarScope_FLAG ) {
  1511.                 case 0:
  1512.                     temp_ptr = TestVariable_scope0;
  1513.                     break;
  1514.                 case 1:
  1515.                     temp_ptr = TestVariable_scope1;
  1516.                     break;
  1517.             }
  1518.  
  1519.             g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, temp_ptr, TAG_DONE );
  1520.  
  1521.             Gadgets[ 15 ] = g;
  1522.  
  1523.             if ( ! g )
  1524.                 return( 0L );
  1525.  
  1526.             AddGList( Wnd, GList, 0, -1, NULL );
  1527.  
  1528.             PrintIText( Wnd->RPort, IText3, 0L, 0L );
  1529.  
  1530.             break;
  1531.     }
  1532.  
  1533.     RefreshGadgets( GList, Wnd, NULL );
  1534.  
  1535.     GT_RefreshWindow( Wnd, NULL );
  1536.  
  1537.     return( 1L );
  1538. }
  1539.  
  1540.  
  1541. VOID
  1542. CleanStuff()
  1543. {
  1544.       if ( Wnd ) {
  1545.         ThisProcess = (struct Process *)FindTask( 0 );
  1546.         ThisProcess->pr_WindowPtr = OldWindow;
  1547.         CloseWindow( Wnd );
  1548.       }
  1549.  
  1550.     if ( GList )
  1551.         FreeGadgets( GList );
  1552.  
  1553.     if ( VisualInfo )
  1554.         FreeVisualInfo( VisualInfo );
  1555.  
  1556.     if ( Scr )
  1557.         CloseScreen( Scr );
  1558.  
  1559.     CloseLibrary( GadToolsBase );
  1560.  
  1561.     CloseLibrary( AslBase );
  1562. }
  1563.  
  1564.