#ifndef __INC_POSA_CLIB_LAYERS_PROTOS_C
#define __INC_POSA_CLIB_LAYERS_PROTOS_C
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>layers_protos.c<<   31 Jan 1997    16:59:57 - (C) ProDAD
*******************************************************************/
#define NOMYDEBUG
#pragma -

#include <Exec/Types.h>
#include "p:pProto/pLayer2.h"
#include "p:pLayer/Rect.h"
#include "p:pLayer/Clip.h"


/* mcpp:cppc -c ci:_Projekte/pOSxA/clib/layers_protos.c -pc */


#pragma -

struct Layer *CreateUpfrontLayer( struct Layer_Info *li, struct BitMap *bm,
        long x0, long y0, long x1, long y1, long flags, struct BitMap *bm2 )
{
  struct pOS_Rectangle Rect;
  Rect.MinX=x0; Rect.MinY=y0;  Rect.MaxX=x1; Rect.MaxY=y1;
  return((struct Layer*)pOS_CreateUpfrontLayer((struct pOS_LayerInfo*)li,
          (struct pOS_GfxMap*)bm,&Rect,flags,(struct pOS_GfxMap*)bm2));
}

struct Layer *CreateBehindLayer( struct Layer_Info *li, struct BitMap *bm,
        long x0, long y0, long x1, long y1, long flags, struct BitMap *bm2 )
{
  struct pOS_Rectangle Rect;
  Rect.MinX=x0; Rect.MinY=y0;  Rect.MaxX=x1; Rect.MaxY=y1;
  return((struct Layer*)pOS_CreateBehindLayer((struct pOS_LayerInfo*)li,
          (struct pOS_GfxMap*)bm,&Rect,flags,(struct pOS_GfxMap*)bm2));
}

LONG UpfrontLayer( long dummy, struct Layer *layer )
{ return( pOS_UpfrontLayer((struct pOS_Layer*)layer) ); }

LONG BehindLayer( long dummy, struct Layer *layer )
{ return( pOS_BehindLayer((struct pOS_Layer*)layer) ); }

LONG MoveLayer( long dummy, struct Layer *layer, long dx, long dy )
{ return( pOS_MoveSizeLayer((struct pOS_Layer*)layer,dx,dy,0,0) ); }

LONG SizeLayer( long dummy, struct Layer *layer, long dx, long dy )
{ return( pOS_MoveSizeLayer((struct pOS_Layer*)layer,0,0,dx,dy) ); }

void ScrollLayer( long dummy, struct Layer *layer, long dx, long dy )
{ pOS_ScrollLayer((struct pOS_Layer*)layer,dx,dy); }

LONG BeginUpdate( struct Layer *layer )
{ return( pOS_BeginLayerUpdate((struct pOS_Layer*)layer,NULL) ); }

void EndUpdate( struct Layer *layer, unsigned long flag )
{ pOS_EndLayerUpdate((struct pOS_Layer*)layer,flag); }

LONG DeleteLayer( long dummy, struct Layer *layer )
{ return( pOS_DeleteLayer((struct pOS_Layer*)layer) ); }

void LockLayer( long dummy, struct Layer *layer )
{ pOS_LockLayer((struct pOS_Layer*)layer); }

void UnlockLayer( struct Layer *layer )
{ pOS_UnlockLayer((struct pOS_Layer*)layer); }

void LockLayers( struct Layer_Info *li )
{ pOS_LockLayers((struct pOS_LayerInfo*)li); }

void UnlockLayers( struct Layer_Info *li )
{ pOS_UnlockLayers((struct pOS_LayerInfo*)li); }

void LockLayerInfo( struct Layer_Info *li )
{ pOS_LockLayerInfo((struct pOS_LayerInfo*)li); }

struct Layer *WhichLayer( struct Layer_Info *li, long x, long y )
{ return((struct Layer*)pOS_WhichLayer((struct pOS_LayerInfo*)li,x,y)); }

void UnlockLayerInfo( struct Layer_Info *li )
{ pOS_UnlockLayerInfo((struct pOS_LayerInfo*)li); }

struct Layer_Info *NewLayerInfo( void )
{ return((struct Layer_Info*)pOS_CreateLayerInfo());}

void DisposeLayerInfo( struct Layer_Info *li )
{ pOS_DeleteLayerInfo((struct pOS_LayerInfo*)li); }

LONG MoveLayerInFrontOf( struct Layer *layer_to_move,
        struct Layer *other_layer )
{
  const struct pOS_Layer *Lay=(struct pOS_Layer*) ((struct pOS_Layer*)other_layer)->ly_Node.ln_Succ;
  return( pOS_MoveLayerBehindOf((struct pOS_Layer*)layer_to_move,Lay) );
}

struct Region *InstallClipRegion( struct Layer *layer,struct Region *region )
{ return((struct Region*)pOS_InstallClipRegion((struct pOS_Layer*)layer,(struct pOS_Region*)region)); }

LONG MoveSizeLayer( struct Layer *layer, long dx, long dy, long dw, long dh )
{ return( pOS_MoveSizeLayer((struct pOS_Layer*)layer,dx,dy,dw,dh) ); }
















#ifdef __IGNORE_NOT_SUPPORTED__

struct Layer *CreateUpfrontHookLayer( struct Layer_Info *li, struct BitMap *bm,
        long x0, long y0, long x1, long y1, long flags, struct Hook *hook,
        struct BitMap *bm2 )
{
  struct pOS_Rectangle Rect;
  Rect.MinX=x0; Rect.MinY=y0;  Rect.MaxX=x1; Rect.MaxY=y1;
  return((struct Layer*)pOS_CreateUpfrontLayer((struct pOS_LayerInfo*)li,
          (struct pOS_GfxMap*)bm,&Rect,flags,(struct pOS_GfxMap*)bm2));
}

struct Layer *CreateBehindHookLayer( struct Layer_Info *li, struct BitMap *bm,
        long x0, long y0, long x1, long y1, long flags, struct Hook *hook,
        struct BitMap *bm2 )
{
  struct pOS_Rectangle Rect;
  Rect.MinX=x0; Rect.MinY=y0;  Rect.MaxX=x1; Rect.MaxY=y1;
  return((struct Layer*)pOS_CreateBehindLayer((struct pOS_LayerInfo*)li,
          (struct pOS_GfxMap*)bm,&Rect,flags,(struct pOS_GfxMap*)bm2));
}



void SwapBitsRastPortClipRect( struct RastPort *rp, struct ClipRect *cr )
{}
struct Hook *InstallLayerHook( struct Layer *layer, struct Hook *hook )
{return(0);}
struct Hook *InstallLayerInfoHook( struct Layer_Info *li, struct Hook *hook )
{return(0);}

#endif  /** __IGNORE_NOT_SUPPORTED__ **/





#endif
