dmxcursor.h File Reference
#include "mipointer.h"

Go to the source code of this file.

Data Structures

struct  _dmxCursorPriv

Defines

#define DMX_GET_CURSOR_PRIV(_pCursor, _pScreen)
#define DMX_SET_CURSOR_PRIV(_pCursor, _pScreen, v)   dixSetPrivate(&(_pCursor)->devPrivates, CursorScreenKey(_pScreen), v)

Typedefs

typedef struct _dmxCursorPriv dmxCursorPrivRec
typedef struct _dmxCursorPrivdmxCursorPrivPtr

Functions

void dmxReInitOrigins (void)
void dmxInitOrigins (void)
void dmxInitOverlap (void)
void dmxCursorNoMulti (void)
void dmxMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
void dmxCheckCursor (void)
int dmxOnScreen (int x, int y, DMXScreenInfo *dmxScreen)
void dmxHideCursor (DMXScreenInfo *dmxScreen)
void dmxBECreateCursor (ScreenPtr pScreen, CursorPtr pCursor)
Bool dmxBEFreeCursor (ScreenPtr pScreen, CursorPtr pCursor)

Variables

miPointerScreenFuncRec dmxPointerCursorFuncs
miPointerSpriteFuncRec dmxPointerSpriteFuncs

Detailed Description

Interface for cursor support.

See also:
dmxcursor.c.

Define Documentation

#define DMX_GET_CURSOR_PRIV (   _pCursor,
  _pScreen 
)
Value:
((dmxCursorPrivPtr) \
    dixLookupPrivate(&(_pCursor)->devPrivates, CursorScreenKey(_pScreen)))

Referenced by _dmxRealizeCursor(), _dmxSetCursor(), _dmxUnrealizeCursor(), dmxBECreateCursor(), and dmxBEFreeCursor().

#define DMX_SET_CURSOR_PRIV (   _pCursor,
  _pScreen,
 
)    dixSetPrivate(&(_pCursor)->devPrivates, CursorScreenKey(_pScreen), v)

Typedef Documentation

typedef struct _dmxCursorPriv * dmxCursorPrivPtr

Cursor private area.


Function Documentation

Bool dmxBEFreeCursor ( ScreenPtr  pScreen,
CursorPtr  pCursor 
)

Free pCursor on the back-end associated with pScreen.

References _DMXScreenInfo::beDisplay, _dmxCursorPriv::cursor, DMX_GET_CURSOR_PRIV, and dmxScreens.

Referenced by _dmxUnrealizeCursor(), and dmxBEDestroyResources().

void dmxCursorNoMulti ( void  )

Turn off support for displaying multiple cursors on overlapped back-end displays. See dmxCursorDoMultiCursors.

References dmxCursorDoMultiCursors.

Referenced by ddxProcessArgument().

void dmxHideCursor ( DMXScreenInfo dmxScreen)

This routine is used by the backend input routines to hide the cursor on a screen that is being used for relative input.

See also:
dmxbackend.c

References _dmxSetCursor(), dmxGetGlobalPosition(), and _DMXScreenInfo::index.

Referenced by dmxBackendUpdatePosition().

void dmxInitOverlap ( void  )

Detects overlapping dmxScreens and creates circular lists. This uses an O(dmxNumScreens^2) algorithm, but dmxNumScreens is < 100 and the computation only needs to be performed for every server generation or dynamic reconfiguration .

References _DMXScreenInfo::cursorNotShared, DMXDBG6, dmxDoesOverlap(), dmxInfo, dmxIterateOverlap(), dmxLog(), dmxLogOutput(), dmxLogOutputCont(), dmxNumScreens, dmxPrintOverlap(), dmxPropertyIterate(), dmxScreens, dmxTestSameDisplay(), _DMXScreenInfo::index, _DMXScreenInfo::name, and _DMXScreenInfo::over.

Referenced by dmxAdjustCursorBoundaries(), and InitOutput().

void dmxMoveCursor ( DeviceIntPtr  pDev,
ScreenPtr  pScreen,
int  x,
int  y 
)

Move the cursor to coordinates (x, y)on pScreen. This function is usually called via dmxPointerSpriteFuncs, except during reconfiguration when the cursor is repositioned to force an update on newley overlapping screens and on screens that no longer overlap.

The coords (x,y) are in global coord space. We'll loop over the back-end screens and see if they contain the global coord. If so, call _dmxMoveCursor() (XWarpPointer) to position the pointer on that screen.

References _dmxMoveCursor(), _dmxRealizeCursor(), _dmxSetCursor(), _DMXScreenInfo::cursor, _DMXScreenInfo::cursorNotShared, _DMXScreenInfo::cursorVisible, dmxCursorDoMultiCursors, DMXDBG3, dmxFindCursor(), dmxOnScreen(), dmxScreens, _DMXScreenInfo::index, _DMXScreenInfo::over, _DMXScreenInfo::rootXOrigin, and _DMXScreenInfo::rootYOrigin.


Variable Documentation

miPointerScreenFuncRec dmxPointerCursorFuncs

Cursor functions for mi layer.

See also:
dmxcursor.c
dmxscrinit.c

Referenced by dmxScreenInit().

miPointerSpriteFuncRec dmxPointerSpriteFuncs

Sprite functions for mi layer.

See also:
dmxcursor.c
dmxscrinit.c

Referenced by dmxScreenInit().