home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / PC_V11_B.LZH / DEMO_PD / PDGEMDB.C < prev    next >
C/C++ Source or Header  |  1993-07-27  |  6KB  |  132 lines

  1. /************************************************************************/
  2. /*                                                                      */
  3. /*       PDGEMDB.C                                                      */
  4. /*                                                                      */
  5. /*       Ein Beispielprogramm für die Verwendung des Pure Debuggers.    */
  6. /*                                                                      */
  7. /*       ACHTUNG:       DIESES PROGRAMM ENTHÄLT EINIGE FEHLER!!!        */
  8. /*                                                                      */
  9. /*       Copyright (c) 1989 Borland International                       */
  10. /*       All rights reserved.                                           */
  11. /*                                                                      */
  12. /************************************************************************/
  13.  
  14. /* -------------------------------------------------------------------- */
  15. /*       Include-Files einbinden.                                       */
  16. /* -------------------------------------------------------------------- */
  17.  
  18. #include <aes.h>
  19.  
  20. /* -------------------------------------------------------------------- */
  21. /*       Konstantendefinitionen.                                        */
  22. /* -------------------------------------------------------------------- */
  23.  
  24. #define ME_HIDE               0
  25. #define ME_SHOW               1
  26. #define ME_NORM               1
  27.  
  28. #define RSC_NAME              "F:\TEST.RSC"
  29.  
  30. /* -------------------------------------------------------------------- */
  31. /*       Typendefinition.                                               */
  32. /* -------------------------------------------------------------------- */
  33.  
  34. typedef enum
  35.    {
  36.       FALSE,
  37.       TRUE
  38.    }
  39.       boolean;
  40.  
  41. /* -------------------------------------------------------------------- */
  42. /*       Globale Variablen.                                             */
  43. /* -------------------------------------------------------------------- */
  44.  
  45. static OBJECT  *M_tree;
  46. static boolean *Done;
  47.  
  48. /* -------------------------------------------------------------------- */
  49. /*       Funktionsprototypen.                                           */
  50. /* -------------------------------------------------------------------- */
  51.  
  52. void gem_prg( void );
  53. void hndl_event( int * msgbuff );
  54.  
  55. /* -------------------------------------------------------------------- */
  56. /*       void gem_prg( void );                                          */
  57. /*                                                                      */
  58. /*       Hier steht der Quelltext für ein beliebiges GEM-Programm.      */
  59. /*       (Hier Anzeigen eines Menüs.)                                   */
  60. /*                                                                      */
  61. /*       ->                      Nichts.                                */
  62. /*                                                                      */
  63. /*       <-                      Nichts.                                */
  64. /* -------------------------------------------------------------------- */
  65.  
  66. void gem_prg( void )
  67. {
  68.    static boolean done = FALSE;           /* 'Mach weiter'-Flag.        */
  69.           int     msgbuff[8];             /* Mitteilungspuffer.         */
  70.  
  71.    *Done = done;                          /* Programm noch nicht fertig */
  72.  
  73.    if ( rsrc_load( RSC_NAME ) > 0 )       /* Laden des Resource-Files.  */
  74.    {
  75.       rsrc_gaddr( 0, 0, &M_tree );        /* Startadresse des Menüs     */
  76.                                           /* bestimmen.                 */
  77.       graf_mouse( M_OFF, 0 );             /* Maus ausblenden.           */
  78.       menu_bar( M_tree, ME_SHOW );        /* Menü anzeigen.             */
  79.       graf_mouse( M_ON, 0 );
  80.       graf_mouse( ARROW, 0 );             /* Mauszeiger ist der Pfeil.  */
  81.  
  82.       do
  83.       {
  84.          evnt_mesag( msgbuff );           /* Ereignis abwarten.         */
  85.  
  86.          hndl_event( msgbuff );           /* Ergebnis auswerten.        */
  87.       }
  88.       while ( !done );                    /* Solange nichts getan ist!  */
  89.  
  90.       graf_mouse( M_OFF,0 );
  91.       menu_bar( M_tree, ME_HIDE );        /* Menü verschwinden lassen.  */
  92.       graf_mouse( M_ON, 0 );
  93.       rsrc_free( );                       /* Durch Rsc-Datei belegten   */
  94.    }                                      /* Speicher freigeben.        */
  95.    else
  96.       form_alert( 1, "[3][Rsc-Datei nicht gefunden.][Abbruch]" );
  97. }
  98.  
  99. /* -------------------------------------------------------------------- */
  100. /*       void hndl_event( int *msgbuff );                               */
  101. /*                                                                      */
  102. /*       Auswerten möglicher Ereignisse.                                */
  103. /*                                                                      */
  104. /*       -> msgbuff              Zeiger auf Puffer mit Ergebnis des     */
  105. /*                               GEM-Ereignisalarms.                    */
  106. /*                                                                      */
  107. /*       <- Done                 (globale Varibale)                     */
  108. /*                               TRUE  - Programmabbruch                */
  109. /*                               FALSE - sonst                          */
  110. /* -------------------------------------------------------------------- */
  111.  
  112. void hndl_event( int *msgbuff )
  113. {
  114.    *Done = TRUE;
  115.  
  116.    if ( msgbuff[0] == MN_SELECTED )       /* Menüpunkt wurde ausgewählt */
  117.    {
  118.       if ( msgbuff[4] != 16 )             /* Ungleich 16 ist alles, nur */
  119.                                           /* nicht das Ende!            */
  120.          form_alert( 1, "[0][ Pure Debugger Demo| |(c) 1989 \
  121. Borland Int.  |All rights reserved.][ Ok ]" );
  122.       else
  123.          *Done = FALSE;                   /* sonst ist es vollbracht.   */
  124.  
  125.       menu_tnormal( M_tree, msgbuff[3], ME_NORM );
  126.    }                                      /* Menütitel normal zeichnen. */
  127. }
  128.  
  129. /* -------------------------------------------------------------------- */
  130. /*       Ende von PDGEMDB.C                                             */
  131. /* -------------------------------------------------------------------- */
  132.