Preparing for the win32k emulated mouse cursor support.

svn path=/trunk/; revision=7714
This commit is contained in:
Filip Navara 2004-01-17 15:21:09 +00:00
parent 6020629df1
commit 698d0a3be5
5 changed files with 81 additions and 45 deletions

View file

@ -1507,11 +1507,34 @@ EngSaveFloatingPointState
EngSecureMem
EngSetEvent
EngSetLastError
EngSetPointerShape
EngSetPointerTag
EngSetPrinterData
*/
ULONG
STDCALL
EngSetPointerShape(
IN SURFOBJ *pso,
IN SURFOBJ *psoMask,
IN SURFOBJ *psoColor,
IN XLATEOBJ *pxlo,
IN LONG xHot,
IN LONG yHot,
IN LONG x,
IN LONG y,
IN RECTL *prcl,
IN FLONG fl
);
VOID
STDCALL
EngMovePointer(
IN SURFOBJ *pso,
IN LONG x,
IN LONG y,
IN RECTL *prcl
);
typedef int CDECL (*SORTCOMP)(const void *Elem1, const void *Elem2);
void STDCALL

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: mouse.c,v 1.55 2004/01/16 19:32:00 gvg Exp $
/* $Id: mouse.c,v 1.56 2004/01/17 15:20:25 navaraf Exp $
*
* PROJECT: ReactOS kernel
* PURPOSE: Mouse
@ -532,4 +532,41 @@ EnableMouse(HDC hDisplayDC)
}
}
}
ULONG
STDCALL
EngSetPointerShape(
IN SURFOBJ *pso,
IN SURFOBJ *psoMask,
IN SURFOBJ *psoColor,
IN XLATEOBJ *pxlo,
IN LONG xHot,
IN LONG yHot,
IN LONG x,
IN LONG y,
IN RECTL *prcl,
IN FLONG fl
)
{
// www.osr.com/ddk/graphics/gdifncs_1y5j.htm
UNIMPLEMENTED;
return 0;
}
/*
* @unimplemented
*/
VOID
STDCALL
EngMovePointer(
IN SURFOBJ *pso,
IN LONG x,
IN LONG y,
IN RECTL *prcl
)
{
// www.osr.com/ddk/graphics/gdifncs_8wfb.htm
UNIMPLEMENTED;
}
/* EOF */

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: objects.h,v 1.25 2004/01/16 19:32:00 gvg Exp $
/* $Id: objects.h,v 1.26 2004/01/17 15:20:25 navaraf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -138,7 +138,7 @@ typedef VOID STDCALL (*PFN_Synchronize)(DHPDEV, RECTL *);
typedef VOID STDCALL (*PFN_MovePointer)(SURFOBJ *, LONG, LONG, RECTL *);
typedef ULONG STDCALL (*PFN_SetPointerShape)(SURFOBJ *, SURFOBJ *, SURFOBJ *, XLATEOBJ *,
LONG, LONG, LONG, LONG, RECTL *, ULONG);
LONG, LONG, LONG, LONG, RECTL *, FLONG);
typedef HBITMAP STDCALL (*PFN_CreateDeviceBitmap)(DHPDEV, SIZEL, ULONG);

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: cursoricon.c,v 1.43 2004/01/16 19:32:00 gvg Exp $ */
/* $Id: cursoricon.c,v 1.44 2004/01/17 15:20:25 navaraf Exp $ */
#undef WIN32_LEAN_AND_MEAN
@ -227,6 +227,21 @@ IntSetCursor(PWINSTATION_OBJECT WinStaObject, PCURICON_OBJECT NewCursor, BOOL Fo
&PointerRect,
SPS_CHANGE);
ExReleaseFastMutex(SurfGDI->DriverLock);
if(SurfGDI->PointerStatus == SPS_DECLINE)
{
SurfGDI->SetPointerShape = EngSetPointerShape;
SurfGDI->MovePointer = EngMovePointer;
EngSetPointerShape(SurfObj, soMask, soColor, XlateObj,
NewCursor->IconInfo.xHotspot,
NewCursor->IconInfo.yHotspot,
CurInfo->x,
CurInfo->y,
&PointerRect,
SPS_CHANGE);
DbgPrint("SetCursor: DrvSetPointerShape() returned SPS_DECLINE\n");
}
SetPointerRect(CurInfo, &PointerRect);
if(hMask)
@ -242,9 +257,7 @@ IntSetCursor(PWINSTATION_OBJECT WinStaObject, PCURICON_OBJECT NewCursor, BOOL Fo
EngDeleteXlate(XlateObj);
}
if(SurfGDI->PointerStatus == SPS_DECLINE)
DbgPrint("SetCursor: DrvSetPointerShape() returned SPS_DECLINE\n");
else if(SurfGDI->PointerStatus == SPS_ERROR)
if(SurfGDI->PointerStatus == SPS_ERROR)
DbgPrint("SetCursor: DrvSetPointerShape() returned SPS_ERROR\n");
return Ret;

View file

@ -531,23 +531,6 @@ EngMarkBandingSurface ( IN HSURF hsurf )
return FALSE;
}
/*
* @unimplemented
*/
VOID
STDCALL
EngMovePointer(
IN SURFOBJ *pso,
IN LONG x,
IN LONG y,
IN RECTL *prcl
)
{
// www.osr.com/ddk/graphics/gdifncs_8wfb.htm
UNIMPLEMENTED;
}
INT
STDCALL
EngMultiByteToWideChar(
@ -606,26 +589,6 @@ EngSaveFloatingPointState(
return 0;
}
ULONG
STDCALL
EngSetPointerShape(
IN SURFOBJ *pso,
IN SURFOBJ *psoMask,
IN SURFOBJ *psoColor,
IN XLATEOBJ *pxlo,
IN LONG xHot,
IN LONG yHot,
IN LONG x,
IN LONG y,
IN RECTL *prcl,
IN FLONG fl
)
{
// www.osr.com/ddk/graphics/gdifncs_1y5j.htm
UNIMPLEMENTED;
return 0;
}
BOOL
STDCALL
EngSetPointerTag(