#include "quartz.h"
#include "xpr.h"
-#include "darwin.h"
#include "darwinEvents.h"
#include <Xplugin.h>
#include "x-hash.h"
typedef struct {
- int cursorVisible;
- QueryBestSizeProcPtr QueryBestSize;
- miPointerSpriteFuncPtr spriteFuncs;
+ int cursorVisible;
+ QueryBestSizeProcPtr QueryBestSize;
+ miPointerSpriteFuncPtr spriteFuncs;
} QuartzCursorScreenRec, *QuartzCursorScreenPtr;
static DevPrivateKeyRec darwinCursorScreenKeyRec;
#define darwinCursorScreenKey (&darwinCursorScreenKeyRec)
#define CURSOR_PRIV(pScreen) ((QuartzCursorScreenPtr) \
- dixLookupPrivate(&pScreen->devPrivates, darwinCursorScreenKey))
+ dixLookupPrivate(&pScreen->devPrivates, \
+ darwinCursorScreenKey))
static Bool
load_cursor(CursorPtr src, int screen)
hot_y = src->bits->yhot;
#ifdef ARGB_CURSOR
- if (src->bits->argb != NULL)
- {
+ if (src->bits->argb != NULL) {
#if BITMAP_BIT_ORDER == MSBFirst
- rowbytes = src->bits->width * sizeof (CARD32);
- data = (uint32_t *) src->bits->argb;
+ rowbytes = src->bits->width * sizeof(CARD32);
+ data = (uint32_t *)src->bits->argb;
#else
- const uint32_t *be_data=(uint32_t *) src->bits->argb;
+ const uint32_t *be_data = (uint32_t *)src->bits->argb;
unsigned i;
- rowbytes = src->bits->width * sizeof (CARD32);
+ rowbytes = src->bits->width * sizeof(CARD32);
data = malloc(rowbytes * src->bits->height);
free_data = TRUE;
- if(!data) {
+ if (!data) {
FatalError("Failed to allocate memory in %s\n", __func__);
}
- for(i=0;i<(src->bits->width*src->bits->height);i++)
- data[i]=ntohl(be_data[i]);
+ for (i = 0; i < (src->bits->width * src->bits->height); i++)
+ data[i] = ntohl(be_data[i]);
#endif
}
else
rowbytes = ((src->bits->width * 4) + 31) & ~31;
data = malloc(rowbytes * src->bits->height);
free_data = TRUE;
- if(!data) {
+ if (!data) {
FatalError("Failed to allocate memory in %s\n", __func__);
}
-
- if (!src->bits->emptyMask)
- {
+
+ if (!src->bits->emptyMask) {
ycount = src->bits->height;
- srow = src->bits->source; mrow = src->bits->mask;
+ srow = src->bits->source;
+ mrow = src->bits->mask;
drow = data;
while (ycount-- > 0)
{
xcount = bits_to_bytes(src->bits->width);
- sptr = srow; mptr = mrow;
+ sptr = srow;
+ mptr = mrow;
dptr = drow;
while (xcount-- > 0)
uint8_t s, m;
int i;
- s = *sptr++; m = *mptr++;
- for (i = 0; i < 8; i++)
- {
+ s = *sptr++;
+ m = *mptr++;
+ for (i = 0; i < 8; i++) {
#if BITMAP_BIT_ORDER == MSBFirst
if (m & 128)
*dptr++ = (s & 128) ? fg_color : bg_color;
else
*dptr++ = 0;
- s <<= 1; m <<= 1;
+ s <<= 1;
+ m <<= 1;
#else
if (m & 1)
*dptr++ = (s & 1) ? fg_color : bg_color;
else
*dptr++ = 0;
- s >>= 1; m >>= 1;
+ s >>= 1;
+ m >>= 1;
#endif
}
}
srow += BitmapBytePad(src->bits->width);
mrow += BitmapBytePad(src->bits->width);
- drow = (uint32_t *) ((char *) drow + rowbytes);
+ drow = (uint32_t *)((char *)drow + rowbytes);
}
}
- else
- {
+ else {
memset(data, 0, src->bits->height * rowbytes);
}
}
err = xp_set_cursor(width, height, hot_x, hot_y, data, rowbytes);
- if(free_data)
+ if (free_data)
free(data);
return err == Success;
}
-
/*
-===========================================================================
+ ===========================================================================
- Pointer sprite functions
+ Pointer sprite functions
-===========================================================================
-*/
+ ===========================================================================
+ */
/*
* QuartzRealizeCursor
static Bool
QuartzRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
{
- if(pCursor == NULL || pCursor->bits == NULL)
+ if (pCursor == NULL || pCursor->bits == NULL)
return FALSE;
/* FIXME: cache ARGB8888 representation? */
return TRUE;
}
-
/*
* QuartzUnrealizeCursor
* Free the storage space associated with a realized cursor.
return TRUE;
}
-
/*
* QuartzSetCursor
* Set the cursor sprite and position.
*/
static void
-QuartzSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x, int y)
+QuartzSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor,
+ int x,
+ int y)
{
QuartzCursorScreenPtr ScreenPriv = CURSOR_PRIV(pScreen);
if (!XQuartzServerVisible)
return;
- if (pCursor == NULL)
- {
- if (ScreenPriv->cursorVisible)
- {
+ if (pCursor == NULL) {
+ if (ScreenPriv->cursorVisible) {
xp_hide_cursor();
ScreenPriv->cursorVisible = FALSE;
}
}
- else
- {
+ else {
load_cursor(pCursor, pScreen->myNum);
- if (!ScreenPriv->cursorVisible)
- {
+ if (!ScreenPriv->cursorVisible) {
xp_show_cursor();
ScreenPriv->cursorVisible = TRUE;
}
*/
static void
QuartzMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
-{
-}
+{}
/*
-===========================================================================
+ ===========================================================================
- Pointer screen functions
+ Pointer screen functions
-===========================================================================
-*/
+ ===========================================================================
+ */
/*
* QuartzCursorOffScreen
return FALSE;
}
-
/*
* QuartzCrossScreen
*/
return;
}
-
/*
* QuartzWarpCursor
* Change the cursor position without generating an event or motion history.
static void
QuartzWarpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
{
- if (XQuartzServerVisible)
- {
+ if (XQuartzServerVisible) {
int sx, sy;
sx = pScreen->x + darwinMainScreenX;
miPointerUpdateSprite(pDev);
}
-
static miPointerScreenFuncRec quartzScreenFuncsRec = {
QuartzCursorOffScreen,
QuartzCrossScreen,
QuartzWarpCursor,
- NULL,
- NULL
};
-
/*
-===========================================================================
+ ===========================================================================
- Other screen functions
+ Other screen functions
-===========================================================================
-*/
+ ===========================================================================
+ */
/*
* QuartzCursorQueryBestSize
{
QuartzCursorScreenPtr ScreenPriv = CURSOR_PRIV(pScreen);
- if (class == CursorShape)
- {
+ if (class == CursorShape) {
/* FIXME: query window server? */
*width = 32;
*height = 32;
}
- else
- {
+ else {
(*ScreenPriv->QueryBestSize)(class, width, height, pScreen);
}
}
return FALSE;
if (!dixRegisterPrivateKey(&darwinCursorScreenKeyRec, PRIVATE_SCREEN, 0))
- return FALSE;
+ return FALSE;
ScreenPriv = calloc(1, sizeof(QuartzCursorScreenRec));
if (ScreenPriv == NULL)
PointPriv->spriteFuncs->UnrealizeCursor = QuartzUnrealizeCursor;
PointPriv->spriteFuncs->SetCursor = QuartzSetCursor;
PointPriv->spriteFuncs->MoveCursor = QuartzMoveCursor;
-
+
ScreenPriv->cursorVisible = TRUE;
return TRUE;
}
*/
void
QuartzSuspendXCursor(ScreenPtr pScreen)
-{
-}
-
+{}
/*
* QuartzResumeXCursor
CursorPtr pCursor;
/* TODO: Tablet? */
-
+
pWin = GetSpriteWindow(darwinPointer);
if (pWin->drawable.pScreen != pScreen)
return;