a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/*
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * mipointer.h
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync *
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* $Xorg: mipointer.h,v 1.4 2001/02/09 02:05:21 xorgcvs Exp $ */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/*
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncCopyright 1989, 1998 The Open Group
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncPermission to use, copy, modify, distribute, and sell this software and its
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncdocumentation for any purpose is hereby granted without fee, provided that
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncthe above copyright notice appear in all copies and that both that
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynccopyright notice and this permission notice appear in supporting
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncdocumentation.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncThe above copyright notice and this permission notice shall be included in
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncall copies or substantial portions of the Software.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncExcept as contained in this notice, the name of The Open Group shall not be
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncused in advertising or otherwise to promote the sale, use or other dealings
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncin this Software without prior written authorization from The Open Group.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* $XFree86: xc/programs/Xserver/mi/mipointer.h,v 3.9 2001/12/14 20:00:24 dawes Exp $ */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifndef MIPOINTER_H
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define MIPOINTER_H
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#include "cursor.h"
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#include "input.h"
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _miPointerSpriteFuncRec {
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool (*RealizeCursor)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /* pScr */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CursorPtr /* pCurs */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync );
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool (*UnrealizeCursor)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /* pScr */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CursorPtr /* pCurs */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync );
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void (*SetCursor)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /* pScr */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CursorPtr /* pCurs */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* x */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* y */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync );
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void (*MoveCursor)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /* pScr */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* x */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* y */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync );
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync} miPointerSpriteFuncRec, *miPointerSpriteFuncPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _miPointerScreenFuncRec {
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool (*CursorOffScreen)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr* /* ppScr */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int* /* px */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int* /* py */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync );
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void (*CrossScreen)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /* pScr */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* entering */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync );
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void (*WarpCursor)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /* pScr */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* x */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* y */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync );
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void (*EnqueueEvent)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr /* event */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync );
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void (*NewEventScreen)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /* pScr */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool /* fromDIX */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync );
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync} miPointerScreenFuncRec, *miPointerScreenFuncPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool miDCInitialize(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /*pScreen*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync miPointerScreenFuncPtr /*screenFuncs*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool miPointerInitialize(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /*pScreen*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync miPointerSpriteFuncPtr /*spriteFuncs*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync miPointerScreenFuncPtr /*screenFuncs*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool /*waitForUpdate*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void miPointerWarpCursor(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /*pScreen*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*x*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*y*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int miPointerGetMotionBufferSize(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int miPointerGetMotionEvents(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /*pPtr*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xTimecoord * /*coords*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*start*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*stop*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /*pScreen*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void miPointerUpdate(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void miPointerDeltaCursor(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dx*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dy*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*time*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void miPointerAbsoluteCursor(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*x*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*y*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*time*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void miPointerPosition(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*x*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*y*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#undef miRegisterPointerDevice
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void miRegisterPointerDevice(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /*pScreen*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DevicePtr /*pDevice*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void miPointerSetNewScreen(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int, /*screen_no*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int, /*x*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*y*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern ScreenPtr miPointerCurrentScreen(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define miRegisterPointerDevice(pScreen,pDevice) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync _miRegisterPointerDevice(pScreen,pDevice)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void _miRegisterPointerDevice(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ScreenPtr /*pScreen*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /*pDevice*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int miPointerScreenIndex;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* MIPOINTER_H */