1/* 2 * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina. 3 * 4 * All Rights Reserved. 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining 7 * a copy of this software and associated documentation files (the 8 * "Software"), to deal in the Software without restriction, including 9 * without limitation on the rights to use, copy, modify, merge, 10 * publish, distribute, sublicense, and/or sell copies of the Software, 11 * and to permit persons to whom the Software is furnished to do so, 12 * subject to the following conditions: 13 * 14 * The above copyright notice and this permission notice (including the 15 * next paragraph) shall be included in all copies or substantial 16 * portions of the Software. 17 * 18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS 22 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 23 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 25 * SOFTWARE. 26 */ 27 28/* 29 * Authors: 30 * David H. Dawes <dawes@xfree86.org> 31 * Kevin E. Martin <kem@redhat.com> 32 * Rickard E. (Rik) Faith <faith@redhat.com> 33 * 34 */ 35 36/** \file 37 * Interface for cursor support. \see dmxcursor.c. */ 38 39#ifndef DMXCURSOR_H 40#define DMXCURSOR_H 41 42#include "mipointer.h" 43 44/** Cursor private area. */ 45typedef struct _dmxCursorPriv { 46 Cursor cursor; 47} dmxCursorPrivRec, *dmxCursorPrivPtr; 48 49/** Cursor functions for mi layer. \see dmxcursor.c \see dmxscrinit.c */ 50extern miPointerScreenFuncRec dmxPointerCursorFuncs; 51/** Sprite functions for mi layer. \see dmxcursor.c \see dmxscrinit.c */ 52extern miPointerSpriteFuncRec dmxPointerSpriteFuncs; 53 54extern void dmxReInitOrigins(void); 55extern void dmxInitOrigins(void); 56extern void dmxInitOverlap(void); 57extern void dmxCursorNoMulti(void); 58extern void dmxMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y); 59extern void dmxCheckCursor(void); 60extern int dmxOnScreen(int x, int y, DMXScreenInfo *dmxScreen); 61extern void dmxHideCursor(DMXScreenInfo *dmxScreen); 62 63extern void dmxBECreateCursor(ScreenPtr pScreen, CursorPtr pCursor); 64extern Bool dmxBEFreeCursor(ScreenPtr pScreen, CursorPtr pCursor); 65 66#define DMX_GET_CURSOR_PRIV(_pCursor, _pScreen) ((dmxCursorPrivPtr) \ 67 dixLookupPrivate(&(_pCursor)->devPrivates, CursorScreenKey(_pScreen))) 68 69#define DMX_SET_CURSOR_PRIV(_pCursor, _pScreen, v) \ 70 dixSetPrivate(&(_pCursor)->devPrivates, CursorScreenKey(_pScreen), v) 71 72#endif /* DMXCURSOR_H */ 73