GEM-Programmierung: das Grundgerüst

int GrafikHandle, ApplikationsHandle;

/* Daten zur Kommunikation mit dem System */
int work_in[11], work_out[57];
int main(void)
{
#define ENDE = -1;
int aktion = 0;

   ApplikationsHandle = appl_init();   /* Melde Applikation an */
   GrafikHandle = graf_handle( ...  );    /* Ermittle das Handle */
   for (i=0; i<10; work_in[i++] =1); work_in[10]=2;
   /* Eroeffnen der virtuellen Workstation */
   v_opnvwrk(work_in, &GrafikHandle, work_out);

   . . .

   do {
      event = evnt_multi (MU_MESAG|MU_KEYBD|MU_BUTTON,
                     ..., msg, ...);
      if (event & MU_MESAG) { /* Nachricht */
         switch (msg[0]) {
         case MN_SELECTED: /* Menuepunkt ausgewaehlt */
         switch .... {
            /* Menuepunkt unterscheiden */
         }
         case WM_REDRAW:
            /* ein Fensterbereich muss neu gezeichnet werden */
            NeuZeichnen(msg); break;
         case WM_TOPPED:
            /* Anderes Fenster ist nach vorn geholt worden */
         case WM_CLOSED: /* Fenster geschlossen */
            aktion = ENDE; break;
         case WM_SIZED:
            /* Fenster wurde in der Groesse veraendert */
         }
      }
      if (event & MU_KEYBD) {
         /* Taste gedrueckt: Scancode und ASCII untersuchen */
         aktion = ENDE;
      }
      if (event & MU_BUTTON) {
         /* Maustaste wurde betaetigt */
      }
   } (aktion != ENDE);

   v_clsvwk(GrafikHandle);  /* schliesse die Workstation wieder */
   appl_exit();      /* Applikation abmelden */
}


Computer-Oldies - Atari ST Programmierung - Informatik-Ecke (C) Copyright 1999 Arnold Willemer