home *** CD-ROM | disk | FTP | other *** search
/ Megahits 4 / MegaHits_Vol.4.iso / mui / dev / gui / dope.lha / Dope / dope.c next >
Encoding:
C/C++ Source or Header  |  1994-05-17  |  26.6 KB  |  545 lines

  1. //
  2. // Set DCCOPTS
  3. //
  4. // Use
  5. //
  6. // dcc -v -mRR -mi -proto -ms -lmui -lc -lamiga30s dope.c
  7. //
  8. // to compile
  9. //
  10. //
  11. // This little hack is only a MUI-GUI for a program which sets the environment
  12. // variable DCCOPTS.
  13. //
  14. // I've written it to play around with MUIs macro-language.
  15. //
  16. // If anyone will make a useful program from it, please inform me!
  17. //
  18. // Engelbert Roidl
  19. // e-mail: engelbert.roidl@extern.uni-regensburg.de
  20. //
  21.  
  22. #include "dope.h"
  23.  
  24. enum pg {
  25.     PG_Misc, PG_Cpp, PG_Code, PG_Link, PG_Debug
  26.     };
  27.  
  28. enum id {
  29.     ID_DUMMY,
  30.     ID_REGISTER,
  31.  
  32.     // Window
  33.     ID_CANCEL, ID_USE, ID_SAVE,
  34.  
  35.     // Misc-Id
  36.     ID_TIMESTAMP, ID_UNIX, ID_CPP, ID_TMPDIR, ID_OUTDIR, ID_STDERR, ID_OUTTYPE,
  37.     ID_RESIDENT, ID_STMPDIR, ID_SOUTDIR, ID_SSTDERR,
  38.  
  39.     // CPP
  40.     ID_REMDEFIP, ID_UDEF, ID_PROTO, ID_ADDDEF, ID_REMDEF, ID_ADDIP, ID_REMIP, ID_UPIP, ID_DOWNIP,
  41.     ID_DEFLV, ID_IPLV,
  42.  
  43.     // Codegeneration
  44.     ID_PROC, ID_COPROC, ID_CODE, ID_DATA, ID_CONST, ID_REG, ID_INLINE, ID_DYNSTACK,
  45.  
  46.     // Linker
  47.     ID_DEFLIB, ID_DEFLIBP, ID_SECNAM, ID_COMBHUNK, ID_CHIP, ID_FFP,
  48.     ID_ADDLIB, ID_REMLIB, ID_UPLIB, ID_DOWNLIB,
  49.     ID_ADDLP, ID_REMLP, ID_UPLP, ID_DOWNLP,
  50.     ID_LINKLV, ID_PATHLV,
  51.  
  52.     // Debug
  53.     ID_PROF, ID_SYM, ID_DEBUG, ID_LEVEL
  54.  
  55.     };
  56.  
  57.  
  58. int main(int argc, char *argv[])
  59. {
  60.     ULONG act,wert;
  61.     char *line;
  62.  
  63.     APTR app, window;
  64.     ULONG signals;
  65.     BOOL running = TRUE;
  66.  
  67.     Object *reg;
  68.  
  69.     Object *CM_UseTimestamp, *CM_UseUNIX, *CM_UseCpp;
  70.     Object *PD_TmpDir, *PD_OutDir, *PF_STDERR;
  71.     Object *PS_TmpDir, *PS_OutDir, *PS_STDERR;
  72.     Object *CY_Outputtype, *CY_Resident;
  73.  
  74.     Object *CM_RemDefIPath, *CM_UnDef, *CM_ProtCheckAndOpt;
  75.     Object *BT_AddIncP, *BT_RemIncP, *BT_UpIncP, *BT_DownIncP;
  76.     Object *BT_AddDef, *BT_RemDef;
  77.     Object *LV_Defines, *LV_DefPath;
  78.  
  79.     Object *CY_Proc, *CY_CoProc, *CY_Code, *CY_Data, *CY_Con;
  80.     Object *CM_Reg, *CM_In, *CM_Dyn;
  81.  
  82.     Object *BT_AddLib, *BT_RemLib, *BT_UpLib, *BT_DownLib;
  83.     Object *BT_AddLibP, *BT_RemLibP, *BT_UpLibP, *BT_DownLibP;
  84.     Object *LV_LibSP, *LV_AddLib;
  85.     Object *CM_LinkDefLib, *CM_RemDefLP, *CM_AltSName, *CM_CombHunk, *CM_Chip, *CM_Ffp;
  86.  
  87.     Object *CY_Prof, *CM_Sym, *CM_Debug, *ST_DebugLevel;
  88.  
  89.     Object *BT_Save, *BT_Use, *BT_Cancel;
  90.  
  91.     char *Pages[] = { "Misc", "CPP" , "Codegeneration" , "Linker" , "Debug" , NULL };
  92.     char *Outputtype[] = { "Executable" , "do not link" , "do not assemble" , NULL };
  93.     char *Resident[] = { "Nonresident",
  94.                          "Resident with seperate CODE & DATA hunks",
  95.                          "Resident with no RELOC hunks",
  96.                          "Nonresident with no RELOC hunks",
  97.                          NULL
  98.                        };
  99.  
  100.     char *Proc[] = { "680x0", "68020", "68030", NULL };
  101.     char *CoProc[] = { "None", "68881", "68882", NULL };
  102.     char *Code[] = {"small code", "large code", NULL};
  103.     char *Data[] = {"small data", "large data", NULL};
  104.     char *Con[] = {"Default const handling",
  105.                    "const objects into CODE hunk",
  106.                    "string constants into read-only code hunk",
  107.                    "string const into read-only code hunks AND NEAR adr. for all ext. const refs",
  108.                    NULL
  109.                   };
  110.  
  111.     char *Prof[] = { "No profiling",
  112.                      "Enable profiling for source modules",
  113.                      "Enable profiling for source modules and c*.lib",
  114.                      "Enable profiling for source modules, c*.lib and amiga*.lib",
  115.                      NULL
  116.                    };
  117.  
  118.  
  119.     app=ApplicationObject,
  120.             MUIA_Application_Author, "Engelbert Roidl",
  121.             MUIA_Application_Base, "DOPE",
  122.             MUIA_Application_Title, "DopE ",
  123.             MUIA_Application_Version, "$VER: DopE 1.001 (28 Feb 1994)",
  124.             MUIA_Application_Copyright, "© 1994 by Engelbert Roidl",
  125.             MUIA_Application_Description, "Sets Diceoptions (DCCOPTS)",
  126.             MUIA_HelpFile, "HELP:Dope.guide",
  127.  
  128.             SubWindow, window = WindowObject,
  129.                 MUIA_Window_Title,  "DopE V1.0 ©1994 Engelbert Roidl",
  130.                 MUIA_Window_ID,     MAKE_ID('D','O','P','E'),
  131.  
  132.                 WindowContents, VGroup,
  133.  
  134.                     Child, RegisterGroup(Pages),
  135.                         GroupFrame,
  136.                         MUIA_Register_Frame, TRUE,
  137.  
  138.                         // Page 1 : Misc
  139.                         Child, VGroup,
  140.                                 // GroupFrameT("Misc"),
  141.                                 // GroupFrame,
  142.                                 //MUIA_Register_Frame, TRUE,
  143.  
  144.                                 Child, HGroup,
  145.                                     Child, Label1("Check timestamps"), Child, CM_UseTimestamp = CheckMark(FALSE),
  146.                                     Child, Label1("Use UNIX names"), Child, CM_UseUNIX = CheckMark(FALSE),
  147.                                     Child, Label1("Use C++ style comments"), Child, CM_UseCpp = CheckMark(FALSE),
  148.                                 End,
  149.  
  150.                                 Child, ColGroup(2),
  151.                                     Child, Label2("Temporary directory"),
  152.                                     Child, PD_TmpDir = PopaslObject,
  153.                                             MUIA_Popstring_String, PS_TmpDir = KeyString(0,256,'t'),
  154.                                             MUIA_Popstring_Button, PopButton(MUII_PopDrawer),
  155.                                             ASLFR_TitleText  , "Please select a directory for temporary files",
  156.                                             ASLFR_DrawersOnly, TRUE,
  157.                                     End,
  158.                                     Child, Label2("Output directory"),
  159.                                     Child, PD_OutDir = PopaslObject,
  160.                                             MUIA_Popstring_String, PS_OutDir = KeyString(0,256,'o'),
  161.                                             MUIA_Popstring_Button, PopButton(MUII_PopDrawer),
  162.                                             ASLFR_TitleText  , "Please select a drawer...",
  163.                                             ASLFR_DrawersOnly, TRUE,
  164.                                     End,
  165.                                     Child, Label2("STDERR file"),
  166.                                     Child, PF_STDERR = PopaslObject,
  167.                                             MUIA_Popstring_String, PS_STDERR = KeyString(0,256,'e'),
  168.                                             MUIA_Popstring_Button, PopButton(MUII_PopFile),
  169.                                             ASLFR_TitleText, "Please select a file...",
  170.                                     End,
  171.                                 End,
  172.  
  173.                                 Child, HGroup,
  174.                                     Child, CY_Outputtype = Cycle(Outputtype),
  175.                                     Child, CY_Resident = Cycle(Resident),
  176.                                 End,
  177.  
  178.                         End,
  179.  
  180.                         // Page 2 : CPP
  181.                         Child, VGroup,
  182.                             // GroupFrameT("CPP"),
  183.                             // GroupFrame,
  184.                             MUIA_Register_Frame, TRUE,
  185.  
  186.                             Child, ColGroup(2),
  187.                                 Child, Label1("Remove default include path"),
  188.                                 Child, CM_RemDefIPath = CheckMark(FALSE),
  189.                                 Child, Label1("Undefine __STDC__, mc68000, _DCC, AMIGA"),
  190.                                 Child, CM_UnDef = CheckMark(FALSE),
  191.                                 Child, Label1("Prototype checking and optimizations"),
  192.                                 Child, CM_ProtCheckAndOpt= CheckMark(FALSE),
  193.                             End,
  194.  
  195.                             Child, HGroup,
  196.                                 Child, VGroup,
  197.                                     GroupSpacing(0),
  198.                                     GroupFrameT("Defines"),
  199.                                     MUIA_HorizWeight, 150,
  200.                                     Child, LV_Defines = ListviewObject,
  201.                                         MUIA_Listview_Input, TRUE,
  202.                                         MUIA_Listview_List,
  203.                                         ListObject,
  204.                                             InputListFrame,
  205.                                             MUIA_List_ConstructHook, MUIV_List_ConstructHook_String,
  206.                                             MUIA_List_DestructHook, MUIV_List_DestructHook_String,
  207.                                         End,
  208.                                     End,
  209.                                     Child, HGroup,
  210.                                         GroupSpacing(0),
  211.                                         Child, BT_AddDef = KeyButton("Add",'d'), MUIA_Weight, 150,
  212.                                         Child, BT_RemDef = KeyButton("Remove",'e'), MUIA_Weight, 200,
  213.                                     End,
  214.                                 End,
  215.  
  216.                                 Child, VGroup,
  217.                                     GroupSpacing(0),
  218.                                     GroupFrameT("Include Path"),
  219.                                     MUIA_HorizWeight, 50,
  220.                                     Child, LV_DefPath = ListviewObject,
  221.                                         MUIA_Listview_Input, TRUE,
  222.                                         MUIA_Listview_List,
  223.                                         ListObject,
  224.                                             InputListFrame,
  225.                                             MUIA_List_ConstructHook, MUIV_List_ConstructHook_String,
  226.                                             MUIA_List_DestructHook, MUIV_List_DestructHook_String,
  227.                                         End,
  228.                                     End,
  229.                                     Child, HGroup,
  230.                                         GroupSpacing(0),
  231.                                         Child, BT_AddIncP = KeyButton("Add",'a'),
  232.                                         Child, BT_RemIncP = KeyButton("Remove",'r'),
  233.                                         Child, BT_UpIncP  = KeyButton("Up",'u'),
  234.                                         Child, BT_DownIncP= KeyButton("Down",'d'),
  235.                                     End,
  236.                                 End,
  237.                             End,
  238.                         End,
  239.                         // Page 3 : CodeGeneration
  240.                         Child, VGroup,
  241.                                 // GroupFrameT("Codegeneration"),
  242.                                 // GroupFrame,
  243.                                 MUIA_Register_Frame, TRUE,
  244.                                 Child, HGroup,
  245.                                     Child, CY_Proc = Cycle(Proc),
  246.                                     Child, CY_CoProc = Cycle(CoProc),
  247.                                     Child, CY_Code = Cycle(Code),
  248.                                     Child, CY_Data = Cycle(Data),
  249.                                 End,
  250.                                 Child, CY_Con = Cycle(Con),
  251.  
  252.                                 Child, HGroup,
  253.                                     Child, Label1("Use registered arguments"), Child, CM_Reg = CheckMark(FALSE),
  254.                                     Child, Label1("Use inline library calls"), Child, CM_In = CheckMark(FALSE),
  255.                                     Child, Label1("Dynamic stack code"), Child, CM_Dyn = CheckMark(FALSE),
  256.                                 End,
  257.                         End,
  258.                         // Page 4 : Linker
  259.                         Child, VGroup,
  260.                                 // GroupFrameT("Linker"),
  261.                                 // GroupFrame,
  262.                                 MUIA_Register_Frame, TRUE,
  263.  
  264.                                 Child, ColGroup(4),
  265.                                         Child, Label1("Do not link default libraries"),
  266.                                         Child, CM_LinkDefLib = CheckMark(FALSE),
  267.                                         Child, Label1("Remove default library search path"),
  268.                                         Child, CM_RemDefLP = CheckMark(FALSE),
  269.                                         Child, Label1("Alternate section naming"),
  270.                                         Child, CM_AltSName = CheckMark(FALSE),
  271.                                         Child, Label1("Do not combine all code hunks"),
  272.                                         Child, CM_CombHunk = CheckMark(FALSE),
  273.                                         Child, Label1("Force all hunks into CHIP Mem"),
  274.                                         Child, CM_Chip = CheckMark(FALSE),
  275.                                         Child, Label1("Use fp library for floats"),
  276.                                         Child, CM_Ffp = CheckMark(FALSE),
  277.                                 End,
  278.  
  279.                                 Child, HGroup,
  280.                                     Child, VGroup,
  281.                                         GroupSpacing(0),
  282.                                         GroupFrameT("Link additional Libraries"),
  283.                                         MUIA_HorizWeight, 50,
  284.                                         Child, LV_AddLib = ListviewObject,
  285.                                             MUIA_Listview_Input, TRUE,
  286.                                             MUIA_Listview_List,
  287.                                             ListObject,
  288.                                                 InputListFrame,
  289.                                                 MUIA_List_ConstructHook, MUIV_List_ConstructHook_String,
  290.                                                 MUIA_List_DestructHook, MUIV_List_DestructHook_String,
  291.                                             End,
  292.                                         End,
  293.                                         Child, HGroup,
  294.                                             GroupSpacing(0),
  295.                                             Child, BT_AddLib = KeyButton("Add",'a'),
  296.                                             Child, BT_RemLib = KeyButton("Remove",'r'),
  297.                                             Child, BT_UpLib  = KeyButton("Up",'u'),
  298.                                             Child, BT_DownLib= KeyButton("Down",'d'),
  299.                                         End,
  300.                                     End,
  301.                                     Child, VGroup,
  302.                                         GroupSpacing(0),
  303.                                         GroupFrameT("Library searchpath"),
  304.                                         MUIA_HorizWeight, 100,
  305.                                         Child, LV_LibSP = ListviewObject,
  306.                                             MUIA_Listview_Input, TRUE,
  307.                                             MUIA_Listview_List,
  308.                                             ListObject,
  309.                                                 InputListFrame,
  310.                                                 MUIA_List_ConstructHook, MUIV_List_ConstructHook_String,
  311.                                                 MUIA_List_DestructHook, MUIV_List_DestructHook_String,
  312.                                             End,
  313.                                         End,
  314.                                         Child, HGroup,
  315.                                             GroupSpacing(0),
  316.                                             Child, BT_AddLibP = KeyButton("Add",'d'),
  317.                                             Child, BT_RemLibP = KeyButton("Remove",'e'),
  318.                                             Child, BT_UpLibP  = KeyButton("Up",'p'),
  319.                                             Child, BT_DownLibP= KeyButton("Down",'o'),
  320.                                         End,
  321.                                     End,
  322.                                 End,
  323.                         End,
  324.                         // Page 5 : Debug
  325.                         Child, VGroup,
  326.                                 // GroupFrameT("Debug"),
  327.                                 // GroupFrame,
  328.                                 MUIA_Register_Frame, TRUE,
  329.                                 Child, CY_Prof = Cycle(Prof),
  330.                                 Child, HGroup,
  331.                                     Child, Label1("Include symbolic debugging information in the executable"),
  332.                                     Child, CM_Sym = CheckMark(FALSE),
  333.                                 End,
  334.  
  335.                                 Child, HGroup,
  336.                                     Child, CM_Debug = CheckMark(FALSE),
  337.                                     Child, Label2("Debug Level"),
  338.                                     Child, ST_DebugLevel = String("",2), MUIA_Weight, 5,
  339.                                 End,
  340.                         End,
  341.                     End,
  342.  
  343.                     Child, HGroup, MUIA_Group_SameSize, TRUE,
  344.                             Child, BT_Save   = KeyButton("Save",'s'),
  345.                             Child, HSpace(0),
  346.                             Child, BT_Use    = KeyButton("Use",'u'),
  347.                             Child, HSpace(0),
  348.                             Child, BT_Cancel = KeyButton("Cancel",'c'),
  349.                     End,
  350.                 End,
  351.             End,
  352.         End;
  353.  
  354.             if(!app)
  355.                 fail(app,"Failed to create Application.");
  356.  
  357.         // Window
  358.         DoMethod(window,MUIM_Notify,MUIA_Window_CloseRequest,TRUE, app,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  359.         DoMethod(BT_Cancel, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_CANCEL);
  360.         DoMethod(BT_Use, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_USE);
  361.         DoMethod(BT_Save, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_SAVE);
  362.  
  363.         // Register
  364.         // DoMethod(reg, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_REGISTER);
  365.  
  366.         // Misc Methods
  367.         DoMethod(CM_UseTimestamp, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_TIMESTAMP);
  368.         DoMethod(CM_UseUNIX, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_UNIX);
  369.         DoMethod(CM_UseCpp, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_CPP);
  370.  
  371.         DoMethod(PD_TmpDir, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_TMPDIR);
  372.         DoMethod(PD_OutDir, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_OUTDIR);
  373.         DoMethod(PF_STDERR, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_STDERR);
  374.  
  375.         DoMethod(PS_TmpDir, MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_STMPDIR);
  376.         DoMethod(PS_OutDir, MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_SOUTDIR);
  377.         DoMethod(PS_STDERR, MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_SSTDERR);
  378.  
  379.         DoMethod(CY_Outputtype, MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_OUTTYPE);
  380.         DoMethod(CY_Resident, MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_RESIDENT);
  381.  
  382.         // CPP
  383.         DoMethod(CM_RemDefIPath, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_REMDEFIP);
  384.         DoMethod(CM_UnDef, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_UDEF);
  385.         DoMethod(CM_ProtCheckAndOpt, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_PROTO);
  386.  
  387.         DoMethod(LV_Defines, MUIM_Notify, MUIA_List_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_DEFLV);
  388.  
  389.         DoMethod(BT_AddDef, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_ADDDEF);
  390.         DoMethod(BT_RemDef, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_REMDEF);
  391.  
  392.         DoMethod(LV_DefPath, MUIM_Notify, MUIA_List_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_IPLV);
  393.  
  394.         DoMethod(BT_AddIncP, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_ADDIP);
  395.         DoMethod(BT_RemIncP, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_REMIP);
  396.         DoMethod(BT_UpIncP, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_UPIP);
  397.         DoMethod(BT_DownIncP, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_DOWNIP);
  398.  
  399.  
  400.         // Codegeneration
  401.         DoMethod(CY_Proc, MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_PROC);
  402.         DoMethod(CY_CoProc, MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_COPROC);
  403.         DoMethod(CY_Code, MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_CODE);
  404.         DoMethod(CY_Data, MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_DATA);
  405.         DoMethod(CY_Con, MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_CONST);
  406.  
  407.         DoMethod(CM_Reg, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_REG);
  408.         DoMethod(CM_In, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_INLINE);
  409.         DoMethod(CM_Dyn, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_DYNSTACK);
  410.  
  411.         // Linker
  412.         DoMethod(CM_LinkDefLib, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_DEFLIB);
  413.         DoMethod(CM_RemDefLP, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_DEFLIBP);
  414.         DoMethod(CM_AltSName, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_SECNAM);
  415.         DoMethod(CM_CombHunk, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_COMBHUNK);
  416.         DoMethod(CM_Chip, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_CHIP);
  417.         DoMethod(CM_Ffp, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_FFP);
  418.  
  419.         DoMethod(LV_AddLib, MUIM_Notify, MUIA_List_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_LINKLV);
  420.  
  421.         DoMethod(BT_AddLib, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_ADDLIB);
  422.         DoMethod(BT_RemLib, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_REMLIB);
  423.         DoMethod(BT_UpLib, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_UPLIB);
  424.         DoMethod(BT_DownLib, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_DOWNLIB);
  425.  
  426.         DoMethod(LV_LibSP, MUIM_Notify, MUIA_List_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_PATHLV);
  427.  
  428.         DoMethod(BT_AddLibP, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_ADDLP);
  429.         DoMethod(BT_RemLibP, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_REMLP);
  430.         DoMethod(BT_UpLibP, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_UPLP);
  431.         DoMethod(BT_DownLibP, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_DOWNLP);
  432.  
  433.         // Debug
  434.         DoMethod(CY_Prof, MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_PROF);
  435.  
  436.         DoMethod(CM_Sym, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_SYM);
  437.         DoMethod(CM_Debug, MUIM_Notify, MUIA_Pressed, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_DEBUG);
  438.  
  439.         DoMethod(ST_DebugLevel, MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_LEVEL);
  440.  
  441.  
  442.         set(window,MUIA_Window_Open,TRUE);
  443.  
  444.         while (running)
  445.         {
  446.                 switch (DoMethod(app,MUIM_Application_Input,&signals))
  447.                 {
  448.                         case MUIV_Application_ReturnID_Quit:
  449.                         case ID_CANCEL:
  450.                                 printf("Cancel\n");
  451.                                 running = FALSE;
  452.                                 break;
  453.                         case ID_USE:
  454.                                 printf("Use\n");
  455.                                 running = FALSE;
  456.                                 break;
  457.                         case ID_SAVE:
  458.                                 printf("Save\n");
  459.                                 running = FALSE;
  460.                                 break;
  461.                         case ID_REGISTER:
  462.                                 printf("Reg\n");
  463.                                 break;
  464.  
  465.                         // Misc
  466.                         case ID_TIMESTAMP:
  467.                         case ID_UNIX:
  468.                         case ID_CPP:
  469.                         case ID_TMPDIR:
  470.                         case ID_OUTDIR:
  471.                         case ID_STDERR:
  472.                         case ID_OUTTYPE:
  473.                         case ID_RESIDENT:
  474.                         case ID_STMPDIR:
  475.                         case ID_SOUTDIR:
  476.                         case ID_SSTDERR:
  477.                             break;
  478.  
  479.                         // CPP
  480.                         case ID_REMDEFIP:
  481.                         case ID_UDEF:
  482.                         case ID_PROTO:
  483.                         case ID_ADDDEF:
  484.                         case ID_REMDEF:
  485.                         case ID_ADDIP:
  486.                         case ID_REMIP:
  487.                         case ID_UPIP:
  488.                         case ID_DOWNIP:
  489.                         case ID_DEFLV:
  490.                         case ID_IPLV:
  491.                             break;
  492.  
  493.                         // Codegeneration
  494.                         case ID_PROC:
  495.                         case ID_COPROC:
  496.                         case ID_CODE:
  497.                         case ID_DATA:
  498.                         case ID_CONST:
  499.                         case ID_REG:
  500.                         case ID_INLINE:
  501.                         case ID_DYNSTACK:
  502.                             break;
  503.  
  504.                         // Linker
  505.                         case ID_DEFLIB:
  506.                         case ID_DEFLIBP:
  507.                         case ID_SECNAM:
  508.                         case ID_COMBHUNK:
  509.                         case ID_CHIP:
  510.                         case ID_FFP:
  511.                         case ID_ADDLIB:
  512.                         case ID_REMLIB:
  513.                         case ID_UPLIB:
  514.                         case ID_DOWNLIB:
  515.                         case ID_ADDLP:
  516.                         case ID_REMLP:
  517.                         case ID_UPLP:
  518.                         case ID_DOWNLP:
  519.                         case ID_LINKLV:
  520.                         case ID_PATHLV:
  521.                             break;
  522.  
  523.                         // Debug
  524.                         case ID_PROF:
  525.                         case ID_SYM:
  526.                         case ID_DEBUG:
  527.                         case ID_LEVEL:
  528.                             break;
  529.                 }
  530.                 if (signals)
  531.                 {
  532.                     Wait(signals);
  533.                 }
  534.         }
  535.  
  536.         set(window,MUIA_Window_Open,FALSE);
  537.  
  538.  
  539. /*
  540. ** Shut down...
  541. */
  542.  
  543.         fail(app,NULL);
  544.  }
  545.