/******************************************************************************
Grundlagen der PocketViewer Programmierung
******************************************************************************/
#include <stdrom.h>
#include "define.h"
#include "libc.h"
#include "l_define.h"
#include "l_libc.h"
#include "grund.h"
/* Main-Pogramm */
void main()
{
int loop=0; /* Hauptschleife des gesamten Programms */
/* allgemeine Initialisierung */
while (loop!=PV_ESC1) /* Solange Programm nicht Beendet wird */
{
loop=screen1(); /* 1. Screen bearbeiten */
/* Rückgabewert bestimmt weiteres Vorgehen */
switch(loop)
{
case PV_NEXT: /* Rückgabewert für weiteren Screen */
{
loop=screen2(); /* Screen aufrufen */
}
break;
}
}
LibJumpMenu();
}
/* Hier kommen die Definitionen der einzelnen Screens */
int screen1()
{
int ret_code=0; /* Unser Ergebnis dieses Screens */
TCHSTS tsts; /* Ergebnis der Touch-Abfrage */
/* Bildschirmaufbau */
LibClrDisp(); /* Bildschirm löschen */
/* Bildschirm füllen */
LibPutDisp(); /*Bildschirm anzeigen */
/* Touch-Felder definieren */
LibTchStackClr(); /* Keine Touch-Felder von früher zulassen */
LibTchStackPush(NULL); /* Stack initialisieren */
LibTchStackPush(TchHardIcon); /* Icons für die Menüleiste */
LibTchInit();
/* Hauptschleife */
while (ret_code==0) /* Solange nichts gemacht wurde */
{
LibTchWait(&tsts); /* Auf Touch warten */
switch(tsts.obj) /* Auswerten des Touch */
{
case OBJ_HIC_ESC: /* ESC_Taste gedrückt */
{
ret_code=PV_ESC1; /* Screen1 beenden */
}
break;
/* Weitere Dinge tun */
}
}
return(ret_code); /* Ergebnis melden */
}
int screen2()
{
int ret_code=0; /* Unser Ergebnis dieses Screens */
TCHSTS tsts; /* Ergebnis der Touch-Abfrage */
/* Bildschirmaufbau */
LibClrDisp(); /* Bildschirm löschen */
/* Bildschirm füllen */
LibPutDisp(); /*Bildschirm anzeigen */
/* Touch-Felder definieren */
LibTchStackClr(); /* Keine Touch-Felder von früher zulassen */
LibTchStackPush(NULL); /* Stack initialisieren */
LibTchStackPush(TchHardIcon); /* Icons für die Menüleiste */
/* Hauptschleife */
while (ret_code==0) /* Solange nichts gemacht wurde */
{
LibTchWait(&tsts); /* Auf Touch warten */
switch(tsts.obj) /* Auswerten des Touch */
{
case OBJ_HIC_ESC: /* ESC_Taste gedrückt */
{
ret_code=PV_ESC2; /* Screen2 beenden */
}
break;
/* Weitere Dinge tun */
}
}
return(ret_code); /* Ergebnis melden */
}
|
Dieses Programm ist in sich bereits lauffähig, macht allerdings noch nichts.
Zur Beschreibung des Ablaufs:
Damit wäre der prinzipielle Programmaufbau schon erledigt.
Dieses Programm ist so bereits lauffähig, sofern man in dem include-File grund.h die Defines und Funktionsprototypen
gesetzt hat.
An den entsprechenden Stellen im Sourcecode können nun eigene Funktionalitäten eingsetzt werden.
Übrigens wird die Routine screen2() niemals angesprungen, weil screen1() keine Möglichkeit vorsieht, hierhin zu
verzweigen. Die Routine steht nur dabei, um in main() diese Verzweigung zu veranschaulichen.
Für Ergänzungen wenden Sie sich bitte an:
Jürgen Wagner