home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / disks / disk378.lzh / Observer / observer.c < prev    next >
C/C++ Source or Header  |  1990-10-10  |  2KB  |  115 lines

  1. /*
  2.     Observer.c
  3.  
  4.     zeigt ständig die Namen aller eingelegten Disketten (DF0: - DF3) an.
  5.  
  6.     © 1989, by Ølli/Ultimate Computer Arts
  7.            Landsberge 5
  8.            4322 Sprockhövel
  9.            West Germany
  10.  
  11.     für Lettuce-C V5.04, mit "cback.o" linken
  12.  
  13.     Hinweis: Die System-Gadgets werden nicht mehr angezeigt,
  14.          trotzdem kann man das Fenster bewegen, nach vorne/hinten
  15.          clicken, schließen!
  16.  
  17.     Geschrieben für das AmigaJUICE-Diskmagazin.
  18.     AmigaJUICE gibts gegen Leerdisk und Rückumschlag, oder DM 4,-, beim
  19.     Autor (siehe oben!)
  20.  
  21. */
  22.  
  23. char *_procname="Big Brother is watching you!";
  24. long _priority=0;
  25. long _BackGroundIO=0;
  26. long _stack=2624;
  27.  
  28.  
  29. #include <libraries/dos.h>
  30. #include <intuition/intuition.h>
  31.  
  32. #include <proto/exec.h>
  33. #include <proto/intuition.h>
  34. #include <proto/graphics.h>
  35. #include <proto/dos.h>
  36.  
  37. /* meine private tr.lib */
  38. #include <tool.h>
  39.  
  40. struct InfoData di;
  41.  
  42. struct NewWindow nw={640-483,0,483,19,2,0,CLOSEWINDOW|DISKINSERTED|DISKREMOVED|REFRESHWINDOW|ACTIVEWINDOW|INACTIVEWINDOW,
  43.     RMBTRAP|WINDOWDRAG|WINDOWDEPTH|WINDOWCLOSE|SIMPLE_REFRESH,
  44.     0,0,0,0,0,0,0,0,0,WBENCHSCREEN};
  45.  
  46. struct Window *w;
  47. struct RastPort *rp;
  48.  
  49. char drive[5]={"DF0:"};
  50.  
  51. void _main(void);
  52. void exit(void);
  53. char *exam(int);
  54. void doit(void);
  55.  
  56. char *exam(n)
  57. int n;
  58. {
  59.     long lock;
  60.     struct DosList *dl;
  61.     char *str;
  62.  
  63.     drive[2]='0'+n;
  64.     if(!(lock=Lock(drive,SHARED_LOCK))) {
  65.     return(IoErr()==218?"drive not mounted":"no disk in drive");
  66.     }
  67.     Info(lock,&di);
  68.     UnLock(lock);
  69.     dl=BADDR(di.id_VolumeNode);
  70.     str=BADDR(dl->dol_Name);
  71.     return(&str[1]);
  72. }
  73.  
  74. void doit()
  75. {
  76.     int c;
  77.  
  78.     ClearScreen(rp);
  79.     setapen(1);
  80.     move(0,0);
  81.     draw(482,0);
  82.     draw(482,18);
  83.     draw(0,18);
  84.     draw(0,0);
  85.     setapen(2);
  86.     move(0,9);
  87.     draw(482,9);
  88.     move(241,0);
  89.     draw(241,18);
  90.     setapen(3);
  91.     for(c=0; c<4; c++) {
  92.     move((c&1)?242:1,(c&2)?16:7);
  93.     textf("%-30.30s",exam(c));
  94.     }
  95. }
  96.  
  97. void _main()
  98. {
  99.  
  100.     openlibs();
  101.     if(!(w=OpenWindow(&nw))) exit();
  102.     rp=w->RPort;
  103.     setdoserror((struct Window*)-1);
  104.     SetWindowTitles(w,0,"The Observer - written & © 1990 by Ølli");
  105.     doit();
  106.     for(;;) {
  107.     wgetmsg();
  108.     if(class==CLOSEWINDOW) {
  109.         CloseWindow(w);
  110.         exit();
  111.     }
  112.     doit();
  113.     }
  114. }
  115.