home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / gui / GenCodeC2_2d.lha / GenCodeC2.2d / source / GenCodeCGUI.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-24  |  5.0 KB  |  229 lines

  1. #ifndef MAKE_ID
  2. #define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  3. #endif
  4.  
  5. /* Libraries */
  6. #include <libraries/mui.h>
  7. #include <libraries/gadtools.h> /* for Barlabel in MenuItem */
  8. #include <exec/memory.h>
  9.  
  10. /* Prototypes */
  11. #include <proto/muimaster.h>
  12. #include <clib/exec_protos.h>
  13. #include <clib/alib_protos.h>
  14.  
  15. #include "GenCodeCGUI.h"
  16.  
  17. struct ObjApp * CreateApp(void)
  18. {
  19.     struct ObjApp * Object;
  20.  
  21.     APTR    GROUP_ROOT_0, GR_Option, GR_Main, Space_1, obj_aux0, obj_aux1, Space_2;
  22.     APTR    Space_3, obj_aux2, obj_aux3, Space_4, GR_Register, GR_Buttons;
  23.  
  24.     if (!(Object = AllocVec(sizeof(struct ObjApp),MEMF_PUBLIC|MEMF_CLEAR)))
  25.         return(NULL);
  26.  
  27.     Object->STR_TX_Prg_Name = NULL;
  28.  
  29.     Object->STR_GR_Register[0] = "H-Header";
  30.     Object->STR_GR_Register[1] = "C-Header";
  31.     Object->STR_GR_Register[2] = "Main-Header";
  32.     Object->STR_GR_Register[3] = NULL;
  33.  
  34.     Object->TX_Prg_Name = TextObject,
  35.         MUIA_Background, MUII_TextBack,
  36.         MUIA_Frame, MUIV_Frame_Text,
  37.         MUIA_Text_Contents, Object->STR_TX_Prg_Name,
  38.         MUIA_Text_SetMin, TRUE,
  39.     End;
  40.  
  41.     Space_1 = HVSpace;
  42.  
  43.     Object->CH_Generate_Main_File = KeyCheckMark(TRUE, 'm');
  44.  
  45.     obj_aux1 = KeyLabel2("Generate Main File", 'm');
  46.  
  47.     obj_aux0 = GroupObject,
  48.         MUIA_Group_Columns, 2,
  49.         Child, obj_aux1,
  50.         Child, Object->CH_Generate_Main_File,
  51.     End;
  52.  
  53.     Space_2 = HVSpace;
  54.  
  55.     GR_Main = GroupObject,
  56.         MUIA_Group_Horiz, TRUE,
  57.         Child, Space_1,
  58.         Child, obj_aux0,
  59.         Child, Space_2,
  60.     End;
  61.  
  62.     Space_3 = HVSpace;
  63.  
  64.     Object->CH_Add_new_entries_in_Catalog_Description_File = KeyCheckMark(FALSE, 'm');
  65.  
  66.     obj_aux3 = KeyLabel2("Add new entries in Catalog Description File", 'm');
  67.  
  68.     obj_aux2 = GroupObject,
  69.         MUIA_Group_Columns, 2,
  70.         Child, obj_aux3,
  71.         Child, Object->CH_Add_new_entries_in_Catalog_Description_File,
  72.     End;
  73.  
  74.     Space_4 = HVSpace;
  75.  
  76.     Object->GR_Catalog = GroupObject,
  77.         MUIA_Group_Horiz, TRUE,
  78.         Child, Space_3,
  79.         Child, obj_aux2,
  80.         Child, Space_4,
  81.     End;
  82.  
  83.     GR_Option = GroupObject,
  84.         Child, GR_Main,
  85.         Child, Object->GR_Catalog,
  86.     End;
  87.  
  88.     Object->GR_H_Header = GroupObject,
  89.     End;
  90.  
  91.     Object->GR_C_Header = GroupObject,
  92.     End;
  93.  
  94.     Object->GR_Main_Header = GroupObject,
  95.     End;
  96.  
  97.     GR_Register = RegisterObject,
  98.         MUIA_Register_Titles, Object->STR_GR_Register,
  99.         MUIA_Frame, MUIV_Frame_Group,
  100.         Child, Object->GR_H_Header,
  101.         Child, Object->GR_C_Header,
  102.         Child, Object->GR_Main_Header,
  103.     End;
  104.  
  105.     Object->BT_Generate = TextObject,
  106.         ButtonFrame,
  107.         MUIA_Background, MUII_ButtonBack,
  108.         MUIA_ControlChar, 'g',
  109.         MUIA_Text_Contents, "Generate",
  110.         MUIA_Text_PreParse, "\033c",
  111.         MUIA_Text_HiChar, 'g',
  112.         MUIA_InputMode, MUIV_InputMode_RelVerify,
  113.     End;
  114.  
  115.     Object->BT_Save_Local = SimpleButton("Save _Local");
  116.  
  117.     Object->BT_Save_Global = SimpleButton("Save Gl_obal");
  118.  
  119.     GR_Buttons = GroupObject,
  120.         MUIA_Group_Horiz, TRUE,
  121.         MUIA_Group_SameWidth, TRUE,
  122.         Child, Object->BT_Generate,
  123.         Child, Object->BT_Save_Local,
  124.         Child, Object->BT_Save_Global,
  125.     End;
  126.  
  127.     GROUP_ROOT_0 = GroupObject,
  128.         Child, Object->TX_Prg_Name,
  129.         Child, GR_Option,
  130.         Child, GR_Register,
  131.         Child, GR_Buttons,
  132.     End;
  133.  
  134.     Object->WI_C_Generation = WindowObject,
  135.         MUIA_Window_Title, "GenCodeC by Billault © 1995-1996",
  136.         MUIA_Window_ID, MAKE_ID('0', 'W', 'I', 'N'),
  137.         WindowContents, GROUP_ROOT_0,
  138.     End;
  139.  
  140.     Object->App = ApplicationObject,
  141.         MUIA_Application_Author, "Billault",
  142.         MUIA_Application_Base, "C_Generation",
  143.         MUIA_Application_Title, "GenCodeC",
  144.         MUIA_Application_Version, "$VER: GenCodeC 2.2c (20.07.96)",
  145.         MUIA_Application_Copyright, "Billault",
  146.         MUIA_Application_Description, "GenCodeC for MUIBuilder",
  147.         MUIA_Application_HelpFile, "GenCodeC.guide",
  148.         SubWindow, Object->WI_C_Generation,
  149.     End;
  150.  
  151.  
  152.     if (!Object->App)
  153.     {
  154.         FreeVec(Object);
  155.         return(NULL);
  156.     }
  157.  
  158.     DoMethod(Object->WI_C_Generation,
  159.         MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
  160.         Object->App,
  161.         2,
  162.         MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit
  163.         );
  164.  
  165.     DoMethod(Object->CH_Generate_Main_File,
  166.         MUIM_Notify, MUIA_Selected, TRUE,
  167.         Object->GR_Main_Header,
  168.         3,
  169.         MUIM_Set, MUIA_Disabled, FALSE
  170.         );
  171.  
  172.     DoMethod(Object->CH_Generate_Main_File,
  173.         MUIM_Notify, MUIA_Selected, FALSE,
  174.         Object->GR_Main_Header,
  175.         3,
  176.         MUIM_Set, MUIA_Disabled, TRUE
  177.         );
  178.  
  179.     DoMethod(Object->BT_Generate,
  180.         MUIM_Notify, MUIA_Pressed, FALSE,
  181.         Object->App,
  182.         2,
  183.         MUIM_Application_ReturnID, ID_BT_GENERATE
  184.         );
  185.  
  186.     DoMethod(Object->BT_Generate,
  187.         MUIM_Notify, MUIA_Pressed, FALSE,
  188.         Object->App,
  189.         2,
  190.         MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit
  191.         );
  192.  
  193.     DoMethod(Object->BT_Save_Local,
  194.         MUIM_Notify, MUIA_Pressed, TRUE,
  195.         Object->App,
  196.         2,
  197.         MUIM_Application_ReturnID, ID_BT_SAVE_LOCAL
  198.         );
  199.  
  200.     DoMethod(Object->BT_Save_Global,
  201.         MUIM_Notify, MUIA_Pressed, TRUE,
  202.         Object->App,
  203.         2,
  204.         MUIM_Application_ReturnID, ID_BT_SAVE_GLOBAL
  205.         );
  206.  
  207.     DoMethod(Object->WI_C_Generation,
  208.         MUIM_Window_SetCycleChain, Object->CH_Generate_Main_File,
  209.         Object->GR_Catalog,
  210.         Object->CH_Add_new_entries_in_Catalog_Description_File,
  211.         Object->GR_H_Header,
  212.         Object->GR_C_Header,
  213.         Object->GR_Main_Header,
  214.         Object->BT_Generate,
  215.         Object->BT_Save_Local,
  216.         Object->BT_Save_Global,
  217.         0
  218.         );
  219.  
  220.  
  221.     return(Object);
  222. }
  223.  
  224. void DisposeApp(struct ObjApp * Object)
  225. {
  226.     MUI_DisposeObject(Object->App);
  227.     FreeVec(Object);
  228. }
  229.