home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / e / amigae30a_fr.lha / AmigaE30f / Sources / Intui / Public.e < prev    next >
Encoding:
Text File  |  1994-02-21  |  1.4 KB  |  41 lines

  1. /* Ouvre notre écran publique avec un shell dedans ...
  2.    Note : cette exemple ne prend pas compte 2 écrans avec le même nom,
  3.    ou d'autres bizarreries...
  4.    WB 2.0
  5.    Traduction : Olivier ANH (BUGSS)                                    */
  6.  
  7. OPT OSVERSION=37
  8.  
  9. MODULE 'intuition/screens'
  10.  
  11. ENUM OKAY,NOSCREEN,NOSIG
  12.  
  13. PROC main() HANDLE
  14.   DEF s=NIL,sig=-1,name
  15.   IF (s:=OpenScreenTagList(0,          /* ouvre notre écran publique */
  16.          [SA_DEPTH,2,
  17.           SA_DISPLAYID,$8000,
  18.           SA_PUBNAME,name:='PublicShell',
  19.           SA_TITLE,name,
  20.           SA_PUBSIG,IF (sig:=AllocSignal(-1))=NIL THEN Raise(NOSIG) ELSE sig,
  21.           SA_PUBTASK,NIL,
  22.           0,0]))=NIL THEN Raise(NOSCREEN)
  23.   PubScreenStatus(s,0)                 /* le rend accessible */
  24.   SetDefaultPubScreen(name)
  25.   SetPubScreenModes(SHANGHAI)
  26.   Execute('NewShell WINDOW CON:0/0/640/256/bla/NOBORDER/BACKDROP',NIL,NIL)
  27.     /* d'autre applications peuvent utiliser notre écran aussi
  28.        si on veut juste notre shell, on le rend privée de nouveau */
  29.   Wait(Shl(1,sig))            /* attend que toutes les fenêtre soient fermées */
  30.   SetDefaultPubScreen(NIL)    /* le workbench est de nouveau par défaut */
  31.   Raise(OKAY)
  32. EXCEPT
  33.   IF s THEN CloseS(s)
  34.   IF sig>=0 THEN FreeSignal(sig)
  35.   IF exception=NOSCREEN
  36.     WriteF('Ne peut ouvrir l''écran !\n')
  37.   ELSEIF exception=NOSIG
  38.     WriteF('Pas de signal possible !\n')
  39.   ENDIF
  40. ENDPROC
  41.