/******************************Module*Header*******************************\ * Module Name: exclude.hxx * * Handles sprite exclusion. * * Created: 13-Sep-1990 16:29:44 * Author: Charles Whitmer [chuckwh] * * Copyright (c) 1990-1999 Microsoft Corporation \**************************************************************************/ class EWNDOBJ; /*********************************Class************************************\ * DEVEXCLUDEWNDOBJ * * Excludes any sprites from the given WNDOBJ area. * * 16-Sep-1997 -by- J. Andrew Goossen [andrewgo] * Wrote it. \**************************************************************************/ class DEVEXCLUDEWNDOBJ { private: EWNDOBJ* pwo; public: DEVEXCLUDEWNDOBJ() { pwo = NULL; } DEVEXCLUDEWNDOBJ(EWNDOBJ* _pwo) { vExclude(_pwo); } VOID vExclude(EWNDOBJ* _pwo) { pwo = _pwo; EngControlSprites((WNDOBJ*) pwo, ECS_TEARDOWN); } ~DEVEXCLUDEWNDOBJ() { if (pwo != NULL) EngControlSprites((WNDOBJ*) pwo, ECS_REDRAW); } }; /*********************************Class************************************\ * DEVEXCLUDERECT * * Excludes any sprites from the given rectangular area. * * 16-Sep-1997 -by- J. Andrew Goossen [andrewgo] * Wrote it. \**************************************************************************/ class DEVEXCLUDERECT { private: BOOL bUnTearDown; HDEV hdev; RECTL rcl; public: DEVEXCLUDERECT() { bUnTearDown = FALSE; } DEVEXCLUDERECT(HDEV _hdev, RECTL* _prcl) { vExclude(_hdev, _prcl); } VOID vExclude(HDEV _hdev, RECTL* _prcl) { hdev = _hdev; rcl = *_prcl; bUnTearDown = bSpTearDownSprites(hdev, _prcl, FALSE); } ~DEVEXCLUDERECT() { if (bUnTearDown) vSpUnTearDownSprites(hdev, &rcl, FALSE); } }; /*********************************Class************************************\ * DEVEXCLUDEOBJ * * Excludes the cursor from the given area. * * History: * Thu 14-Apr-1994 -by- Patrick Haluptzok [patrickh] * Optimize / make Async pointers work * * Mon 24-Aug-1992 -by- Patrick Haluptzok [patrickh] * destructor inline for common case, support for Drag Rect exclusion. * * Wed 06-May-1992 17:04:37 -by- Charles Whitmer [chuckwh] * Rewrote for new pointer scheme. * * Mon 09-Sep-1991 -by- Patrick Haluptzok [patrickh] * Change constructors to allow conditional initialization. * * Thu 13-Sep-1990 16:30:14 -by- Charles Whitmer [chuckwh] * Wrote some stubs. \**************************************************************************/ #define REDRAW_CURSOR 0x0001 #define REDRAW_DRAGRECT 0x0002 #define REDRAW_SPRITES 0x0004 // *** NOTE: DEVEXCLUDEOBJ is obsolete. *** class DEVEXCLUDEOBJ /* dxo */ { public: // vExclude -- Excludes the pointer. VOID vExclude(HDEV,RECTL *,ECLIPOBJ *) {} // vExclude2 -- Like vExclude, but also checks against an offset ECLIPOBJ. VOID vExclude2(HDEV,RECTL *,ECLIPOBJ *,POINTL *) {} VOID vExcludeDC(XDCOBJ dco, RECTL *prcl) {} VOID vExcludeDC_CLIP(XDCOBJ dco, RECTL *prcl, ECLIPOBJ *pco) {} VOID vExcludeDC_CLIP2(XDCOBJ dco,RECTL *prcl,ECLIPOBJ *pco,POINTL *pptl) {} // Constructor -- Allows vExclude to be called optionally. DEVEXCLUDEOBJ() {} // Constructor -- Maybe take down the pointer. DEVEXCLUDEOBJ(XDCOBJ dco,RECTL *prcl) {} DEVEXCLUDEOBJ(XDCOBJ dco,RECTL *prcl,ECLIPOBJ *pco) {} DEVEXCLUDEOBJ(XDCOBJ dco,RECTL *prcl,ECLIPOBJ *pco,POINTL *pptl) {} // Destructor -- Do cleanup. VOID vReplaceStuff() {} VOID vTearDownDragRect(HDEV _hdev, RECTL *prcl) {} VOID vForceDragRectRedraw(HDEV hdev_, BOOL b) {} // vDestructor -- manual version of the normal C++ destructor; needed // by the C-callable OpenGL interface. VOID vDestructor() {} ~DEVEXCLUDEOBJ() {} // vInit -- Initialize. VOID vInit() {} };