コード例 #1
0
void WINEXP FMNewClipboard( void )
/********************************/

  {
    FreeClipboard();
    ClipBoard.task = GET_CURRENT_TASK();
  }
コード例 #2
0
void WINEXP FMResetClipboard( void )
/**********************************/

/* Reset the list of copy objects */

  {

    if( ClipBoard.task == GET_CURRENT_TASK() ) {
        FreeClipboard();
    }
  }
コード例 #3
0
ファイル: UNDO.C プロジェクト: daemqn/Atari_ST_Sources
void clip_putlasso(GEM_WINDOW *gwnd, int x1, int y1, int x2, int y2, MFDB *mask, MFDB *masked_img)
{
  VXIMAGE *vimage ;

  if ( !GWIsWindowValid( gwnd ) ) return ;
  vimage = (VXIMAGE *) gwnd->Extension ;

  FreeClipboard() ;

  memcpy(&clipboard.img, masked_img, sizeof(MFDB)) ;
  memcpy(&clipboard.mask, mask, sizeof(MFDB)) ;
  clipboard.gwindow = gwnd ;
  clipboard.x   = x1 ;
  clipboard.y   = y1 ;
  clipboard.w   = 1+x2-x1 ;
  clipboard.h   = 1+y2-y1 ;

  if (config.clip_gem == 1)
  {
    char name[200] ;

    mouse_busy() ;
    if ( clbd_getpath( name ) == 0 )
    {
      INFO_IMAGE info ;

      memcpy( &info, &vimage->inf_img, sizeof(INFO_IMAGE) ) ;
      info.largeur  = clipboard.img.fd_w ;
      info.hauteur  = clipboard.img.fd_h ;
      if ( Truecolor )
      {
        strcat(name, "SCRAP.TIF") ;
        info.compress = 1 ;
        info.lformat  = IID_TIFF ;
      }
      else
      {
        strcat(name, "SCRAP.IMG") ;
        info.lformat  = IID_IMG ;
      }
      save_picture( name, &clipboard.img, &vimage->inf_img, NULL ) ;
    }
    mouse_restore() ;
  }
}
コード例 #4
0
ファイル: UNDO.C プロジェクト: daemqn/Atari_ST_Sources
void clip_put(GEM_WINDOW *gwnd, int x1, int y1, int x2, int y2)
{
  VXIMAGE *vimage ;
  int     xy[8] ;
  int     temp ;
  int     larg ;
  int     w, h ;

  if ( !GWIsWindowValid( gwnd ) ) return ;
  vimage = (VXIMAGE *) gwnd->Extension ;

  if (x2 < x1)
  {
    temp = x1 ;
    x1   = x2 ;
    x2   = temp ;
  }
  if (y2 < y1)
  {
    temp = y1 ;
    y1   = y2 ;
    y2   = temp ;
  }

  FreeClipboard() ;

  w = 1+x2-x1 ; h = 1+y2-y1 ;
  if (w % 16) larg = (16+w) & 0xFFF0 ;
  else        larg = w ;
  if (larg < MINIW) larg = MINIW ;
  if (h < MINIH)       h = MINIH ;
  clipboard.img.fd_addr = img_alloc(larg, h, nb_plane) ;
  if (clipboard.img.fd_addr == NULL)
  {
    form_error(8) ;
    return ;
  }

  clipboard.img.fd_w       = larg ;
  clipboard.img.fd_h       = h ;
  clipboard.img.fd_wdwidth = larg/16 ;
  clipboard.img.fd_nplanes = nb_plane ;
  clipboard.img.fd_stand   = 0 ;
  clipboard.gwindow        = gwnd ;
  clipboard.x              = x1 ;
  clipboard.y              = y1 ;
  clipboard.w              = 1+x2-x1 ;
  clipboard.h              = 1+y2-y1 ;

  img_raz(&clipboard.img) ;
  xy[0] = x1 ;    xy[1] = y1 ;
  xy[2] = x2 ;    xy[3] = y2 ;
  xy[4] = 0 ;     xy[5] = 0 ;
  xy[6] = x2-x1 ; xy[7] = y2-y1 ;
  vro_cpyfm(handle, S_ONLY, xy, &vimage->raster, &clipboard.img) ;

  if ( config.clip_gem == 1 )
  {
    char name[PATH_MAX] ;

    mouse_busy() ;
    if ( clbd_getpath( name ) == 0 )
    {
      INFO_IMAGE info ;
      IMG_MODULE *img_module ;

      memcpy( &info, &vimage->inf_img, sizeof(INFO_IMAGE) ) ;
      info.largeur  = clipboard.img.fd_w ;
      info.hauteur  = clipboard.img.fd_h ;
      info.compress = 1 ;
      strcat( name, "SCRAP." ) ;
      if ( Truecolor ) info.lformat = IID_TIFF ;
      else             info.lformat = IID_IMG ;
      img_module = DImgGetModuleFromIID( info.lformat ) ;
      if ( img_module )
      {
        strcat( name, img_module->Capabilities.file_extension ) ;
        save_picture( name, &clipboard.img, &info, NULL ) ;
      }
    }
    mouse_restore() ;
  }
}
コード例 #5
0
ファイル: Clipboard.c プロジェクト: embassy/AkelPad
void UninitSelAutoCopy()
{
  bInitSelAutoCopy=FALSE;

  FreeClipboard(&wpClipboard, &pClipboard);
}