home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #3
/
amigamamagazinepolishissue1998.iso
/
bazy
/
carcosts
/
source
/
loop.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-11-02
|
35KB
|
1,255 lines
#include "demo.h"
#include "Daten.h"
#include <exec/memory.h>
BOOL datelistopen = FALSE;
/*************************************************************************
*************************************************************************
*************************************************************************
Function: DisableTreibGads()
Disables the most buttons of the fuel window, enables cancel button.
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID DisableTreibGads(VOID)
{
set(BT_TR_New , MUIA_Disabled, TRUE);
set(BT_TR_Change, MUIA_Disabled, TRUE);
set(BT_TR_Delete, MUIA_Disabled, TRUE);
set(BT_TR_Cancel, MUIA_Disabled, FALSE);
set(BT_TR_Close , MUIA_Disabled, TRUE);
set(LV_Treib , MUIA_Disabled, TRUE);
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: EnableTreibGads()
Enables the most buttons of fuel window, disables cancel button
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID EnableTreibGads(VOID)
{
set(BT_TR_New , MUIA_Disabled, FALSE);
set(BT_TR_Change, MUIA_Disabled, FALSE);
set(BT_TR_Delete, MUIA_Disabled, FALSE);
set(BT_TR_Cancel, MUIA_Disabled, TRUE);
set(BT_TR_Close , MUIA_Disabled, FALSE);
set(LV_Treib , MUIA_Disabled, FALSE);
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: ClearTreib()
Clears the stringgadget of fuel window
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID ClearTreib(VOID)
{
set(ST_Gad1, MUIA_String_Contents, "");
set(ST_Gad2, MUIA_String_Contents, "");
set(ST_Gad3, MUIA_String_Contents, "");
set(ST_Gad4, MUIA_String_Contents, "");
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: EnableTreib()
Enables the stringgadgets in fuel window
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID EnableTreib(VOID)
{
set(ST_Gad1, MUIA_Disabled, FALSE);
set(ST_Gad2, MUIA_Disabled, FALSE);
set(ST_Gad3, MUIA_Disabled, FALSE);
set(ST_Gad4, MUIA_Disabled, FALSE);
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: DisableTreib()
Disables the stringgadgets in fuel window.
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID DisableTreib(VOID)
{
set(ST_Gad1, MUIA_Disabled, TRUE);
set(ST_Gad2, MUIA_Disabled, TRUE);
set(ST_Gad3, MUIA_Disabled, TRUE);
set(ST_Gad4, MUIA_Disabled, TRUE);
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: DisableUnterGads()
Disables most of the buttons in support window, enables the cancel button.
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID DisableUnterGads(VOID)
{
set(BT_UN_New , MUIA_Disabled, TRUE);
set(BT_UN_Change, MUIA_Disabled, TRUE);
set(BT_UN_Delete, MUIA_Disabled, TRUE);
set(BT_UN_Cancel, MUIA_Disabled, FALSE);
set(BT_UN_Close , MUIA_Disabled, TRUE);
set(LV_Unter , MUIA_Disabled, TRUE);
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: EnableUnterGads()
Enables most of the buttons in support window, disables the cancel button
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID EnableUnterGads(VOID)
{
set(BT_UN_New , MUIA_Disabled, FALSE);
set(BT_UN_Change, MUIA_Disabled, FALSE);
set(BT_UN_Delete, MUIA_Disabled, FALSE);
set(BT_UN_Cancel, MUIA_Disabled, TRUE);
set(BT_UN_Close , MUIA_Disabled, FALSE);
set(LV_Unter , MUIA_Disabled, FALSE);
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: ClearDisableUnter()
Clears the stringgadgets in support window, calls DisableUnter()
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID ClearDisableUnter(VOID)
{
DisableUnter();
set(ST_Gad5, MUIA_String_Contents, "");
set(ST_Gad6, MUIA_String_Contents, "");
set(ST_Gad7, MUIA_String_Contents, "");
set(ST_Gad8, MUIA_String_Contents, "");
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: EnableUnter()
Enables the stringgadget in support window.
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID EnableUnter(VOID)
{
set(ST_Gad5, MUIA_Disabled, FALSE);
set(ST_Gad6, MUIA_Disabled, FALSE);
set(ST_Gad7, MUIA_Disabled, FALSE);
set(ST_Gad8, MUIA_Disabled, FALSE);
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: DisableUnter()
Disables the stringgadget in support window.
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID DisableUnter(VOID)
{
set(ST_Gad5, MUIA_Disabled, TRUE);
set(ST_Gad6, MUIA_Disabled, TRUE);
set(ST_Gad7, MUIA_Disabled, TRUE);
set(ST_Gad8, MUIA_Disabled, TRUE);
}
/* Flag, gibt an, ob Änderungsmodus eingeschaltet wurde */
BOOL changetreib, changeunter;
LONG changeactivetreib, changeactiveunter;
/*************************************************************************
*************************************************************************
*************************************************************************
Function: Loop()
Main loop of the program.
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID Loop(VOID)
{
BOOL running = TRUE;
ULONG signal;
while (running)
{
switch (DoMethod(App,MUIM_Application_Input,&signal))
{
case MUIV_Application_ReturnID_Quit:
{
if(changes)
{
running = !MUI_Request(App, WI_Cost, 0, NULL,
TEXT(MSG_QUIT_CONT_REQ),
TEXT(MSG_NOTSAVED_QUIT_REQ),
TAG_END);
}
else
{
running = FALSE;
}
break;
}
case ID_LOAD:
{
if(changes)
{
if(!MUI_Request(App, WI_Cost, 0, NULL,
TEXT(MSG_LOAD_CANCEL),
TEXT(MSG_NOTSAVED_LOAD_REQ),
TAG_END))
{
break;
}
}
if(GetFileName5(Rq,
TEXT(MSG_LOADFILE_REQ),
FileName,
TEXT(MSG_PATTERN_REQ),
LOADFILE,
150))
{
RemoveAll();
InsertAll(FileName);
changes = FALSE;
}
break;
}
case ID_INSERT:
{
if(GetFileName5(Rq,
TEXT(MSG_INSERTFILE_REQ),
FileName,
TEXT(MSG_PATTERN_REQ),
LOADFILE,
150))
{
InsertAll(FileName);
changes = TRUE;
}
break;
}
case ID_SAVEAS:
{
if(GetFileName5(Rq,
TEXT(MSG_SAVEFILE_REQ),
FileName,
TEXT(MSG_PATTERN_REQ),
SAVEFILE,
150))
{
SaveAll(FileName);
WriteMyIcon(FileName, TEXT(MSG_DEFAULTTOOL_ICON));
changes = FALSE;
}
break;
}
case ID_SAVE:
{
if(FileName[0])
{
SaveAll(FileName);
changes = FALSE;
}
else
{
if(GetFileName5(Rq,
TEXT(MSG_SAVEFILE_REQ),
FileName,
TEXT(MSG_PATTERN_REQ),
SAVEFILE,
150))
{
SaveAll(FileName);
WriteMyIcon(FileName, TEXT(MSG_DEFAULTTOOL_ICON));
changes = FALSE;
}
}
break;
}
case ID_PRINT:
{
LONG result;
result = MUI_Request(App, WI_Cost, 0, NULL,
TEXT(MSG_PRINTTO_BUTTONS),
TEXT(MSG_PRINTTO_QUESTION),
0,
TAG_END);
if(result)
{
if(result == 1)
{
/* Ausgabe auf den Drucker */
strcpy(PrtName, "prt:");
PrintAll(PrtName);
}
else
{
if(GetFileName5(Rq,
TEXT(MSG_SAVEFILE_REQ),
PrtName,
TEXT(MSG_PATTERN_REQ),
SAVEFILE,
150))
{
PrintAll(PrtName);
}
}
}
break;
}
case ID_MENUCHANGE:
{
LONG i,max;
struct NodeUnter *nu;
LoopNeu(TRUE);
get(LI_Unter, MUIA_List_Entries, &max);
for(i=0;i<max;i++)
{
DoMethod(LI_Unter, MUIM_List_GetEntry, i, &nu);
ConvertToString(nu->Days, nu->Datum);
}
//ReCalcTreib();
break;
}
case ID_MENUNEU:
{
if(changes)
{
if(!MUI_Request(App, WI_Cost, 0, NULL,
TEXT(MSG_CLEAR_CONT_REQ),
TEXT(MSG_NOTSAVED_NEW_REQ),
TAG_END))
{
break;
}
}
LoopNeu(FALSE);
//ReCalcTreib();
break;
}
case ID_ABOUT:
{
MUI_Request(App, WI_Cost, 0, NULL,
TEXT(MSG_ABOUT_OK_REQ),
eC ePW "%s\n\n"
ePB "Version "VERSION " " DATE "\n"
"Copyright 1993/94/95/96 by Rüdiger Dreier.\n\n"
"Rüdiger Dreier\nGustav-Winkler-Str. 40\n"
"D-33699 Bielefeld, Germany\n\n"
"FAX: +49 521 200691\n\n"
"EMail: ruediger.dreier@T-Online.DE\n"
"\nThis is a MUI-Application.\n"
"MUI is copyrighted by Stefan Stuntz.",
TEXT(MSG_PROGNAME),
TAG_END);
break;
}
case ID_TREIB:
{
/* Treibstoffenster öffnen */
if(Start_Day)
{
TreibLoop();
}
else
{
LoopNeu(FALSE);
}
break;
}
case ID_UNTER:
{
/* Unterhaltsfenster öffnen */
if(Start_Day)
{
UnterLoop();
}
else
{
LoopNeu(FALSE);
}
break;
}
}
if (running && signal) Wait(signal);
}
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: TreibLoop()
Main loop for fuel list.
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID TreibLoop(VOID)
{
BOOL running = TRUE;
ULONG signal;
char *string;
LONG days;
char datum[30];
struct NodeTreib nt, *n=&nt;
LONG km, day;
LONG id;
nt.Verbrauch = 0.;
nt.deltakm = 0.;
if(!WI_Treib) return; /* Fehler beim Initialsieren */
set(WI_Treib, MUIA_Window_Open, TRUE);
set(WI_Cost , MUIA_Window_Sleep, TRUE);
ClearTreib();
DisableTreib();
EnableTreibGads();
set(BT_TR_Cancel, MUIA_Disabled, TRUE);
set(WI_Treib, MUIA_Window_ActiveObject, LV_Treib);
while (running)
{
id=DoMethod(App,MUIM_Application_Input,&signal);
switch (id)
{
case MUIV_Application_ReturnID_Quit:
{
if(changetreib)
{
//ReCalcTreib();
changetreib = FALSE;
set(LV_Treib, MUIA_Disabled, FALSE);
}
running = FALSE;
break;
}
case ID_TR_NEW:
{
/* Neuen Eintrag anlegen */
ClearTreib();
EnableTreib();
DisableTreibGads();
/* Falls CANCEL angewählt wird, darf kein Eintrag eingefügt */
/* werden. */
changetreib = FALSE;
set(WI_Treib, MUIA_Window_ActiveObject, ST_Gad1);
break;
}
case ID_TR_DATE:
{
/* Datum wurde eingegeben, auf Sinn überprüfen */
LONG days;
char datum[30];
get(ST_Gad1, MUIA_String_Contents, &string);
strcpy(datum, string);
days = ConvertToDays(datum);
if(days != -1)
{
set(ST_Gad1, MUIA_String_Contents, &datum);
set(WI_Treib, MUIA_Window_ActiveObject, ST_Gad2);
}
else
{
DisplayBeep(0);
set(WI_Treib, MUIA_Window_ActiveObject, ST_Gad1);
}
break;
}
case ID_TR_PRICE:
{
get(ST_Gad1, MUIA_String_Contents, &string);
strcpy(datum, string);
days = ConvertToDays(datum);
if(days != -1)
{
set(LI_Treib, MUIA_List_Quiet, TRUE);
/* Falls im Modus CHANGE, erst alten Eintrag löschen... */
if(changetreib)
{
DoMethod(LI_Treib, MUIM_List_Remove, changeactivetreib);
}
/* Erst testen, ob Eintrag einmalig ist */
//if(CheckTreibList(days))
{
/* Alles OK, Eintrag anfertigen */
strcpy(nt.Datum, datum);
nt.Days = days;
get(ST_Gad2, MUIA_String_Integer, &km);
get(ST_Gad2, MUIA_String_Contents, &string);
//printf("2:Kilometer >%s< %ld\n",string,km);
/* Aus mir unbekannten Gründen wird oben immer */
/* eine 0 zurückgegeben... */
StrToLong(string,&km);
nt.kmStand = km;
//printf("3:Kilometer %ld\n",km);
nt.Liter = nt.Preis = 0;
get(ST_Gad3, MUIA_String_Contents, &string);
sscanf(string,"%lf",&nt.Liter);
//printf(">%s<, %lx %lf\n",string,string,nt.Liter);
get(ST_Gad4, MUIA_String_Contents, &string);
sscanf(string,"%lf",&nt.Preis);
//printf(">%s< %lx %lf\n",string,string,nt.Preis);
FillTreib(&nt);
//printf(">%s< >%s< >%s<\n",nt.Datum,nt.Literstring,nt.Preisstring);
/* In Liste einfügen */
DoMethod(LI_Treib, MUIM_List_Insert,
&n, 1, MUIV_List_Insert_Sorted);
if(day=ReCalcTreib())
{
char datum[30];
ConvertToString(day, datum);
MUI_Request(App, WI_Treib, 0, NULL,
TEXT(MSG_ABOUT_OK_REQ),
TEXT(MSG_ERROR_IN_FUELLIST),
datum,
TAG_END);
}
ClearTreib();
DisableTreib();
EnableTreibGads();
changes = TRUE;
}
#ifdef OLDVERSION
else
{
DisplayBeep(0);
MUI_Request(App, WI_Treib, 0, NULL,
TEXT(MSG_ABOUT_OK_REQ),
TEXT(MSG_DOUBLE_DATE),
TAG_END);
set(WI_Treib, MUIA_Window_ActiveObject, ST_Gad1);
}
#endif
/* Letzten Eintrag = aktueller Eintrag */
//get(LI_Treib,MUIA_List_Entries, &max);
set(LI_Treib,MUIA_List_Quiet , FALSE);
if(changetreib)
{
set(LI_Treib,MUIA_List_Active , changeactivetreib);
}
else
{
set(LI_Treib,MUIA_List_Active , MUIV_List_Active_Bottom);
}
changetreib = FALSE;
set(WI_Treib, MUIA_Window_ActiveObject, LV_Treib);
}
else
{
DisplayBeep(0);
set(WI_Treib, MUIA_Window_ActiveObject, ST_Gad1);
}
break;
}
case ID_TR_CANCEL:
{
EnableTreibGads();
#ifdef tasdtSADF
if(changetreib)
{
/* Falls im Änderungsmodus, den alten */
/* Eintrag wieder einfügen */
set(LI_Treib, MUIA_List_Quiet, TRUE);
DoMethod(LI_Treib, MUIM_List_Insert,
&n, 1, MUIV_List_Insert_Sorted);
if(ReCalcTreib())
{
set(LI_Treib, MUIA_List_Quiet, FALSE);
MUI_Request(App, WI_Treib, 0, NULL,
TEXT(MSG_ABOUT_OK_REQ),
TEXT(MSG_ERROR_IN_FUELLIST),
TAG_END);
}
else
{
set(LI_Treib, MUIA_List_Quiet, FALSE);
}
changetreib = FALSE;
}
#endif
ClearTreib();
DisableTreib();
set(WI_Treib, MUIA_Window_ActiveObject, LV_Treib);
break;
}
case ID_TR_CHANGE:
{
LONG active;
struct NodeTreib *nt;
char buffer[30];
get(LI_Treib, MUIA_List_Active, &active);
if(active >= 0)
{
DisableTreibGads();
DoMethod(LI_Treib, MUIM_List_GetEntry, active, &nt);
//sprintf(buffer,"%ld",nt->kmStand);
set(ST_Gad1, MUIA_String_Contents, &nt->Datum);
set(ST_Gad2, MUIA_String_Integer , nt->kmStand);
sprintf(buffer,FORMAT_LITER2,nt->Liter);
set(ST_Gad3, MUIA_String_Contents, &buffer);
sprintf(buffer,FORMAT_PREIS2,nt->Preis);
set(ST_Gad4, MUIA_String_Contents, &buffer);
//set(LI_Treib, MUIA_List_Quiet, TRUE);
//DoMethod(LI_Treib, MUIM_List_Remove, active);
changetreib = TRUE;
changeactivetreib = active;
//printf("KM %ld\n",nt->kmStand);
EnableTreib();
set(WI_Treib, MUIA_Window_ActiveObject, ST_Gad1);
//ReCalcTreib();
//set(LI_Treib, MUIA_List_Quiet, FALSE);
changes = TRUE;
}
else
{
DisplayBeep(0);
}
break;
}
case ID_TR_ACTIVE:
{
LONG active;
char buffer[30];
struct NodeTreib *nt;
get(LI_Treib, MUIA_List_Active, &active);
if(active >= 0 && !changetreib)
{
DoMethod(LI_Treib, MUIM_List_GetEntry, active, &nt);
set(ST_Gad1, MUIA_String_Contents, &nt->Datum);
set(ST_Gad2, MUIA_String_Integer , nt->kmStand);
sprintf(buffer,FORMAT_LITER2,nt->Liter);
set(ST_Gad3, MUIA_String_Contents, &buffer);
sprintf(buffer,FORMAT_PREIS2,nt->Preis);
set(ST_Gad4, MUIA_String_Contents, &buffer);
}
break;
}
case ID_TR_DELETE:
{
LONG active;
get(LI_Treib, MUIA_List_Active, &active);
if(active >= 0)
{
set(LI_Treib, MUIA_List_Quiet, TRUE);
DoMethod(LI_Treib, MUIM_List_Remove, active);
if(ReCalcTreib())
{
MUI_Request(App, WI_Treib, 0, NULL,
TEXT(MSG_ABOUT_OK_REQ),
TEXT(MSG_ERROR_IN_FUELLIST),
TAG_END);
}
changes = TRUE;
set(LI_Treib, MUIA_List_Quiet, FALSE);
set(WI_Treib, MUIA_Window_ActiveObject, LV_Treib);
}
else
{
DisplayBeep(0);
}
break;
}
}
if(running && signal) Wait(signal);
}
/* Und Fenster wieder schließen */
set(WI_Cost , MUIA_Window_Sleep, FALSE);
set(WI_Treib, MUIA_Window_Open, FALSE);
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: UnterLoop()
Main loop for support list.
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID UnterLoop(VOID)
{
BOOL running = TRUE;
ULONG signal;
char *string;
char buffer[MAXTEXTSTRING+1];
if(!WI_Unter) return; /* Fehler beim Initialsieren */
set(WI_Unter, MUIA_Window_Open, TRUE);
set(WI_Cost , MUIA_Window_Sleep, TRUE);
set(BT_UN_Cancel, MUIA_Disabled, TRUE);
ClearDisableUnter();
EnableUnterGads();
set(WI_Unter, MUIA_Window_ActiveObject, LV_Unter);
while (running)
{
switch (DoMethod(App,MUIM_Application_Input,&signal))
{
case MUIV_Application_ReturnID_Quit:
{
if(changeunter)
{
//ReCalcTreib();
changeunter = FALSE;
set(LV_Unter, MUIA_Disabled, FALSE);
}
running = FALSE;
break;
}
case ID_UN_NEW:
{
/* Neuen Eintrag anlegen */
EnableUnter();
DisableUnterGads();
set(WI_Unter, MUIA_Window_ActiveObject, ST_Gad5);
changeunter = FALSE;
break;
}
case ID_UN_DATE:
{
/* Datum wurde eingegeben, auf Sinn überprüfen */
LONG days;
char datum[30];
get(ST_Gad5, MUIA_String_Contents, &string);
strcpy(datum, string);
days = ConvertToDays(datum);
if(days != -1)
{
set(ST_Gad5, MUIA_String_Contents, &datum);
set(WI_Unter, MUIA_Window_ActiveObject, ST_Gad6);
}
else
{
DisplayBeep(0);
set(WI_Unter, MUIA_Window_ActiveObject, ST_Gad5);
}
break;
}
case ID_UN_PRICE:
{
set(WI_Unter, MUIA_Window_ActiveObject, ST_Gad7);
break;
}
case ID_UN_TITLE:
{
set(WI_Unter, MUIA_Window_ActiveObject, ST_Gad8);
break;
}
case ID_UN_REMARK:
{
LONG days;
char datum[30];
struct NodeUnter nt, *n=&nt;
get(ST_Gad5, MUIA_String_Contents, &string);
strcpy(datum, string);
days = ConvertToDays(datum);
if(days != -1)
{
set(LI_Unter, MUIA_List_Quiet, TRUE);
/* Falls im Modus CHANGE, erst alten Eintrag löschen... */
if(changeunter)
{
DoMethod(LI_Unter, MUIM_List_Remove, changeactiveunter);
}
/* Alles OK, Eintrag anfertigen */
strcpy(nt.Datum, datum);
nt.Days = days;
get(ST_Gad6, MUIA_String_Contents, &string);
sscanf(string,"%lf",&nt.Preis);
get(ST_Gad7, MUIA_String_Contents, &string);
sprintf(nt.Titelstring, FORMAT_TITEL, string);
strcpy(buffer, nt.Titelstring);
buffer[MAX_TITEL] = 0;
strcpy(nt.DispTitel, buffer);
get(ST_Gad8, MUIA_String_Contents, &string);
sprintf(nt.Bemerkungstring, FORMAT_BEMERKUNG, string);
strcpy(buffer , nt.Bemerkungstring);
buffer[MAX_REM] = 0;
strcpy(nt.DispRem, buffer);
FillUnter(&nt);
/* In Liste einfügen */
DoMethod(LI_Unter, MUIM_List_Insert,
&n, 1, MUIV_List_Insert_Sorted);
ClearDisableUnter();
EnableUnterGads();
changes = TRUE;
ReCalcTreib();
//get(LI_Unter,MUIA_List_Entries, &max);
set(LI_Unter, MUIA_List_Quiet, FALSE);
if(changeunter)
{
set(LI_Unter, MUIA_List_Active, changeactiveunter);
}
else
{
set(LI_Unter, MUIA_List_Active, MUIV_List_Active_Bottom);
}
changeunter = FALSE;
set(WI_Unter, MUIA_Window_ActiveObject, LV_Unter);
}
else
{
DisplayBeep(0);
set(WI_Unter, MUIA_Window_ActiveObject, ST_Gad5);
}
break;
}
case ID_UN_CHANGE:
{
LONG active;
struct NodeUnter *nt;
char buffer[30];
get(LI_Unter, MUIA_List_Active, &active);
if(active >= 0)
{
LONG j=0,k=0;
DoMethod(LI_Unter, MUIM_List_GetEntry, active, &nt);
changeunter = TRUE;
changeactiveunter = active;
while(nt->Titelstring[j] ==' ') j++;
while(nt->Bemerkungstring[k]==' ') k++;
set(ST_Gad5, MUIA_String_Contents, &nt->Datum);
sprintf(buffer, FORMAT_PREIS2, nt->Preis);
set(ST_Gad6, MUIA_String_Contents, &buffer);
set(ST_Gad7, MUIA_String_Contents, &nt->Titelstring[j]);
set(ST_Gad8, MUIA_String_Contents, &nt->Bemerkungstring[k]);
//DoMethod(LI_Unter, MUIM_List_Remove, active);
EnableUnter();
set(ST_Gad5, MUIA_Disabled, FALSE);
set(ST_Gad6, MUIA_Disabled, FALSE);
set(ST_Gad7, MUIA_Disabled, FALSE);
set(ST_Gad8, MUIA_Disabled, FALSE);
set(WI_Unter, MUIA_Window_ActiveObject, ST_Gad5);
//ReCalcTreib();
changes = TRUE;
DisableUnterGads();
}
else
{
DisplayBeep(0);
}
break;
}
case ID_UN_DELETE:
{
LONG active;
get(LI_Unter, MUIA_List_Active, &active);
if(active >= 0)
{
set(LI_Unter, MUIA_List_Quiet, TRUE);
DoMethod(LI_Unter, MUIM_List_Remove, active);
ReCalcTreib();
changes = TRUE;
set(LI_Unter, MUIA_List_Quiet, FALSE);
set(WI_Unter, MUIA_Window_ActiveObject, LV_Unter);
}
else
{
DisplayBeep(0);
}
break;
}
case ID_UN_CANCEL:
{
EnableUnterGads();
if(changeunter)
{
changeunter = FALSE;
}
ClearDisableUnter();
set(WI_Unter, MUIA_Window_ActiveObject, LV_Unter);
break;
}
}
if(running && signal) Wait(signal);
}
/* Und Fenster wieder schließen */
set(WI_Cost , MUIA_Window_Sleep, FALSE);
set(WI_Unter, MUIA_Window_Open, FALSE);
}
/*************************************************************************
*************************************************************************
*************************************************************************
Function: LoopNeu()
Main loop for New-window
Return: VOID
Author: Rüdiger Dreier
History:
01.10.1993: Initial version
*************************************************************************
*************************************************************************
*************************************************************************/
VOID LoopNeu(LONG flag)
{
BOOL running = TRUE;
BOOL new = TRUE;
ULONG signal;
LONG days;
LONG oldformat = Start_Format;
char datum[30];
char *string;
if(flag)
{
set(NE_Title,MUIA_Text_Contents , TEXT(MSG_TITLE_CHANGE));
}
else
{
set(NE_Title,MUIA_Text_Contents , TEXT(MSG_TITLE_NEW));
}
if(!WI_Neu) return; /* Fehler beim Initialsieren */
set(WI_Neu, MUIA_Window_Open, TRUE);
set(WI_Cost , MUIA_Window_Sleep, TRUE);
set(WI_Neu, MUIA_Window_ActiveObject, NE_Gad1);
if(flag)
{
set(NE_Gad2, MUIA_String_Contents, &Start_Datum);
set(NE_Gad3, MUIA_String_Integer , Start_KM);
set(NE_Gad1, MUIA_String_Contents, &Start_Kennzeichen);
set(NE_Gad4, MUIA_Cycle_Active , Start_Format);
}
while (running)
{
switch (DoMethod(App,MUIM_Application_Input,&signal))
{
case ID_NE_CANCEL:
case MUIV_Application_ReturnID_Quit:
{
running = FALSE;
new = FALSE;
break;
}
case ID_NE_OK:
case ID_NE_KM:
{
get(NE_Gad4, MUIA_Cycle_Active , &Start_Format);
get(NE_Gad2, MUIA_String_Contents, &string);
strcpy(datum, string);
days = ConvertToDays(datum);
if(days != -1)
{
running = FALSE;
new = TRUE;
}
else
{
DisplayBeep(0);
set(WI_Neu, MUIA_Window_ActiveObject, NE_Gad2);
}
break;
}
}
if(running && signal) Wait(signal);
}
if(new)
{
/* Neue Datei anlegen */
get(NE_Gad4, MUIA_Cycle_Active , &Start_Format);
Start_Day = days;
strcpy(Start_Datum, datum);
get(NE_Gad3, MUIA_String_Contents, &string);
StrToLong(string, &Start_KM);
get(NE_Gad1, MUIA_String_Contents, &string);
strcpy(Start_Kennzeichen, string);
if(!flag)
{
RemoveAll();
changes = FALSE;
FileName[0] = 0;
}
}
else
{
Start_Format = oldformat;
}
/* Und Fenster wieder schließen */
set(WI_Cost , MUIA_Window_Sleep, FALSE);
set(WI_Neu , MUIA_Window_Open, FALSE);
ReCalcTreib();
}