home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / drdobbs / 1992 / 06 / dflt12 / watch.c < prev    next >
Text File  |  1992-04-22  |  2KB  |  55 lines

  1. /* ----------- watch.c ----------- */
  2.  
  3. #include "dflat.h"
  4.  
  5. static int WatchIconProc(
  6.                 WINDOW wnd, MESSAGE msg, PARAM p1, PARAM p2)
  7. {
  8.     int rtn;
  9.     switch (msg)    {
  10.         case CREATE_WINDOW:
  11.             rtn = DefaultWndProc(wnd, msg, p1, p2);
  12.             SendMessage(wnd, CAPTURE_MOUSE, 0, 0);
  13.             SendMessage(wnd, HIDE_MOUSE, 0, 0);
  14.             SendMessage(wnd, CAPTURE_KEYBOARD, 0, 0);
  15.             return rtn;
  16.         case PAINT:
  17.             SetStandardColor(wnd);
  18.             writeline(wnd, " └ ", 1, 1, FALSE);
  19.             return TRUE;
  20.         case BORDER:
  21.             rtn = DefaultWndProc(wnd, msg, p1, p2);
  22.             writeline(wnd, "═", 2, 0, FALSE);
  23.             return rtn;
  24.         case MOUSE_MOVED:
  25.             SendMessage(wnd, HIDE_WINDOW, TRUE, 0);
  26.             SendMessage(wnd, MOVE, p1, p2);
  27.             SendMessage(wnd, SHOW_WINDOW, 0, 0);
  28.             return TRUE;
  29.         case CLOSE_WINDOW:
  30.             SendMessage(wnd, RELEASE_MOUSE, 0, 0);
  31.             SendMessage(wnd, RELEASE_KEYBOARD, 0, 0);
  32.             SendMessage(wnd, SHOW_MOUSE, 0, 0);
  33.             break;
  34.         default:
  35.             break;
  36.     }
  37.     return DefaultWndProc(wnd, msg, p1, p2);
  38. }
  39.  
  40. WINDOW WatchIcon(void)
  41. {
  42.     int mx, my;
  43.     WINDOW wnd;
  44.     SendMessage(NULL, CURRENT_MOUSE_CURSOR,
  45.                         (PARAM) &mx, (PARAM) &my);
  46.     wnd = CreateWindow(
  47.                     BOX,
  48.                     NULL,
  49.                     mx, my, 3, 5,
  50.                     NULL,NULL,
  51.                     WatchIconProc,
  52.                     VISIBLE | HASBORDER | SHADOW | SAVESELF);
  53.     return wnd;
  54. }
  55.