ui/src/xvbt/XScrnPxmp.i3


 Copyright (C) 1992, Digital Equipment Corporation 
 All rights reserved. 
 See the file COPYRIGHT for a full description. 
 
 by Steve Glassman, Mark Manasse and Greg Nelson 
 Last modified on Wed Oct 16 14:08:23 PDT 1996 by msm     
      modified on Fri Mar 11 15:30:30 PST 1994 by gnelson 
      modified on Mon Feb 24 13:59:53 PST 1992 by muller 
<*PRAGMA LL*>

UNSAFE INTERFACE XScrnPxmp;

IMPORT Rect, ScrnPixmap, X, XScreenType, XScrnTpRep, TrestleComm;

REVEAL XScreenType.T <: T;

TYPE
  T_Pub = XScrnTpRep.Public OBJECT END;
  T <: T_Pub;

PROCEDURE NewOracle (st: XScreenType.T): ScrnPixmap.Oracle RAISES {};

PROCEDURE FromXPixmap (         st    : XScreenType.T;
                                xpm   : X.Pixmap;
                       READONLY bounds: Rect.T;
                                depth : INTEGER        ): ScrnPixmap.T;
<* LL.sup = st.trsl *>
Construct and return the screen pixmap of type st whose contents are those of xpm, which has the given bounds and depth.

PROCEDURE FakeCapture (         st    : XScreenType.T;
                                w     : X.Drawable;
                       READONLY bounds: Rect.T;
                                depth : INTEGER        ): ScrnPixmap.T;
<* LL.sup = st.trsl *>
Construct and return the lazy screen pixmap of type st whose contents initially reference the drawable w, which has the given bounds and depth.

PROCEDURE FinishCapture (st: XScreenType.T; pmId: INTEGER; xpm: X.Pixmap);
<* LL.sup = st.trsl *>
Change the lazy pixmap whose id is pmId to reference the drawable xpm, and mark the pixmap unlazy.

PROCEDURE IsLazy(st: XScreenType.T; pmId: INTEGER): BOOLEAN;
<* LL.sup = st.trsl *>
Return whether pmId is lazy

PROCEDURE GetDrawable(st: XScreenType.T; pmId: INTEGER): X.Drawable;
<* LL.sup = st.trsl *>
Return the drawable assoiciated with pmId

PROCEDURE PixmapGeneration (st: XScreenType.T; pmId: INTEGER): INTEGER;
<* LL.sup = st.trsl *>
return an integer which, together with equality of pmId, guarantees that the underlying pixmap is unchanged.

PROCEDURE PixmapDomain (st: XScreenType.T; pmId: INTEGER): Rect.T;
<* LL.sup = st.trsl *>
return the domain of the ScrnPixmap.T whose id is pmId.

PROCEDURE PixmapFromRaw (st: XScreenType.T; pm: ScrnPixmap.Raw): X.Pixmap
  RAISES {TrestleComm.Failure}; <* LL.sup = st.trsl *>

END XScrnPxmp.