home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / bazy / carcosts / source / init.c < prev    next >
C/C++ Source or Header  |  1996-11-02  |  12KB  |  333 lines

  1. #include "demo.h"
  2. #include "Daten.h" 
  3. #include <exec/memory.h>
  4.  
  5. /* Ein kleines Makro für ein Label */
  6. #define MyLabel2(label,char) TextObject, MUIA_Text_PreParse, "\33r", \
  7.  MUIA_Text_HiChar, char, \
  8.  MUIA_Text_Contents, label, \
  9.  MUIA_Weight, 0, \
  10.  MUIA_InnerLeft, 0, \
  11.  MUIA_InnerRight, 0, \
  12.  StringFrame, \
  13.  MUIA_FramePhantomHoriz, TRUE, \
  14.  End
  15. /* Makro ende */
  16.  
  17. #define MyText(cont) TextObject, TextFrame, \
  18.  MUIA_Text_Contents, cont, \
  19.  MUIA_Text_PreParse , "\33r", \
  20.  End
  21.  
  22. #define MyString(len, key) StringObject, MUIA_String_MaxLen, len, \
  23.  MUIA_ControlChar, key, \
  24.  MUIA_String_Format, MUIV_String_Format_Right, \
  25.  StringFrame, End 
  26.  
  27. #define MyInt(len, key) StringObject, MUIA_String_MaxLen, len, \
  28.  MUIA_ControlChar, key, \
  29.  MUIA_String_Accept, "1234567890", \
  30.  MUIA_String_Format, MUIV_String_Format_Right, \
  31.  StringFrame, End 
  32.  
  33. #define MyFloat(len, key) StringObject, MUIA_String_MaxLen, len, \
  34.  MUIA_ControlChar, key, \
  35.  MUIA_String_Accept, "-1234567890.", \
  36.  MUIA_String_Format, MUIV_String_Format_Right, \
  37.  StringFrame, End 
  38.  
  39.  
  40.  char *Formate[] = 
  41.   {
  42.    "FORMAT_DOS",
  43.    "FORMAT_INT",
  44.    "FORMAT_USA",
  45.    "FORMAT_CDN",
  46.    "FORMAT_LOCALE",
  47.    NULL
  48.   };
  49.  
  50.  
  51.  
  52.  
  53.  Object * App       ; /* Application object       */
  54.  Object * WI_Cost; /* Window object            */
  55.  Object * WI_Treib; /* Treibstoffdatenfenster */
  56.  Object * WI_Unter; /* Unterhaltsdatenfenster */
  57.  Object * TX_Gad1; /* Main-Window, oberster Textbereich */
  58.  Object * TX_Gad2; /* Main-Window, zweiter  Textbereich */
  59.  Object * BT_Treib; /* Treibstoffdaten eingeben */
  60.  Object * BT_Unter; /* Unterhaltsdaten eingeben */
  61.  Object * TX_Gad3; /* Unterhalt ges. */
  62.  Object * TX_Gad4; /* Unterhalt je km */
  63.  Object * TX_Gad5; /* Treibst. ges */
  64.  Object * TX_Gad6; /* Treibst. je km */
  65.  Object * TX_Gad7; /* Kosten ges */
  66.  Object * TX_Gad8; /* Kosten je km */
  67.  Object * TX_Gad9; /* Kilometer */
  68.  Object * TX_Gad10; /* Liter */
  69.  Object * TX_Gad11; /* Verbrauch */
  70.  Object * LI_Treib; /* Treibstoffliste */
  71.  Object * LV_Treib; /* Treibstofflistview */
  72.  Object * LI_Unter; /* Unterhaltsliste */
  73.  Object * LV_Unter; /* Unterhaltslistview */
  74.  Object * ST_Gad1;  /* Treib Datum */
  75.  Object * ST_Gad2;  /* Treib kmstand */
  76.  Object * ST_Gad3;  /* Treib Liter */
  77.  Object * ST_Gad4;  /* Treib Preis */
  78.  Object * BT_TR_New;
  79.  Object * BT_TR_Change;
  80.  Object * BT_TR_Delete;
  81.  Object * BT_TR_Cancel;
  82.  Object * BT_TR_Close;
  83.  Object * BT_UN_New;
  84.  Object * BT_UN_Change;
  85.  Object * BT_UN_Delete;
  86.  Object * BT_UN_Cancel;
  87.  Object * BT_UN_Close;
  88.  Object * ST_Gad5;  /* Unter Datum */
  89.  Object * ST_Gad6;  /* Unter Preis */
  90.  Object * ST_Gad7;  /* Unter Titel */
  91.  Object * ST_Gad8;  /* Unter Bemerkung */
  92.  Object * WI_Neu;
  93.  Object * NE_Gad1;
  94.  Object * NE_Gad2;
  95.  Object * NE_Gad3;
  96.  Object * NE_Gad4;
  97.  Object * NE_OK;
  98.  Object * NE_Cancel;
  99.  Object * NE_Title;
  100.  
  101.  
  102.  LONG changes;
  103.  
  104.  struct Hook Hook_conhooktreib,   Hook_deshooktreib;
  105.  struct Hook Hook_cmphooktreib,   Hook_disphooktreib;
  106.  struct Hook Hook_conhookunter,   Hook_deshookunter;
  107.  struct Hook Hook_cmphookunter,   Hook_disphookunter;
  108.  
  109.  struct NewMenu NewMenu[] =
  110.   {
  111.     {
  112.      NM_TITLE, (char *)MSG_PROJECT_MENU  , 0 ,0,0,(APTR)0        
  113.     }
  114.    ,     
  115.     {
  116.      NM_ITEM , (char *)MSG_PROJECT_NEW      ,0,0,0,(APTR)ID_MENUNEU   
  117.     }
  118.    ,
  119.     {
  120.      NM_ITEM , (char *)MSG_PROJECT_CHANGEDATE,0,0,0,(APTR)ID_MENUCHANGE   
  121.     }
  122.    ,
  123.     {
  124.      NM_ITEM , (char *)MSG_PROJECT_LOAD,0,0,0,(APTR)ID_LOAD  
  125.     }
  126.    ,
  127.     {
  128.      NM_ITEM , (char *)MSG_PROJECT_INSERT,0,0,0,(APTR)ID_INSERT
  129.     }
  130.    ,
  131.     {
  132.      NM_ITEM , (char *)MSG_PROJECT_SAVE, 0 ,0,0,(APTR)ID_SAVE  
  133.     }
  134.    ,
  135.     {
  136.      NM_ITEM , (char *)MSG_PROJECT_SAVEAS,0,0,0,(APTR)ID_SAVEAS
  137.     }
  138.    ,
  139.     {
  140.      NM_ITEM , (char *)MSG_PROJECT_PRINT  ,0,0,0,(APTR)ID_PRINT 
  141.     }
  142.    ,
  143.     {
  144.      NM_ITEM , (char *)MSG_PROJECT_ABOUT ,0,0,0,(APTR)ID_ABOUT 
  145.     }
  146.    ,
  147.     {
  148.      NM_ITEM , NM_BARLABEL, 0 ,0,0,(APTR)0        
  149.     }
  150.    ,
  151.     {
  152.      NM_ITEM , (char *)MSG_PROJECT_QUIT, 0,0,0,(APTR) ID_QUIT
  153.     }
  154.    ,
  155.     {
  156.      0,0
  157.     }
  158.   };
  159.  
  160.  
  161.  
  162.  
  163. /*************************************************************************
  164.  *************************************************************************
  165.  *************************************************************************
  166.  
  167. Function: MyInit()
  168.  Initializes MUI, opens main window.
  169.  
  170. Return: LONG
  171.  0: Error
  172.  
  173. Author: Rüdiger Dreier
  174.  
  175. History:
  176.  01.10.1993: Initial version
  177.  
  178.  *************************************************************************
  179.  *************************************************************************
  180.  *************************************************************************/
  181.  
  182.  
  183.  LONG MyInit(VOID)
  184.   {
  185.    App = 0;
  186.    
  187.    Hook_conhooktreib.h_Entry  = (unsigned long (*)())conhooktreib;
  188.    Hook_deshooktreib.h_Entry  = (unsigned long (*)())deshooktreib;
  189.    Hook_cmphooktreib.h_Entry  = (unsigned long (*)())cmphooktreib;
  190.    Hook_disphooktreib.h_Entry = (unsigned long (*)())disphooktreib;
  191.    
  192.    Hook_conhookunter.h_Entry  = (unsigned long (*)())conhookunter;
  193.    Hook_deshookunter.h_Entry  = (unsigned long (*)())deshookunter;
  194.    Hook_cmphookunter.h_Entry  = (unsigned long (*)())cmphookunter;
  195.    Hook_disphookunter.h_Entry = (unsigned long (*)())disphookunter;
  196.    
  197.    
  198. #include "Init.h"   
  199.    
  200.    
  201.    if (App)
  202.     {
  203.      DoMethod(WI_Cost,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,
  204.               App,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  205.      DoMethod(WI_Treib,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,
  206.               App,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  207.      DoMethod(WI_Unter,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,
  208.               App,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  209.      DoMethod(WI_Neu,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,
  210.               App,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  211.      
  212.      DoMethod(BT_Treib, MUIM_Notify, MUIA_Pressed, FALSE, 
  213.               App, 2, MUIM_Application_ReturnID, ID_TREIB);
  214.      DoMethod(BT_Unter, MUIM_Notify, MUIA_Pressed, FALSE, 
  215.               App, 2, MUIM_Application_ReturnID, ID_UNTER);
  216.      
  217. /* Fenster für neue Datei */
  218.      DoMethod(NE_OK, MUIM_Notify, MUIA_Pressed, FALSE, 
  219.               App, 2, MUIM_Application_ReturnID, ID_NE_OK);
  220.      DoMethod(NE_Cancel, MUIM_Notify, MUIA_Pressed, FALSE, 
  221.               App, 2, MUIM_Application_ReturnID, ID_NE_CANCEL);
  222.      DoMethod(NE_Gad3, MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime, 
  223.               App, 2, MUIM_Application_ReturnID, ID_NE_KM);
  224.      DoMethod(NE_Gad1,MUIM_Notify,MUIA_String_Acknowledge,MUIV_EveryTime,
  225.               WI_Neu,3,MUIM_Set,MUIA_Window_ActiveObject,NE_Gad2);
  226.      DoMethod(NE_Gad2,MUIM_Notify,MUIA_String_Acknowledge,MUIV_EveryTime,
  227.               WI_Neu,3,MUIM_Set,MUIA_Window_ActiveObject,NE_Gad3);
  228.      
  229.      
  230. /* Buttons im Treibstoffenster */
  231.      DoMethod(BT_TR_New, MUIM_Notify, MUIA_Pressed, FALSE, 
  232.               App, 2, MUIM_Application_ReturnID, ID_TR_NEW);
  233.      DoMethod(BT_TR_Change, MUIM_Notify, MUIA_Pressed, FALSE, 
  234.               App, 2, MUIM_Application_ReturnID, ID_TR_CHANGE);
  235.      DoMethod(BT_TR_Delete, MUIM_Notify, MUIA_Pressed, FALSE, 
  236.               App, 2, MUIM_Application_ReturnID, ID_TR_DELETE);
  237.      DoMethod(BT_TR_Cancel, MUIM_Notify, MUIA_Pressed, FALSE, 
  238.               App, 2, MUIM_Application_ReturnID, ID_TR_CANCEL);
  239.      DoMethod(BT_TR_Close, MUIM_Notify, MUIA_Pressed, FALSE, 
  240.               App, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
  241.      DoMethod(ST_Gad1, MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime, 
  242.               App, 2, MUIM_Application_ReturnID, ID_TR_DATE);
  243.      DoMethod(ST_Gad4, MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime, 
  244.               App, 2, MUIM_Application_ReturnID, ID_TR_PRICE);
  245.      
  246.      
  247.      
  248. /* Stringgadgets im Treibstoffenster verbinden */
  249. /* Außer Datum und Preis                       */
  250.      DoMethod(ST_Gad2,MUIM_Notify,MUIA_String_Acknowledge,MUIV_EveryTime,
  251.               WI_Treib,3,MUIM_Set,MUIA_Window_ActiveObject,ST_Gad3);
  252.      DoMethod(ST_Gad3,MUIM_Notify,MUIA_String_Acknowledge,MUIV_EveryTime,
  253.               WI_Treib,3,MUIM_Set,MUIA_Window_ActiveObject,ST_Gad4);
  254.      
  255.      
  256.      
  257.      
  258.      
  259.      
  260.      DoMethod(BT_UN_New, MUIM_Notify, MUIA_Pressed, FALSE, 
  261.               App, 2, MUIM_Application_ReturnID, ID_UN_NEW);
  262.      DoMethod(BT_UN_Change, MUIM_Notify, MUIA_Pressed, FALSE, 
  263.               App, 2, MUIM_Application_ReturnID, ID_UN_CHANGE);
  264.      DoMethod(BT_UN_Delete, MUIM_Notify, MUIA_Pressed, FALSE, 
  265.               App, 2, MUIM_Application_ReturnID, ID_UN_DELETE);
  266.      DoMethod(BT_UN_Cancel, MUIM_Notify, MUIA_Pressed, FALSE, 
  267.               App, 2, MUIM_Application_ReturnID, ID_UN_CANCEL);
  268.      DoMethod(BT_UN_Close, MUIM_Notify, MUIA_Pressed, FALSE, 
  269.               App, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
  270.      DoMethod(ST_Gad5, MUIM_Notify, MUIA_String_Acknowledge,MUIV_EveryTime,
  271.               App, 2, MUIM_Application_ReturnID, ID_UN_DATE);
  272.      DoMethod(ST_Gad8, MUIM_Notify, MUIA_String_Acknowledge,MUIV_EveryTime,
  273.               App, 2, MUIM_Application_ReturnID, ID_UN_REMARK);
  274.               
  275.      /* 13.1.96 Probleme, evt. mit MUI3.1. Das automatische Aktivieren
  276.                 des nächsten Gadgets funktioniert bei den Unterhalts-
  277.                 sachen nicht ??? Daher von Hand */
  278.      DoMethod(ST_Gad6, MUIM_Notify, MUIA_String_Acknowledge,MUIV_EveryTime,
  279.               App, 2, MUIM_Application_ReturnID, ID_UN_PRICE);
  280.      DoMethod(ST_Gad7, MUIM_Notify, MUIA_String_Acknowledge,MUIV_EveryTime,
  281.               App, 2, MUIM_Application_ReturnID, ID_UN_TITLE);
  282.      
  283.      
  284.      DoMethod(ST_Gad6,MUIM_Notify,MUIA_String_Acknowledge,MUIV_EveryTime,
  285.               WI_Treib,3,MUIM_Set,MUIA_Window_ActiveObject,ST_Gad7);
  286.      DoMethod(ST_Gad7,MUIM_Notify,MUIA_String_Acknowledge,MUIV_EveryTime,
  287.               WI_Treib,3,MUIM_Set,MUIA_Window_ActiveObject,ST_Gad8);
  288.      
  289.      
  290.      
  291.      
  292.      DoMethod(WI_Cost,MUIM_Window_SetCycleChain,
  293.               BT_Treib, BT_Unter, NULL);
  294.      DoMethod(WI_Treib,MUIM_Window_SetCycleChain,
  295.               LV_Treib, ST_Gad1, ST_Gad2, ST_Gad3, ST_Gad4,
  296.               BT_TR_New, BT_TR_Change, BT_TR_Delete, BT_TR_Close, NULL);
  297.      DoMethod(WI_Unter,MUIM_Window_SetCycleChain,
  298.               LV_Unter, ST_Gad5, ST_Gad6, ST_Gad7, ST_Gad8,
  299.               BT_UN_New, BT_UN_Change, BT_UN_Delete, BT_UN_Close, NULL);
  300.      DoMethod(WI_Neu,MUIM_Window_SetCycleChain,
  301.               NE_Gad1, NE_Gad2, NE_Gad3, NE_Gad4, NE_OK, NE_Cancel, NULL);
  302.    DoMethod(LV_Treib, MUIM_Notify, MUIA_Listview_DoubleClick,
  303.    MUIV_EveryTime, App, 2, MUIM_Application_ReturnID, ID_TR_CHANGE);
  304.    DoMethod(LV_Unter, MUIM_Notify, MUIA_Listview_DoubleClick,
  305.    MUIV_EveryTime, App, 2, MUIM_Application_ReturnID, ID_UN_CHANGE);
  306.  
  307.  
  308.    DoMethod(LI_Treib, MUIM_Notify, MUIA_List_Active,
  309.    MUIV_EveryTime, App, 2, MUIM_Application_ReturnID, ID_TR_ACTIVE);
  310.  
  311.    DoMethod(LV_Treib, MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime, 
  312.             App, 2, MUIM_Application_ReturnID, ID_TR_CHANGE);
  313.    DoMethod(LV_Unter, MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime, 
  314.             App, 2, MUIM_Application_ReturnID, ID_UN_CHANGE);
  315.         
  316.      
  317.      set(WI_Cost,MUIA_Window_Open,TRUE);
  318.       {
  319.        LONG test=0;
  320.        get(WI_Cost,MUIA_Window_Open,&test);
  321.        if(!test)
  322.         {
  323.          ShowRequest2(0,TEXT(MSG_ERROR),
  324.                       TEXT(MSG_ERROR_WINDOWOPEN),
  325.                       TEXT(MSG_OK_TEXT));
  326.         }
  327.       }
  328.      
  329.      if(DiskObj) set(App, MUIA_Application_DiskObject, DiskObj);
  330.     }
  331.    return((LONG)App);
  332.   }
  333.