home *** CD-ROM | disk | FTP | other *** search
/ Really Useful CD 1 / ReallyUsefulCD1.iso / extras / progutils / trace / _tracetest / c / tracetest
Encoding:
Text File  |  1991-01-18  |  1.8 KB  |  131 lines

  1. #include "wimpt.h"
  2. #include "werr.h"
  3. #include "res.h"
  4. #include "resspr.h"
  5. #include "template.h"
  6. #include "coords.h"
  7. #include "menu.h"
  8. #include "baricon.h"
  9. #include "win.h"
  10. #include "event.h"
  11. #include "alarm.h"
  12. #include "dbox.h"
  13.  
  14. /*
  15.  * CONSTANTS
  16.  */
  17.  
  18. enum
  19. {
  20.   bar_info = 1,
  21.   bar_quit
  22. } bar_hit;
  23.  
  24. enum
  25. {
  26.   bar_menu
  27. } menus;
  28.  
  29. enum
  30. {
  31.   main_window
  32. } windows;
  33.  
  34. enum
  35. {
  36.   main_alarm
  37. } alarms;
  38.  
  39. /*
  40.  *** GLOBAL VARIABLES ***
  41.  */
  42.  
  43. menu bar_m;
  44.  
  45. /*
  46.  *** EVENT PROCESSORS ***
  47.  */
  48.  
  49. /*
  50.  * Bar click
  51.  *
  52.  *   The icon on the bar has been 'clicked'
  53.  */
  54.  
  55. static void alarm_event(int at, void *handle)
  56. {
  57. int id;
  58.  
  59.   id = (int) handle;
  60.  
  61.   tracef(1, "Alarm event at %d", at);
  62.  
  63.   alarm_set(alarm_timenow()+250, alarm_event, main_alarm);
  64. }
  65.  
  66. static void bar_click(wimp_i icon)
  67. {
  68.   tracef(0, "I have been clicked on!");
  69. }
  70.  
  71. static void menu_event(void *handle, char *hit)
  72. {
  73. int id;
  74. dbox d;
  75.  
  76.   id = (int)handle;
  77.   switch(id)
  78.   {
  79.   case bar_menu:
  80.     switch(hit[0])
  81.     {
  82.     case bar_info:
  83.       d = dbox_new("info");
  84.       dbox_show(d);
  85.       dbox_fillin(d);
  86.       dbox_dispose(&d);
  87.       tracef(2, "Information menu item");
  88.       break;
  89.  
  90.     case bar_quit:
  91.       exit(0);
  92.     }
  93.     break;
  94.  
  95.   default:
  96.     werr(TRUE, "Unknown menu id: %d", id);
  97.     break;
  98.   }
  99. }
  100.  
  101. /*
  102.  *** TRACE ***
  103.  */
  104.  
  105. int main()
  106. {
  107.   wimpt_init("TraceTest");
  108.   res_init("tracetest");
  109.   resspr_init();
  110.   template_init();
  111.   dbox_init();
  112.   alarm_init();
  113.  
  114.   /* Set up the icon on the iconbar */
  115.  
  116.   baricon("!tracetest", (int)resspr_area(), bar_click);
  117.  
  118.   /* Create a menu for the bar icon */
  119.  
  120.   bar_m = menu_new("TraceTest", ">Info,Quit");
  121.   event_attachmenu(win_ICONBAR, bar_m, menu_event, bar_menu);
  122.  
  123.   /* Set the alarm timer for every 2.5 seconds */
  124.   alarm_set(alarm_timenow()+250, alarm_event, main_alarm);
  125.  
  126.   /* Process events */
  127.  
  128.   while (TRUE)
  129.     event_process();
  130. }
  131.