home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d8xx / d891 / skew.lha / Skew / source.lha / source / Skew1.c < prev    next >
C/C++ Source or Header  |  1993-07-04  |  39KB  |  1,602 lines

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