deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * mipointer.h
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCopyright 1989, 1998 The Open Group
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncthe above copyright notice appear in all copies and that both that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynccopyright notice and this permission notice appear in supporting
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncThe above copyright notice and this permission notice shall be included in
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncall copies or substantial portions of the Software.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncExcept as contained in this notice, the name of The Open Group shall not be
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncused in advertising or otherwise to promote the sale, use or other dealings
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncin this Software without prior written authorization from The Open Group.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef MIPOINTER_H
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define MIPOINTER_H
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "cursor.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "input.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _miPointerSpriteFuncRec {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool (*RealizeCursor)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /* pScr */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CursorPtr /* pCurs */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool (*UnrealizeCursor)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /* pScr */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CursorPtr /* pCurs */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*SetCursor)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /* pScr */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CursorPtr /* pCurs */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* x */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* y */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*MoveCursor)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /* pScr */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* x */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* y */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} miPointerSpriteFuncRec, *miPointerSpriteFuncPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _miPointerScreenFuncRec {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool (*CursorOffScreen)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr* /* ppScr */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* /* px */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* /* py */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*CrossScreen)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /* pScr */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* entering */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*WarpCursor)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /* pScr */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* x */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* y */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*EnqueueEvent)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xEventPtr /* event */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*NewEventScreen)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /* pScr */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool /* fromDIX */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} miPointerScreenFuncRec, *miPointerScreenFuncPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool miDCInitialize(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync miPointerScreenFuncPtr /*screenFuncs*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool miPointerInitialize(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync miPointerSpriteFuncPtr /*spriteFuncs*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync miPointerScreenFuncPtr /*screenFuncs*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool /*waitForUpdate*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void miPointerWarpCursor(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*x*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*y*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int miPointerGetMotionBufferSize(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int miPointerGetMotionEvents(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*pPtr*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xTimecoord * /*coords*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long /*start*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long /*stop*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void miPointerUpdate(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void miPointerDeltaCursor(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*dx*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*dy*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long /*time*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void miPointerAbsoluteCursor(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*x*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*y*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long /*time*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void miPointerPosition(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int * /*x*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int * /*y*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void miPointerSetNewScreen(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int, /*screen_no*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int, /*x*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*y*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern ScreenPtr miPointerCurrentScreen(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void miRegisterPointerDevice(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*pDevice*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int miPointerScreenIndex;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif /* MIPOINTER_H */