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

  1. /* Copyright 1989 GROUPE BULL -- See licence conditions in file COPYRIGHT */
  2. #include <stdio.h>
  3. #include "couche.h"
  4. #include "clientimage.h"
  5. #include "fedor.h"
  6. #include "style.h"    /* NORMAL .. */
  7.  
  8. extern fedchar cartrav;
  9. extern ClientImage * bitmapsave ;
  10. extern Xleft,Baseliney ;
  11. extern BackColor ;
  12.  
  13. Translate(xorig,yorig,xdest,ydest)
  14.     int xorig,yorig,xdest,ydest ;
  15. {
  16.     int xdecal,ydecal ;
  17.  
  18.     if (cartrav.hsize==0) return ;
  19.  
  20.     Rast_Off(&bitmapsave,BackColor) ;
  21.     xdecal = xdest - xorig ;
  22.     ydecal = ydest - yorig ;
  23.     if (Xleft+cartrav.hsize+xdecal >128) 
  24.             xdecal = 128 - (Xleft+cartrav.hsize) ;
  25.     if (Xleft+xdecal<0) xdecal = (- Xleft) ;
  26.     if (Baseliney+cartrav.down+ydecal>128)
  27.             ydecal = 128 - (Baseliney+cartrav.down) ;
  28.     if (Baseliney+cartrav.up+ydecal <0) 
  29.             ydecal = (-Baseliney-cartrav.up) ;
  30.  
  31.     Rast_Op(cartrav.image,&bitmapsave,
  32.                 Xleft,Baseliney+cartrav.up,
  33.                 Xleft+xdecal,Baseliney+cartrav.up+ydecal,
  34.                 cartrav.hsize,cartrav.down-cartrav.up,
  35.                 VIDSTR,BackColor);
  36.     Rast_Copy(bitmapsave,&cartrav.image);
  37.  
  38.     Xleft += xdecal ;
  39.     cartrav.down += ydecal ;
  40.     cartrav.up += ydecal ;
  41.  
  42.     MontrerCarTrav() ;
  43. }
  44.  
  45. Autom_transl (pev)
  46.     myEvent * pev ; 
  47. {  static int x,y ;
  48.      
  49.     switch (pev->type) {
  50.     case EnterZone : Afficher_boutons("ORIGIN","ORIGIN");
  51.              x = -1 ;
  52.              break ;
  53.     case ButtonPressed : if (x == -1 ) {
  54.                 Afficher_boutons("DEST","DEST");
  55.                     x = pev->x ; 
  56.                     y = pev->y ; 
  57.                      stylesouris(LIGNE,x,y);
  58.                  }
  59.                  break ;
  60.     case ButtonReleased : stylesouris(NORMAL,0,0);
  61.                   Afficher_boutons("ORIGIN","ORIGIN");
  62.                   if (x != -1) {Dodo();
  63.                         Translate(convert(x),
  64.                                convert(y),
  65.                                convert(pev->x),
  66.                                convert(pev->y));
  67.                   }
  68.                   x = -1 ;
  69.                   break ;
  70.     case MoveMouse : break ;                
  71.     case CloseWindow : break ;                
  72.     case LeaveZone : stylesouris(NORMAL,0);
  73.                Afficher_numview(-1,-1) ; /* restaure le gris */
  74.              Afficher_boutons("","");
  75.              break ;
  76.     }
  77.