1538 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			1538 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|  *Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
 | |
|  *
 | |
|  *Permission is hereby granted, free of charge, to any person obtaining
 | |
|  * a copy of this software and associated documentation files (the
 | |
|  *"Software"), to deal in the Software without restriction, including
 | |
|  *without limitation the rights to use, copy, modify, merge, publish,
 | |
|  *distribute, sublicense, and/or sell copies of the Software, and to
 | |
|  *permit persons to whom the Software is furnished to do so, subject to
 | |
|  *the following conditions:
 | |
|  *
 | |
|  *The above copyright notice and this permission notice shall be
 | |
|  *included in all copies or substantial portions of the Software.
 | |
|  *
 | |
|  *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | |
|  *EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | |
|  *MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | |
|  *NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR
 | |
|  *ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
 | |
|  *CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 | |
|  *WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | |
|  *
 | |
|  *Except as contained in this notice, the name of the XFree86 Project
 | |
|  *shall not be used in advertising or otherwise to promote the sale, use
 | |
|  *or other dealings in this Software without prior written authorization
 | |
|  *from the XFree86 Project.
 | |
|  *
 | |
|  * Authors:	Dakshinamurthy Karra
 | |
|  *		Suhaib M Siddiqi
 | |
|  *		Peter Busch
 | |
|  *		Harold L Hunt II
 | |
|  *		Kensuke Matsuzaki
 | |
|  */
 | |
| /* $XFree86: xc/programs/Xserver/hw/xwin/win.h,v 1.37 2003/10/02 13:30:09 eich Exp $ */
 | |
| 
 | |
| #ifndef _WIN_H_
 | |
| #define _WIN_H_
 | |
| 
 | |
| 
 | |
| #ifndef NO
 | |
| #define NO					0
 | |
| #endif
 | |
| #ifndef YES
 | |
| #define YES					1
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * Build toggles for experimental features
 | |
|  */
 | |
| #define WIN_NATIVE_GDI_SUPPORT			YES
 | |
| #define WIN_LAYER_SUPPORT			NO
 | |
| #define WIN_NEW_KEYBOARD_SUPPORT		NO
 | |
| #define WIN_EMULATE_PSEUDO_SUPPORT		YES
 | |
| #define WIN_UPDATE_STATS			NO
 | |
| 
 | |
| /* Turn debug messages on or off */
 | |
| #define CYGDEBUG				NO
 | |
| 
 | |
| #define NEED_EVENTS
 | |
| 
 | |
| #define WIN_DEFAULT_BPP				0
 | |
| #define WIN_DEFAULT_WHITEPIXEL			255
 | |
| #define WIN_DEFAULT_BLACKPIXEL			0
 | |
| #define WIN_DEFAULT_LINEBIAS			0
 | |
| #define WIN_DEFAULT_E3B_TIME			50 /* milliseconds */
 | |
| #define WIN_DEFAULT_DPI				75
 | |
| #define WIN_DEFAULT_REFRESH			0
 | |
| #define WIN_DEFAULT_WIN_KILL			TRUE
 | |
| #define WIN_DEFAULT_UNIX_KILL			FALSE
 | |
| #define WIN_DEFAULT_CLIP_UPDATES_NBOXES		0
 | |
| #define WIN_DEFAULT_EMULATE_PSEUDO		FALSE
 | |
| #define WIN_DEFAULT_USER_GAVE_HEIGHT_AND_WIDTH	FALSE
 | |
| 
 | |
| #define WIN_DIB_MAXIMUM_SIZE	0x08000000 /* 16 MB on Windows 95, 98, Me */
 | |
| #define WIN_DIB_MAXIMUM_SIZE_MB (WIN_DIB_MAXIMUM_SIZE / 8 / 1024 / 1024)
 | |
| 
 | |
| /*
 | |
|  * Windows only supports 256 color palettes
 | |
|  */
 | |
| #define WIN_NUM_PALETTE_ENTRIES			256
 | |
| 
 | |
| /*
 | |
|  * Number of times to call Restore in an attempt to restore the primary surface
 | |
|  */
 | |
| #define WIN_REGAIN_SURFACE_RETRIES		1
 | |
| 
 | |
| /*
 | |
|  * Build a supported display depths mask by shifting one to the left
 | |
|  * by the number of bits in the supported depth.
 | |
|  */
 | |
| #define WIN_SUPPORTED_BPPS	( (1 << (32 - 1)) | (1 << (24 - 1)) \
 | |
| 				| (1 << (16 - 1)) | (1 << (15 - 1)) \
 | |
| 				| (1 << ( 8 - 1)))
 | |
| #define WIN_CHECK_DEPTH		YES
 | |
| 
 | |
| /*
 | |
|  * Timer IDs for WM_TIMER
 | |
|  */
 | |
| #define WIN_E3B_TIMER_ID		1
 | |
| #define WIN_POLLING_MOUSE_TIMER_ID	2
 | |
| 
 | |
| 
 | |
| #define WIN_E3B_OFF		-1
 | |
| #define WIN_FD_INVALID		-1
 | |
| 
 | |
| #define WIN_SERVER_NONE		0x0L	/* 0 */
 | |
| #define WIN_SERVER_SHADOW_GDI	0x1L	/* 1 */
 | |
| #define WIN_SERVER_SHADOW_DD	0x2L	/* 2 */
 | |
| #define WIN_SERVER_SHADOW_DDNL	0x4L	/* 4 */
 | |
| #define WIN_SERVER_PRIMARY_DD	0x8L	/* 8 */
 | |
| #define WIN_SERVER_NATIVE_GDI	0x10L	/* 16 */
 | |
| 
 | |
| #define AltMapIndex		Mod1MapIndex
 | |
| #define NumLockMapIndex		Mod2MapIndex
 | |
| #define AltLangMapIndex		Mod3MapIndex
 | |
| #define KanaMapIndex		Mod4MapIndex
 | |
| #define ScrollLockMapIndex	Mod5MapIndex
 | |
| 
 | |
| #define WIN_MOD_LALT		0x00000001
 | |
| #define WIN_MOD_RALT		0x00000002
 | |
| #define WIN_MOD_LCONTROL	0x00000004
 | |
| #define WIN_MOD_RCONTROL	0x00000008
 | |
| 
 | |
| #define WIN_24BPP_MASK_RED	0x00FF0000
 | |
| #define WIN_24BPP_MASK_GREEN	0x0000FF00
 | |
| #define WIN_24BPP_MASK_BLUE	0x000000FF
 | |
| 
 | |
| #define WIN_MAX_KEYS_PER_KEY	4
 | |
| 
 | |
| #include <sys/types.h>
 | |
| #include <sys/stat.h>
 | |
| #include <stdio.h>
 | |
| #include <errno.h>
 | |
| #include <pthread.h>
 | |
| 
 | |
| #include <X11/XWDFile.h>
 | |
| 
 | |
| #ifdef HAS_MMAP
 | |
| #include <sys/mman.h>
 | |
| #ifndef MAP_FILE
 | |
| #define MAP_FILE 0
 | |
| #endif /* MAP_FILE */
 | |
| #endif /* HAS_MMAP */
 | |
| 
 | |
| #include "X.h"
 | |
| #include "Xproto.h"
 | |
| #include "Xos.h"
 | |
| #include "Xprotostr.h"
 | |
| #include "scrnintstr.h"
 | |
| #include "pixmapstr.h"
 | |
| #include "pixmap.h"
 | |
| #include "region.h"
 | |
| #include "gcstruct.h"
 | |
| #include "colormap.h"
 | |
| #include "colormapst.h"
 | |
| #include "miscstruct.h"
 | |
| #include "servermd.h"
 | |
| #include "windowstr.h"
 | |
| #include "mi.h"
 | |
| #include "micmap.h"
 | |
| #include "migc.h"
 | |
| #include "mifillarc.h"
 | |
| #include "mifpoly.h"
 | |
| #include "mibstore.h"
 | |
| #include "input.h"
 | |
| #include "mipointer.h"
 | |
| #include "keysym.h"
 | |
| #include "mibstore.h"
 | |
| #include "micoord.h"
 | |
| #include "dix.h"
 | |
| #include "miline.h"
 | |
| #include "shadow.h"
 | |
| #include "fb.h"
 | |
| #include "layer.h"
 | |
| 
 | |
| #ifdef RENDER
 | |
| #include "mipict.h"
 | |
| #include "picturestr.h"
 | |
| #endif
 | |
| 
 | |
| #ifdef RANDR
 | |
| #include "randrstr.h"
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * Windows headers
 | |
|  */
 | |
| #include "winms.h"
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Define Windows constants
 | |
|  */
 | |
| 
 | |
| #define WM_TRAYICON		(WM_USER + 1000)
 | |
| #define WM_INIT_SYS_MENU	(WM_USER + 1001)
 | |
| #define WM_GIVEUP		(WM_USER + 1002)
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Multi-Window Window Manager header
 | |
|  */
 | |
| 
 | |
| #include "winwindow.h"
 | |
| 
 | |
| 
 | |
| /* Cygwin's winuser.h does not define VK_KANA as of 28Mar2001 */
 | |
| /* NOTE: Cygwin's winuser.h was fixed shortly after 28Mar2001. */
 | |
| #ifndef VK_KANA
 | |
| #define VK_KANA 15
 | |
| #endif
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Debugging macros
 | |
|  */
 | |
| 
 | |
| #if CYGDEBUG
 | |
| #define DEBUG_MSG(str,...) \
 | |
| if (fDebugProcMsg) \
 | |
| { \
 | |
|   char *pszTemp; \
 | |
|   int iLength; \
 | |
|   \
 | |
|   iLength = sprintf (NULL, str, ##__VA_ARGS__); \
 | |
|   \
 | |
|   pszTemp = malloc (iLength + 1); \
 | |
|   \
 | |
|   sprintf (pszTemp, str, ##__VA_ARGS__); \
 | |
|   \
 | |
|   MessageBox (NULL, pszTemp, szFunctionName, MB_OK); \
 | |
|   \
 | |
|   free (pszTemp); \
 | |
| }
 | |
| #else
 | |
| #define DEBUG_MSG(str,...)
 | |
| #endif
 | |
| 
 | |
| #if CYGDEBUG
 | |
| #define DEBUG_FN_NAME(str) PTSTR szFunctionName = str
 | |
| #else
 | |
| #define DEBUG_FN_NAME(str)
 | |
| #endif
 | |
| 
 | |
| #if CYGDEBUG || YES
 | |
| #define DEBUGVARS BOOL fDebugProcMsg = FALSE
 | |
| #else
 | |
| #define DEBUGVARS
 | |
| #endif
 | |
| 
 | |
| #if CYGDEBUG || YES
 | |
| #define DEBUGPROC_MSG fDebugProcMsg = TRUE
 | |
| #else
 | |
| #define DEBUGPROC_MSG
 | |
| #endif
 | |
| 
 | |
| /* We use xor this macro for detecting toggle key state changes */
 | |
| #define WIN_XOR(a,b) ((!(a) && (b)) || ((a) && !(b)))
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Typedefs for engine dependent function pointers
 | |
|  */
 | |
| 
 | |
| typedef Bool (*winAllocateFBProcPtr)(ScreenPtr);
 | |
| 
 | |
| typedef void (*winShadowUpdateProcPtr)(ScreenPtr, shadowBufPtr);
 | |
| 
 | |
| typedef Bool (*winCloseScreenProcPtr)(int, ScreenPtr);
 | |
| 
 | |
| typedef Bool (*winInitVisualsProcPtr)(ScreenPtr);
 | |
| 
 | |
| typedef Bool (*winAdjustVideoModeProcPtr)(ScreenPtr);
 | |
| 
 | |
| typedef Bool (*winCreateBoundingWindowProcPtr)(ScreenPtr);
 | |
| 
 | |
| typedef Bool (*winFinishScreenInitProcPtr)(int, ScreenPtr, int, char **);
 | |
| 
 | |
| typedef Bool (*winBltExposedRegionsProcPtr)(ScreenPtr);
 | |
| 
 | |
| typedef Bool (*winActivateAppProcPtr)(ScreenPtr);
 | |
| 
 | |
| typedef Bool (*winRedrawScreenProcPtr)(ScreenPtr pScreen);
 | |
| 
 | |
| typedef Bool (*winRealizeInstalledPaletteProcPtr)(ScreenPtr pScreen);
 | |
| 
 | |
| typedef Bool (*winInstallColormapProcPtr)(ColormapPtr pColormap);
 | |
| 
 | |
| typedef Bool (*winStoreColorsProcPtr)(ColormapPtr pmap, 
 | |
| 				      int ndef, xColorItem *pdefs);
 | |
| 
 | |
| typedef Bool (*winCreateColormapProcPtr)(ColormapPtr pColormap);
 | |
| 
 | |
| typedef Bool (*winDestroyColormapProcPtr)(ColormapPtr pColormap);
 | |
| 
 | |
| typedef Bool (*winHotKeyAltTabProcPtr)(ScreenPtr);
 | |
| 
 | |
| typedef Bool (*winCreatePrimarySurfaceProcPtr)(ScreenPtr);
 | |
| 
 | |
| typedef Bool (*winReleasePrimarySurfaceProcPtr)(ScreenPtr);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * GC (graphics context) privates
 | |
|  */
 | |
| 
 | |
| typedef struct
 | |
| {
 | |
|   HDC			hdc;
 | |
|   HDC			hdcMem;
 | |
| } winPrivGCRec, *winPrivGCPtr;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Pixmap privates
 | |
|  */
 | |
| 
 | |
| typedef struct
 | |
| {
 | |
|   HDC			hdcSelected;
 | |
|   HBITMAP		hBitmap;
 | |
|   BYTE			*pbBits;
 | |
|   DWORD			dwScanlineBytes;
 | |
|   BITMAPINFOHEADER	*pbmih;
 | |
| } winPrivPixmapRec, *winPrivPixmapPtr;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Colormap privates
 | |
|  */
 | |
| 
 | |
| typedef struct
 | |
| {
 | |
|   HPALETTE		hPalette;
 | |
|   LPDIRECTDRAWPALETTE	lpDDPalette;
 | |
|   RGBQUAD		rgbColors[WIN_NUM_PALETTE_ENTRIES];
 | |
|   PALETTEENTRY		peColors[WIN_NUM_PALETTE_ENTRIES];
 | |
| } winPrivCmapRec, *winPrivCmapPtr;
 | |
| 
 | |
| 
 | |
| #if WIN_NEW_KEYBOARD_SUPPORT
 | |
| /*
 | |
|  * Keyboard event structure
 | |
|  */
 | |
| 
 | |
| typedef struct
 | |
| {
 | |
|   DWORD			dwXKeycodes[WIN_MAX_KEYS_PER_KEY];
 | |
|   DWORD			dwReleaseModifiers;
 | |
| } winKeyEventsRec, *winKeyEventsPtr;
 | |
| 
 | |
| #endif /* WIN_NEW_KEYBOARD_SUPPORT */
 | |
| 
 | |
| /*
 | |
|  * Screen information structure that we need before privates are available
 | |
|  * in the server startup sequence.
 | |
|  */
 | |
| 
 | |
| typedef struct
 | |
| {
 | |
|   ScreenPtr		pScreen;
 | |
|   
 | |
|   /* Did the user specify a height and width? */
 | |
|   Bool			fUserGaveHeightAndWidth;
 | |
| 
 | |
|   DWORD			dwScreen;
 | |
|   DWORD			dwUserWidth;
 | |
|   DWORD			dwUserHeight;
 | |
|   DWORD			dwWidth;
 | |
|   DWORD			dwHeight;
 | |
|   DWORD			dwWidth_mm;
 | |
|   DWORD			dwHeight_mm;
 | |
|   DWORD			dwPaddedWidth;
 | |
| 
 | |
|   /*
 | |
|    * dwStride is the number of whole pixels that occupy a scanline,
 | |
|    * including those pixels that are not displayed.  This is basically
 | |
|    * a rounding up of the width.
 | |
|    */
 | |
|   DWORD			dwStride;
 | |
| 
 | |
|   /* Offset of the screen in the window when using scrollbars */
 | |
|   DWORD			dwXOffset;
 | |
|   DWORD			dwYOffset;
 | |
| 
 | |
|   DWORD			dwBPP;
 | |
|   DWORD			dwDepth;
 | |
|   DWORD			dwRefreshRate;
 | |
|   char			*pfb;
 | |
|   XWDColor		*pXWDCmap;
 | |
|   XWDFileHeader		*pXWDHeader;
 | |
|   DWORD			dwEngine;
 | |
|   DWORD			dwEnginePreferred;
 | |
|   DWORD			dwClipUpdatesNBoxes;
 | |
|   Bool			fEmulatePseudo;
 | |
|   Bool			fFullScreen;
 | |
|   Bool			fDecoration;
 | |
|   Bool			fRootless;
 | |
|   Bool			fMultiWindow;
 | |
|   Bool                  fMultipleMonitors;
 | |
|   Bool			fClipboard;
 | |
|   Bool			fLessPointer;
 | |
|   Bool			fScrollbars;
 | |
|   Bool			fNoTrayIcon;
 | |
|   int			iE3BTimeout;
 | |
|   /* Windows (Alt+F4) and Unix (Ctrl+Alt+Backspace) Killkey */
 | |
|   Bool                  fUseWinKillKey;
 | |
|   Bool                  fUseUnixKillKey;
 | |
|   Bool			fIgnoreInput;
 | |
| 
 | |
|   /* Did the user explicitly set this screen? */
 | |
|   Bool			fExplicitScreen;
 | |
| } winScreenInfo, *winScreenInfoPtr;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Screen privates
 | |
|  */
 | |
| 
 | |
| typedef struct _winPrivScreenRec
 | |
| {
 | |
|   winScreenInfoPtr	pScreenInfo;
 | |
| 
 | |
|   Bool			fEnabled;
 | |
|   Bool			fClosed;
 | |
|   Bool			fActive;
 | |
|   Bool			fBadDepth;
 | |
| 
 | |
|   int			iDeltaZ;
 | |
| 
 | |
|   CloseScreenProcPtr	CloseScreen;
 | |
| 
 | |
|   DWORD			dwRedMask;
 | |
|   DWORD			dwGreenMask;
 | |
|   DWORD			dwBlueMask;
 | |
|   DWORD			dwBitsPerRGB;
 | |
| 
 | |
|   DWORD			dwModeKeyStates;
 | |
| 
 | |
|   /* Handle to icons that must be freed */
 | |
|   HICON			hiconNotifyIcon;
 | |
| 
 | |
|   /* Clipboard support */
 | |
|   pthread_t		ptClipboardProc;
 | |
| 
 | |
| #if 0
 | |
|   HWND			hwndNextViewer;
 | |
|   void			*display;
 | |
|   int			window;
 | |
| #endif
 | |
| 
 | |
|   /* Last width, height, and depth of the Windows display */
 | |
|   DWORD			dwLastWindowsWidth;
 | |
|   DWORD			dwLastWindowsHeight;
 | |
|   DWORD			dwLastWindowsBitsPixel;
 | |
| 
 | |
|   /* Layer support */
 | |
| #if WIN_LAYER_SUPPORT
 | |
|   DWORD			dwLayerKind;
 | |
|   LayerPtr		pLayer;
 | |
| #endif
 | |
| 
 | |
|   /* Palette management */
 | |
|   ColormapPtr		pcmapInstalled;
 | |
| 
 | |
|   /* Pointer to the root visual so we only have to look it up once */
 | |
|   VisualPtr		pRootVisual;
 | |
| 
 | |
|   /* 3 button emulation variables */
 | |
|   int			iE3BCachedPress;
 | |
|   Bool			fE3BFakeButton2Sent;
 | |
| 
 | |
|   /* Privates used by shadow fb GDI server */
 | |
|   HBITMAP		hbmpShadow;
 | |
|   HDC			hdcScreen;
 | |
|   HDC			hdcShadow;
 | |
|   HWND			hwndScreen;
 | |
|   
 | |
|   /* Privates used by shadow fb and primary fb DirectDraw servers */
 | |
|   LPDIRECTDRAW		pdd;
 | |
|   LPDIRECTDRAWSURFACE2	pddsPrimary;
 | |
|   LPDIRECTDRAW2		pdd2;
 | |
| 
 | |
|   /* Privates used by shadow fb DirectDraw server */
 | |
|   LPDIRECTDRAWSURFACE2	pddsShadow;
 | |
|   LPDDSURFACEDESC	pddsdShadow;
 | |
| 
 | |
|   /* Privates used by primary fb DirectDraw server */
 | |
|   LPDIRECTDRAWSURFACE2	pddsOffscreen;
 | |
|   LPDDSURFACEDESC	pddsdOffscreen;
 | |
|   LPDDSURFACEDESC	pddsdPrimary;
 | |
| 
 | |
|   /* Privates used by shadow fb DirectDraw Nonlocking server */
 | |
|   LPDIRECTDRAW4		pdd4;
 | |
|   LPDIRECTDRAWSURFACE4	pddsShadow4;
 | |
|   LPDIRECTDRAWSURFACE4	pddsPrimary4;
 | |
| 
 | |
|   /* Privates used by both shadow fb DirectDraw servers */
 | |
|   LPDIRECTDRAWCLIPPER	pddcPrimary;
 | |
| 
 | |
|   /* Privates used by multi-window server */
 | |
|   pthread_t		ptWMProc;
 | |
|   pthread_t		ptXMsgProc;
 | |
|   void			*pWMInfo;
 | |
|   Bool                  fWindowOrderChanged;
 | |
|   Bool                  fRestacking;
 | |
|   Bool			fRootWindowShown;
 | |
| 
 | |
|   /* Privates used for any module running in a seperate thread */
 | |
|   pthread_mutex_t	pmServerStarted;
 | |
|   Bool			fServerStarted;
 | |
|   
 | |
|   /* Engine specific functions */
 | |
|   winAllocateFBProcPtr			pwinAllocateFB;
 | |
|   winShadowUpdateProcPtr		pwinShadowUpdate;
 | |
|   winCloseScreenProcPtr			pwinCloseScreen;
 | |
|   winInitVisualsProcPtr			pwinInitVisuals;
 | |
|   winAdjustVideoModeProcPtr		pwinAdjustVideoMode;
 | |
|   winCreateBoundingWindowProcPtr	pwinCreateBoundingWindow;
 | |
|   winFinishScreenInitProcPtr		pwinFinishScreenInit;
 | |
|   winBltExposedRegionsProcPtr		pwinBltExposedRegions;
 | |
|   winActivateAppProcPtr			pwinActivateApp;
 | |
|   winRedrawScreenProcPtr		pwinRedrawScreen;
 | |
|   winRealizeInstalledPaletteProcPtr	pwinRealizeInstalledPalette;
 | |
|   winInstallColormapProcPtr		pwinInstallColormap;
 | |
|   winStoreColorsProcPtr			pwinStoreColors;
 | |
|   winCreateColormapProcPtr		pwinCreateColormap;
 | |
|   winDestroyColormapProcPtr		pwinDestroyColormap;
 | |
|   winHotKeyAltTabProcPtr		pwinHotKeyAltTab;
 | |
|   winCreatePrimarySurfaceProcPtr	pwinCreatePrimarySurface;
 | |
|   winReleasePrimarySurfaceProcPtr	pwinReleasePrimarySurface;
 | |
| 
 | |
|   /* Window Procedures for Rootless mode */
 | |
|   CreateWindowProcPtr			CreateWindow;
 | |
|   DestroyWindowProcPtr			DestroyWindow;
 | |
|   PositionWindowProcPtr			PositionWindow;
 | |
|   ChangeWindowAttributesProcPtr		ChangeWindowAttributes;
 | |
|   RealizeWindowProcPtr			RealizeWindow;
 | |
|   UnrealizeWindowProcPtr		UnrealizeWindow;
 | |
|   ValidateTreeProcPtr			ValidateTree;
 | |
|   PostValidateTreeProcPtr		PostValidateTree;
 | |
|   WindowExposuresProcPtr		WindowExposures;
 | |
|   PaintWindowBackgroundProcPtr		PaintWindowBackground;
 | |
|   PaintWindowBorderProcPtr		PaintWindowBorder;
 | |
|   CopyWindowProcPtr			CopyWindow;
 | |
|   ClearToBackgroundProcPtr		ClearToBackground;
 | |
|   ClipNotifyProcPtr			ClipNotify;
 | |
|   RestackWindowProcPtr			RestackWindow;
 | |
|   ReparentWindowProcPtr			ReparentWindow;
 | |
| #ifdef SHAPE
 | |
|   SetShapeProcPtr			SetShape;
 | |
| #endif
 | |
| } winPrivScreenRec;
 | |
| 
 | |
| 
 | |
| typedef struct {
 | |
|   pointer		value;
 | |
|   XID			id;
 | |
| } WindowIDPairRec, *WindowIDPairPtr;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Extern declares for general global variables
 | |
|  */
 | |
| 
 | |
| extern winScreenInfo		g_ScreenInfo[];
 | |
| extern miPointerScreenFuncRec	g_winPointerCursorFuncs;
 | |
| extern DWORD			g_dwEvents;
 | |
| extern int			g_fdMessageQueue;
 | |
| extern int			g_iScreenPrivateIndex;
 | |
| extern int			g_iCmapPrivateIndex;
 | |
| extern int			g_iGCPrivateIndex;
 | |
| extern int			g_iPixmapPrivateIndex;
 | |
| extern int			g_iWindowPrivateIndex;
 | |
| extern unsigned long		g_ulServerGeneration;
 | |
| extern CARD32			g_c32LastInputEventTime;
 | |
| extern DWORD			g_dwEnginesSupported;
 | |
| extern HINSTANCE		g_hInstance;
 | |
| extern HWND			g_hDlgDepthChange;
 | |
| extern HWND			g_hDlgExit;
 | |
| extern int                      g_copyROP[];
 | |
| extern int                      g_patternROP[];
 | |
| extern const char *		g_pszQueryHost;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Extern declares for dynamically loaded libraries and function pointers
 | |
|  */
 | |
| 
 | |
| extern HMODULE			g_hmodDirectDraw;
 | |
| extern FARPROC			g_fpDirectDrawCreate;
 | |
| extern FARPROC			g_fpDirectDrawCreateClipper;
 | |
| 
 | |
| extern HMODULE			g_hmodCommonControls;
 | |
| extern FARPROC			g_fpTrackMouseEvent;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Screen privates macros
 | |
|  */
 | |
| 
 | |
| #define winGetScreenPriv(pScreen) \
 | |
| 	((winPrivScreenPtr) (pScreen)->devPrivates[g_iScreenPrivateIndex].ptr)
 | |
| 
 | |
| #define winSetScreenPriv(pScreen,v) \
 | |
| 	((pScreen)->devPrivates[g_iScreenPrivateIndex].ptr = (pointer) v)
 | |
| 
 | |
| #define winScreenPriv(pScreen) \
 | |
| 	winPrivScreenPtr pScreenPriv = winGetScreenPriv(pScreen)
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Colormap privates macros
 | |
|  */
 | |
| 
 | |
| #define winGetCmapPriv(pCmap) \
 | |
| 	((winPrivCmapPtr) (pCmap)->devPrivates[g_iCmapPrivateIndex].ptr)
 | |
| 
 | |
| #define winSetCmapPriv(pCmap,v) \
 | |
| 	((pCmap)->devPrivates[g_iCmapPrivateIndex].ptr = (pointer) v)
 | |
| 
 | |
| #define winCmapPriv(pCmap) \
 | |
| 	winPrivCmapPtr pCmapPriv = winGetCmapPriv(pCmap)
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * GC privates macros
 | |
|  */
 | |
| 
 | |
| #define winGetGCPriv(pGC) \
 | |
| 	((winPrivGCPtr) (pGC)->devPrivates[g_iGCPrivateIndex].ptr)
 | |
| 
 | |
| #define winSetGCPriv(pGC,v) \
 | |
| 	((pGC)->devPrivates[g_iGCPrivateIndex].ptr = (pointer) v)
 | |
| 
 | |
| #define winGCPriv(pGC) \
 | |
| 	winPrivGCPtr pGCPriv = winGetGCPriv(pGC)
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Pixmap privates macros
 | |
|  */
 | |
| 
 | |
| #define winGetPixmapPriv(pPixmap) \
 | |
| 	((winPrivPixmapPtr) (pPixmap)->devPrivates[g_iPixmapPrivateIndex].ptr)
 | |
| 
 | |
| #define winSetPixmapPriv(pPixmap,v) \
 | |
| 	((pPixmap)->devPrivates[g_iPixmapPrivateIndex].ptr = (pointer) v)
 | |
| 
 | |
| #define winPixmapPriv(pPixmap) \
 | |
| 	winPrivPixmapPtr pPixmapPriv = winGetPixmapPriv(pPixmap)
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Window privates macros
 | |
|  */
 | |
| 
 | |
| #define winGetWindowPriv(pWin) \
 | |
| 	((winPrivWinPtr) (pWin)->devPrivates[g_iWindowPrivateIndex].ptr)
 | |
| 
 | |
| #define winSetWindowPriv(pWin,v) \
 | |
| 	((pWin)->devPrivates[g_iWindowPrivateIndex].ptr = (pointer) v)
 | |
| 
 | |
| #define winWindowPriv(pWin) \
 | |
| 	winPrivWinPtr pWinPriv = winGetWindowPriv(pWin)
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * FIXME: Windows mouse wheel macro; should be in Cygwin w32api headers.
 | |
|  * Has been fixed after May 05, 2001.  Remove this section after the
 | |
|  * fixed headers are in distribution.
 | |
|  */
 | |
| 
 | |
| #ifndef GET_WHEEL_DELTA_WPARAM
 | |
| #define GET_WHEEL_DELTA_WPARAM(wparam)		((short)HIWORD (wparam))
 | |
| #endif /* GET_WHEEL_DELTA_WPARAM */
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * FIXME: Windows shell API defines.  Should be in w32api shellapi.h
 | |
|  */
 | |
| 
 | |
| #ifndef ABS_AUTOHIDE
 | |
| #define	ABS_AUTOHIDE		0x00000001
 | |
| #endif
 | |
| #ifndef ABS_ALWAYSONTOP
 | |
| #define	ABS_ALWAYSONTOP		0x00000002
 | |
| #endif
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * BEGIN DDX and DIX Function Prototypes
 | |
|  */
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winallpriv.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winAllocatePrivates (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winInitCmapPrivates (ColormapPtr pCmap);
 | |
| 
 | |
| Bool
 | |
| winAllocateCmapPrivates (ColormapPtr pCmap);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winblock.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winBlockHandler (int nScreen,
 | |
| 		 pointer pBlockData,
 | |
| 		 pointer pTimeout,
 | |
| 		 pointer pReadMask);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winclip.c
 | |
|  */
 | |
| 
 | |
| RegionPtr
 | |
| winPixmapToRegionNativeGDI (PixmapPtr pPix);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winclipboardinit.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winInitClipboard (pthread_t *ptClipboardProc,
 | |
| 		  pthread_mutex_t *ppmServerStarted,
 | |
| 		  DWORD dwScreen);
 | |
| 
 | |
| /*
 | |
|  * winclipboardthread.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winDeinitClipboard ();
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * wincmap.c
 | |
|  */
 | |
| 
 | |
| int
 | |
| winListInstalledColormaps (ScreenPtr pScreen, Colormap *pmaps);
 | |
| 
 | |
| void
 | |
| winStoreColors (ColormapPtr pmap, int ndef, xColorItem *pdefs);
 | |
| 
 | |
| void
 | |
| winInstallColormap (ColormapPtr pmap);
 | |
| 
 | |
| void
 | |
| winUninstallColormap (ColormapPtr pmap);
 | |
| 
 | |
| void
 | |
| winResolveColor (unsigned short *pred,
 | |
| 		 unsigned short *pgreen,
 | |
| 		 unsigned short *pblue,
 | |
| 		 VisualPtr	pVisual);
 | |
| 
 | |
| Bool
 | |
| winCreateColormap (ColormapPtr pmap);
 | |
| 
 | |
| void
 | |
| winDestroyColormap (ColormapPtr pmap);
 | |
| 
 | |
| int
 | |
| winExpandDirectColors (ColormapPtr pmap, int ndef,
 | |
| 		       xColorItem *indefs, xColorItem *outdefs);
 | |
| 
 | |
| Bool
 | |
| winCreateDefColormap (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winSetVisualTypesNativeGDI (int nDepth, int nVisuals, int nBitsPerRGB);
 | |
| 
 | |
| void
 | |
| winClearVisualTypes (void);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * wincreatewnd.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winCreateBoundingWindowFullScreen (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winCreateBoundingWindowWindowed (ScreenPtr pScreen);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * wincursor.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winPointerWarpCursor (ScreenPtr pScreen, int x, int y);
 | |
| 
 | |
| Bool
 | |
| winCursorOffScreen (ScreenPtr *ppScreen, int *x, int *y);
 | |
| 
 | |
| void
 | |
| winCrossScreen (ScreenPtr pScreen, Bool fEntering);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * windialogs.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winDisplayExitDialog (winPrivScreenPtr pScreenPriv);
 | |
| 
 | |
| 
 | |
| void
 | |
| winDisplayDepthChangeDialog (winPrivScreenPtr pScreenPriv);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winengine.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winDetectSupportedEngines ();
 | |
| 
 | |
| Bool
 | |
| winSetEngine (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winGetDDProcAddresses ();
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winerror.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| OSVenderVErrorF (const char *pszFormat, va_list va_args);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winfillsp.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winFillSpansNativeGDI (DrawablePtr	pDrawable,
 | |
| 		       GCPtr		pGC,
 | |
| 		       int		nSpans,
 | |
| 		       DDXPointPtr	pPoints,
 | |
| 		       int		*pWidths,
 | |
| 		       int		fSorted);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winfont.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winRealizeFontNativeGDI (ScreenPtr pScreen, FontPtr pFont);
 | |
| 
 | |
| Bool
 | |
| winUnrealizeFontNativeGDI (ScreenPtr pScreen, FontPtr pFont);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * wingc.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winCreateGCNativeGDI (GCPtr pGC);
 | |
| 
 | |
| void
 | |
| winChangeGCNativeGDI (GCPtr pGC, unsigned long ulChanges);
 | |
| 
 | |
| void
 | |
| winPadPixmapNativdGDI (PixmapPtr pPixmap);
 | |
| 
 | |
| void
 | |
| winValidateGCNativeGDI (GCPtr pGC,
 | |
| 			unsigned long changes,
 | |
| 			DrawablePtr pDrawable);
 | |
| 
 | |
| void
 | |
| winCopyGCNativeGDI (GCPtr pGCsrc, unsigned long ulMask, GCPtr pGCdst);
 | |
| 
 | |
| void
 | |
| winDestroyGCNativeGDI (GCPtr pGC);
 | |
| 
 | |
| void
 | |
| winChangeClipNativeGDI (GCPtr pGC, int nType, pointer pValue, int nRects);
 | |
| 
 | |
| void
 | |
| winDestroyClipNativeGDI (GCPtr pGC);
 | |
| 
 | |
| void
 | |
| winCopyClipNativeGDI (GCPtr pGCdst, GCPtr pGCsrc);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * wingetsp.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winGetSpansNativeGDI (DrawablePtr	pDrawable, 
 | |
| 		      int		wMax, 
 | |
| 		      DDXPointPtr	pPoints, 
 | |
| 		      int		*pWidths, 
 | |
| 		      int		nSpans, 
 | |
| 		      char		*pDst);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winkeybd.c
 | |
|  */
 | |
| 
 | |
| #if WIN_NEW_KEYBOARD_SUPPORT
 | |
| winKeyEventsRec
 | |
| winTranslateKey (DWORD dwVirtualKey, DWORD dwKeyData);
 | |
| #else
 | |
| void
 | |
| winTranslateKey (WPARAM wParam, LPARAM lParam, int *piScanCode);
 | |
| #endif
 | |
| 
 | |
| void
 | |
| winGetKeyMappings (KeySymsPtr pKeySyms, CARD8 *pModMap);
 | |
| 
 | |
| void
 | |
| winKeybdBell (int iPercent, DeviceIntPtr pDeviceInt,
 | |
| 	      pointer pCtrl, int iClass);
 | |
| 
 | |
| void
 | |
| winKeybdCtrl (DeviceIntPtr pDevice, KeybdCtrl *pCtrl);
 | |
| 
 | |
| int
 | |
| winKeybdProc (DeviceIntPtr pDeviceInt, int iState);
 | |
| 
 | |
| void
 | |
| winInitializeModeKeyStates (void);
 | |
| 
 | |
| void
 | |
| winStoreModeKeyStates (ScreenPtr pScreen);
 | |
| 
 | |
| void
 | |
| winRestoreModeKeyStates (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winIsFakeCtrl_L (UINT message, WPARAM wParam, LPARAM lParam);
 | |
| 
 | |
| void
 | |
| winKeybdReleaseKeys ();
 | |
| 
 | |
| void
 | |
| winSendKeyEvent (DWORD dwKey, Bool fDown);
 | |
| 
 | |
| #if WIN_NEW_KEYBOARD_SUPPORT
 | |
| void
 | |
| winProcessKeyEvent (DWORD dwVirtKey, DWORD dwKeyData);
 | |
| #endif
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winlayer.c
 | |
|  */
 | |
| 
 | |
| #if WIN_LAYER_SUPPORT
 | |
| 
 | |
| LayerPtr
 | |
| winLayerCreate (ScreenPtr pScreen);
 | |
| 
 | |
| int
 | |
| winLayerAdd (WindowPtr pWindow, pointer value);
 | |
| 
 | |
| int
 | |
| winLayerRemove (WindowPtr pWindow, pointer value);
 | |
| 
 | |
| #ifdef RANDR
 | |
| Bool
 | |
| winRandRGetInfo (ScreenPtr pScreen, Rotation *pRotations);
 | |
| 
 | |
| Bool
 | |
| winRandRSetConfig (ScreenPtr		pScreen,
 | |
| 		   Rotation		rotateKind,
 | |
| 		   RRScreenSizePtr	pSize);
 | |
| 
 | |
| Bool
 | |
| winRandRInit (ScreenPtr pScreen);
 | |
| #endif /* RANDR */
 | |
| #endif /* WIN_LAYER_SUPPORT */
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winmisc.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winQueryBestSizeNativeGDI (int class, unsigned short *pWidth,
 | |
| 			   unsigned short *pHeight, ScreenPtr pScreen);
 | |
| 
 | |
| CARD8
 | |
| winCountBits (DWORD dw);
 | |
| 
 | |
| Bool
 | |
| winUpdateFBPointer (ScreenPtr pScreen, void *pbits);
 | |
| 
 | |
| BOOL
 | |
| winPaintBackground (HWND hwnd, COLORREF colorref);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winmouse.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winMouseCtrl (DeviceIntPtr pDevice, PtrCtrl *pCtrl);
 | |
| 
 | |
| int
 | |
| winMouseProc (DeviceIntPtr pDeviceInt, int iState);
 | |
| 
 | |
| int
 | |
| winMouseWheel (ScreenPtr pScreen, int iDeltaZ);
 | |
| 
 | |
| void
 | |
| winMouseButtonsSendEvent (int iEventType, int iButton);
 | |
| 
 | |
| int
 | |
| winMouseButtonsHandle (ScreenPtr pScreen,
 | |
| 		       int iEventType, int iButton,
 | |
| 		       WPARAM wParam);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winnativegdi.c
 | |
|  */
 | |
| 
 | |
| HBITMAP
 | |
| winCreateDIBNativeGDI (int iWidth, int iHeight, int iDepth,
 | |
| 		       BYTE **ppbBits, BITMAPINFO **ppbmi);
 | |
| 
 | |
| Bool
 | |
| winAllocateFBNativeGDI (ScreenPtr pScreen);
 | |
| 
 | |
| void
 | |
| winShadowUpdateNativeGDI (ScreenPtr pScreen, 
 | |
| 			  shadowBufPtr pBuf);
 | |
| 
 | |
| Bool
 | |
| winCloseScreenNativeGDI (int nIndex, ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winInitVisualsNativeGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winAdjustVideoModeNativeGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winBltExposedRegionsNativeGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winActivateAppNativeGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winSetEngineFunctionsNativeGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winRedrawScreenNativeGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winRealizeInstalledPaletteNativeGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winInstallColormapNativeGDI (ColormapPtr pColormap);
 | |
| 
 | |
| Bool
 | |
| winStoreColorsNativeGDI (ColormapPtr pmap, 
 | |
| 			 int ndef,
 | |
| 			 xColorItem *pdefs);
 | |
| 
 | |
| Bool
 | |
| winCreateColormapNativeGDI (ColormapPtr pColormap);
 | |
| 
 | |
| Bool
 | |
| winDestroyColormapNativeGDI (ColormapPtr pColormap);
 | |
| 
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winpfbddd.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winAllocateFBPrimaryDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winCloseScreenPrimaryDD (int nIndex, ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winInitVisualsPrimaryDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winAdjustVideoModePrimaryDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winActivateAppPrimaryDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winSetEngineFunctionsPrimaryDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winHotKeyAltTabPrimaryDD (ScreenPtr pScreen);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winpixmap.c
 | |
|  */
 | |
| 
 | |
| PixmapPtr
 | |
| winCreatePixmapNativeGDI (ScreenPtr pScreen, int width, int height, int depth);
 | |
| 
 | |
| Bool
 | |
| winDestroyPixmapNativeGDI (PixmapPtr pPixmap);
 | |
| 
 | |
| void
 | |
| winXRotatePixmapNativeGDI (PixmapPtr pPix, int rw);
 | |
| 
 | |
| void
 | |
| winYRotatePixmapNativeGDI (PixmapPtr pPix, int rh);
 | |
| 
 | |
| void
 | |
| winCopyRotatePixmapNativeGDI (PixmapPtr psrcPix, PixmapPtr *ppdstPix,
 | |
| 			      int xrot, int yrot);
 | |
| 
 | |
| Bool
 | |
| winModifyPixmapHeaderNativeGDI (PixmapPtr pPixmap,
 | |
| 				int iWidth, int iHeight,
 | |
| 				int iDepth,
 | |
| 				int iBitsPerPixel,
 | |
| 				int devKind,
 | |
| 				pointer pPixData);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winpntwin.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winPaintWindowNativeGDI (WindowPtr pWin, RegionPtr pRegion, int what);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winpolyline.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winPolyLineNativeGDI (DrawablePtr	pDrawable,
 | |
| 		      GCPtr		pGC,
 | |
| 		      int		mode,
 | |
| 		      int		npt,
 | |
| 		      DDXPointPtr	ppt);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winscrinit.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winScreenInit (int index,
 | |
| 	       ScreenPtr pScreen,
 | |
| 	       int argc, char **argv);
 | |
| 
 | |
| Bool
 | |
| winFinishScreenInitFB (int index,
 | |
| 		       ScreenPtr pScreen,
 | |
| 		       int argc, char **argv);
 | |
| 
 | |
| Bool
 | |
| winFinishScreenInitNativeGDI (int index,
 | |
| 			      ScreenPtr pScreen,
 | |
| 			      int argc, char **argv);
 | |
| 
 | |
| Bool
 | |
| winSaveScreen (ScreenPtr pScreen, int on);
 | |
| 
 | |
| PixmapPtr
 | |
| winGetWindowPixmap (WindowPtr pWin);
 | |
| 
 | |
| void
 | |
| winSetWindowPixmap (WindowPtr pWin, PixmapPtr pPix);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winsetsp.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winSetSpansNativeGDI (DrawablePtr	pDrawable,
 | |
| 		      GCPtr		pGC,
 | |
| 		      char		*pSrc,
 | |
| 		      DDXPointPtr	pPoints,
 | |
| 		      int		*pWidth,
 | |
| 		      int		nSpans,
 | |
| 		      int		fSorted);
 | |
| 
 | |
| /*
 | |
|  * winshaddd.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winAllocateFBShadowDD (ScreenPtr pScreen);
 | |
| 
 | |
| void
 | |
| winShadowUpdateDD (ScreenPtr pScreen, 
 | |
| 		   shadowBufPtr pBuf);
 | |
| 
 | |
| Bool
 | |
| winCloseScreenShadowDD (int nIndex, ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winInitVisualsShadowDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winAdjustVideoModeShadowDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winBltExposedRegionsShadowDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winActivateAppShadowDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winSetEngineFunctionsShadowDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winRedrawScreenShadowDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winRealizeInstalledPaletteShadowDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winInstallColormapShadowDD (ColormapPtr pColormap);
 | |
| 
 | |
| Bool
 | |
| winStoreColorsShadowDD (ColormapPtr pmap, 
 | |
| 			int ndef,
 | |
| 			xColorItem *pdefs);
 | |
| 
 | |
| Bool
 | |
| winCreateColormapShadowDD (ColormapPtr pColormap);
 | |
| 
 | |
| Bool
 | |
| winDestroyColormapShadowDD (ColormapPtr pColormap);
 | |
| 
 | |
| Bool
 | |
| winCreatePrimarySurfaceShadowDD (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winReleasePrimarySurfaceShadowDD (ScreenPtr pScreen);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winshadddnl.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winAllocateFBShadowDDNL (ScreenPtr pScreen);
 | |
| 
 | |
| void
 | |
| winShadowUpdateDDNL (ScreenPtr pScreen, 
 | |
| 		     shadowBufPtr pBuf);
 | |
| 
 | |
| Bool
 | |
| winCloseScreenShadowDDNL (int nIndex, ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winInitVisualsShadowDDNL (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winAdjustVideoModeShadowDDNL (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winBltExposedRegionsShadowDDNL (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winActivateAppShadowDDNL (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winSetEngineFunctionsShadowDDNL (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winRedrawScreenShadowDDNL (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winRealizeInstalledPaletteShadowDDNL (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winInstallColormapShadowDDNL (ColormapPtr pColormap);
 | |
| 
 | |
| Bool
 | |
| winStoreColorsShadowDDNL (ColormapPtr pmap, 
 | |
| 			  int ndef,
 | |
| 			  xColorItem *pdefs);
 | |
| 
 | |
| Bool
 | |
| winCreateColormapShadowDDNL (ColormapPtr pColormap);
 | |
| 
 | |
| Bool
 | |
| winDestroyColormapShadowDDNL (ColormapPtr pColormap);
 | |
| 
 | |
| Bool
 | |
| winCreatePrimarySurfaceShadowDDNL (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winReleasePrimarySurfaceShadowDDNL (ScreenPtr pScreen);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winshadgdi.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winAllocateFBShadowGDI (ScreenPtr pScreen);
 | |
| 
 | |
| void
 | |
| winShadowUpdateGDI (ScreenPtr pScreen, 
 | |
| 		    shadowBufPtr pBuf);
 | |
| 
 | |
| Bool
 | |
| winCloseScreenShadowGDI (int nIndex, ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winInitVisualsShadowGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winAdjustVideoModeShadowGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winActivateAppShadowGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winRedrawScreenShadowGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winSetEngineFunctionsShadowGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winRealizeInstalledPaletteShadowGDI (ScreenPtr pScreen);
 | |
| 
 | |
| Bool
 | |
| winInstallColormapShadowGDI (ColormapPtr pColormap);
 | |
| 
 | |
| Bool
 | |
| winStoreColorsShadowGDI (ColormapPtr pmap, 
 | |
| 			 int ndef,
 | |
| 			 xColorItem *pdefs);
 | |
| 
 | |
| Bool
 | |
| winCreateColormapShadowGDI (ColormapPtr pColormap);
 | |
| 
 | |
| Bool
 | |
| winDestroyColormapShadowGDI (ColormapPtr pColormap);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winwakeup.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winWakeupHandler (int nScreen,
 | |
| 		  pointer pWakeupData,
 | |
| 		  unsigned long ulResult,
 | |
| 		  pointer pReadmask);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winwindow.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winCreateWindowNativeGDI (WindowPtr pWin);
 | |
| 
 | |
| Bool
 | |
| winDestroyWindowNativeGDI (WindowPtr pWin);
 | |
| 
 | |
| Bool
 | |
| winPositionWindowNativeGDI (WindowPtr pWin, int x, int y);
 | |
| 
 | |
| void 
 | |
| winCopyWindowNativeGDI (WindowPtr pWin,
 | |
| 			DDXPointRec ptOldOrg,
 | |
| 			RegionPtr prgnSrc);
 | |
| 
 | |
| Bool
 | |
| winChangeWindowAttributesNativeGDI (WindowPtr pWin, unsigned long mask);
 | |
| 
 | |
| Bool
 | |
| winUnmapWindowNativeGDI (WindowPtr pWindow);
 | |
| 
 | |
| Bool
 | |
| winMapWindowNativeGDI (WindowPtr pWindow);
 | |
| 
 | |
| Bool
 | |
| winCreateWindowPRootless (WindowPtr pWindow);
 | |
| 
 | |
| Bool
 | |
| winDestroyWindowPRootless (WindowPtr pWindow);
 | |
| 
 | |
| Bool
 | |
| winPositionWindowPRootless (WindowPtr pWindow, int x, int y);
 | |
| 
 | |
| Bool
 | |
| winChangeWindowAttributesPRootless (WindowPtr pWindow, unsigned long mask);
 | |
| 
 | |
| Bool
 | |
| winUnmapWindowPRootless (WindowPtr pWindow);
 | |
| 
 | |
| Bool
 | |
| winMapWindowPRootless (WindowPtr pWindow);
 | |
| 
 | |
| #ifdef SHAPE
 | |
| void
 | |
| winSetShapePRootless (WindowPtr pWindow);
 | |
| #endif
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winmultiwindowicons.c
 | |
|  */
 | |
| 
 | |
| HICON
 | |
| winXIconToHICON (WindowPtr pWin);
 | |
| 
 | |
| void
 | |
| winUpdateIcon (Window id);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winmultiwindowshape.c
 | |
|  */
 | |
| 
 | |
| #ifdef SHAPE
 | |
| void
 | |
| winReshapeMultiWindow (WindowPtr pWin);
 | |
| 
 | |
| void
 | |
| winSetShapeMultiWindow (WindowPtr pWindow);
 | |
| 
 | |
| void
 | |
| winUpdateRgnMultiWindow (WindowPtr pWindow);
 | |
| #endif
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winmultiwindowwindow.c
 | |
|  */
 | |
| 
 | |
| Bool
 | |
| winCreateWindowMultiWindow (WindowPtr pWindow);
 | |
| 
 | |
| Bool
 | |
| winDestroyWindowMultiWindow (WindowPtr pWindow);
 | |
| 
 | |
| Bool
 | |
| winPositionWindowMultiWindow (WindowPtr pWindow, int x, int y);
 | |
| 
 | |
| Bool
 | |
| winChangeWindowAttributesMultiWindow (WindowPtr pWindow, unsigned long mask);
 | |
| 
 | |
| Bool
 | |
| winUnmapWindowMultiWindow (WindowPtr pWindow);
 | |
| 
 | |
| Bool
 | |
| winMapWindowMultiWindow (WindowPtr pWindow);
 | |
| 
 | |
| void
 | |
| winReparentWindowMultiWindow (WindowPtr pWin, WindowPtr pPriorParent);
 | |
| 
 | |
| void
 | |
| winRestackWindowMultiWindow (WindowPtr pWin, WindowPtr pOldNextSib);
 | |
| 
 | |
| void
 | |
| winReorderWindowsMultiWindow (ScreenPtr pScreen);
 | |
| 
 | |
| void
 | |
| winMoveXWindow (WindowPtr pWin, int x, int y);
 | |
| 
 | |
| void
 | |
| winResizeXWindow (WindowPtr pWin, int w, int h);
 | |
| 
 | |
| XID
 | |
| winGetWindowID (WindowPtr pWin);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winmultiwindowwndproc.c
 | |
|  */
 | |
| 
 | |
| LRESULT CALLBACK
 | |
| winTopLevelWindowProc (HWND hwnd, UINT message, 
 | |
| 		       WPARAM wParam, LPARAM lParam);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * wintrayicon.c
 | |
|  */
 | |
| 
 | |
| void
 | |
| winInitNotifyIcon (winPrivScreenPtr pScreenPriv);
 | |
| 
 | |
| void
 | |
| winDeleteNotifyIcon (winPrivScreenPtr pScreenPriv);
 | |
| 
 | |
| LRESULT
 | |
| winHandleIconMessage (HWND hwnd, UINT message,
 | |
| 		      WPARAM wParam, LPARAM lParam,
 | |
| 		      winPrivScreenPtr pScreenPriv);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * winwndproc.c
 | |
|  */
 | |
| 
 | |
| LRESULT CALLBACK
 | |
| winWindowProc (HWND hWnd, UINT message, 
 | |
| 	       WPARAM wParam, LPARAM lParam);
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * END DDX and DIX Function Prototypes
 | |
|  */
 | |
| 
 | |
| #endif /* _WIN_H_ */
 | |
| 
 |