home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / xfedor.zip / XFree86 / src / xfedor / sos.c < prev    next >
C/C++ Source or Header  |  1999-03-02  |  4KB  |  158 lines

  1. /* Copyright 1989 GROUPE BULL -- See licence conditions in file COPYRIGHT */
  2.         /* module de traitement du sos  */
  3.         
  4. #include <stdio.h>
  5. #include "couche.h"
  6. extern char * getenv() ;
  7. extern int UnixFileNameMode ;     /* 0 ou 1, initialiser dans main */
  8.  
  9. extern int root ;
  10.  
  11. int  nf_sos ;
  12.  
  13. #include "sos.h"    /* PUT GET .. */
  14.  
  15. #define WFIC (8*(80+2))
  16. #define HFIC (12*(22+2))
  17.  
  18. static char * dirsos ;
  19. static char * newdirsos ;
  20.  
  21. static char Prompt[20], Sosfile[50] ;
  22.  
  23. void Init_sos()
  24. {
  25.  
  26.     if ((dirsos = getenv("SOS"))==0)
  27.            if (UnixFileNameMode) dirsos = SOSDIR; 
  28.                           else dirsos = "";
  29.     if (UnixFileNameMode) {
  30.        newdirsos = (char *)malloc(strlen(dirsos)+2);
  31.        strcpy(newdirsos,dirsos);
  32.        newdirsos[strlen(dirsos)] = '/' ;
  33.        newdirsos[strlen(dirsos)+1] = '\0' ;
  34.        dirsos = newdirsos ;
  35.     }
  36.  
  37.     nf_sos = w_ouvrir(root, 140, 200, WFIC, HFIC,
  38.               "xfedor_sos",CURS3,
  39.               EnterWindow|ButtonPressed|LeaveWindow,
  40.               WMON);
  41. }
  42.  
  43. void Helping(code)
  44.     int code ;
  45. {   
  46.     strcpy(Sosfile,dirsos);
  47.     switch(code){
  48.     case GARB : strcpy(Prompt,"Commandes GARB");
  49.             strcat(Sosfile,"GARB.sos");
  50.            break ;
  51.     case FONT : strcpy(Prompt,"Fenetre FONTE");
  52.            strcat(Sosfile,"FONT.sos");
  53.            break ;
  54.     case SAVE : strcpy(Prompt,"Fenetre SAVE");
  55.            strcat(Sosfile,"SAVE.sos");
  56.            break ;
  57.     case EDIT : strcpy(Prompt,"Fenetre EDIT");
  58.            strcat(Sosfile,"EDIT.sos");
  59.            break ;
  60.     case LINE : strcpy(Prompt,"Mode LINE");
  61.            strcat(Sosfile,"LINE.sos");
  62.            break ;
  63.     case WRITE : strcpy(Prompt,"Mode WRITE");
  64.            strcat(Sosfile,"WRITE.sos");
  65.            break ;
  66.     case METRIC : strcpy(Prompt,"Mode METRIC");
  67.            strcat(Sosfile,"METRIC.sos");
  68.            break ;
  69.     case CUTAP : strcpy(Prompt,"Mode CUTAP");
  70.            strcat(Sosfile,"CUTAP.sos");
  71.            break ;
  72.     case CIRCLE : strcpy(Prompt,"Mode CIRCLE ");
  73.            strcat(Sosfile,"CIRCLE.sos");
  74.            break ;
  75.     case RECT : strcpy(Prompt,"Mode RECTANGLE");
  76.            strcat(Sosfile,"RECTANGLE.sos");
  77.            break ;
  78.     case TRANSL : strcpy(Prompt,"Mode TRANSLATE");
  79.            strcat(Sosfile,"TRANSLATE.sos");
  80.            break ;
  81.     case ROTATE : strcpy(Prompt,"Mode ROTATE");
  82.            strcat(Sosfile,"ROTATE.sos");
  83.            break ;
  84.     case FILL : strcpy(Prompt,"Mode FILL");
  85.            strcat(Sosfile,"FILL.sos");
  86.            break ;
  87.     case BEZIERS : strcpy(Prompt,"Mode BEZIERS");
  88.            strcat(Sosfile,"BEZIERS.sos");
  89.            break ;
  90.     case RESIZE : strcpy(Prompt,"Mode RESIZE");
  91.            strcat(Sosfile,"RESIZE.sos");
  92.            break ;
  93.     case SOS : strcpy(Prompt,"Commandes generales");
  94.            strcat(Sosfile,"SOS.sos");
  95.            break ;
  96.     case NUM : strcpy(Prompt,"Fenetre Numerique");
  97.            strcat(Sosfile,"NUM.sos");
  98.            break ;
  99.     default : strcpy(Prompt,"Commande default");
  100.            strcat(Sosfile,"default.sos");
  101.            break ;
  102.     }
  103.     w_cacher(nf_sos) ;
  104.     w_montrer(nf_sos) ;
  105.  
  106. }
  107.  
  108. /*---------------------------------------*/
  109. Reaffich(fen)
  110. int fen ;
  111.  
  112. {     register FILE *fptr;
  113.     myEvent ev;
  114.     int x,y,i ;
  115.     char s[80] ;
  116.  
  117.     if ((fptr = fopen(Sosfile,"r")) != NULL)
  118.         {
  119.         w_centrer(fen,Prompt,0,0,WFIC,20);
  120.         w_inv(fen,0,0,WFIC,20);
  121.             x = 7;
  122.            y = 42 ;    /* unites pixels */
  123.     
  124.             while( fgets(s,80,fptr) != 0) {
  125.               for (i=0; s[i]; i++) ;
  126.               s[i-1] = ' ';
  127.                         w_ecrire(fen,s,x,y);
  128.                 y += 14;
  129.             }
  130.             fclose(fptr);
  131.          } else w_centrer(fen,"CAN'T OPEN HELP FILE.",0,0,WFIC,HFIC);
  132.     w_centrer(fen,"Click anywhere to UnMap",0,HFIC-20,WFIC,HFIC);
  133.     w_inv(fen,0,HFIC-20,WFIC,HFIC);
  134. }
  135.  
  136.  
  137. int Autom_sos(pev)
  138.     myEvent * pev ;
  139. {
  140.    switch(pev->type){
  141.     case Exposure :
  142.         Reaffich(pev->window);
  143.         break ;
  144.     case EnterWindow   : 
  145.                 Afficher_boutons("Exit","Exit") ;
  146.         break;   
  147.     case ButtonPressed :  
  148.     case CloseWindow :
  149.             w_cacher(pev->window);        
  150.                 break ;
  151.        case LeaveWindow :    
  152.         Afficher_boutons("","") ; 
  153.         break ;
  154.    }
  155. }
  156.  
  157.  
  158.