1706f2543Smrg/* 2706f2543Smrg *Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved. 3706f2543Smrg * 4706f2543Smrg *Permission is hereby granted, free of charge, to any person obtaining 5706f2543Smrg * a copy of this software and associated documentation files (the 6706f2543Smrg *"Software"), to deal in the Software without restriction, including 7706f2543Smrg *without limitation the rights to use, copy, modify, merge, publish, 8706f2543Smrg *distribute, sublicense, and/or sell copies of the Software, and to 9706f2543Smrg *permit persons to whom the Software is furnished to do so, subject to 10706f2543Smrg *the following conditions: 11706f2543Smrg * 12706f2543Smrg *The above copyright notice and this permission notice shall be 13706f2543Smrg *included in all copies or substantial portions of the Software. 14706f2543Smrg * 15706f2543Smrg *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16706f2543Smrg *EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17706f2543Smrg *MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18706f2543Smrg *NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR 19706f2543Smrg *ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 20706f2543Smrg *CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21706f2543Smrg *WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22706f2543Smrg * 23706f2543Smrg *Except as contained in this notice, the name of the XFree86 Project 24706f2543Smrg *shall not be used in advertising or otherwise to promote the sale, use 25706f2543Smrg *or other dealings in this Software without prior written authorization 26706f2543Smrg *from the XFree86 Project. 27706f2543Smrg * 28706f2543Smrg * Authors: Dakshinamurthy Karra 29706f2543Smrg * Suhaib M Siddiqi 30706f2543Smrg * Peter Busch 31706f2543Smrg * Harold L Hunt II 32706f2543Smrg * Kensuke Matsuzaki 33706f2543Smrg */ 34706f2543Smrg 35706f2543Smrg#ifndef _WIN_H_ 36706f2543Smrg#define _WIN_H_ 37706f2543Smrg 38706f2543Smrg#ifndef NO 39706f2543Smrg#define NO 0 40706f2543Smrg#endif 41706f2543Smrg#ifndef YES 42706f2543Smrg#define YES 1 43706f2543Smrg#endif 44706f2543Smrg 45706f2543Smrg/* Turn debug messages on or off */ 46706f2543Smrg#ifndef CYGDEBUG 47706f2543Smrg#define CYGDEBUG NO 48706f2543Smrg#endif 49706f2543Smrg 50706f2543Smrg/* WM_XBUTTON Messages. They should go into w32api. */ 51706f2543Smrg#ifndef WM_XBUTTONDOWN 52706f2543Smrg# define WM_XBUTTONDOWN 523 53706f2543Smrg#endif 54706f2543Smrg#ifndef WM_XBUTTONUP 55706f2543Smrg# define WM_XBUTTONUP 524 56706f2543Smrg#endif 57706f2543Smrg#ifndef WM_XBUTTONDBLCLK 58706f2543Smrg# define WM_XBUTTONDBLCLK 525 59706f2543Smrg#endif 60706f2543Smrg 61706f2543Smrg 62706f2543Smrg#define WIN_DEFAULT_BPP 0 63706f2543Smrg#define WIN_DEFAULT_WHITEPIXEL 255 64706f2543Smrg#define WIN_DEFAULT_BLACKPIXEL 0 65706f2543Smrg#define WIN_DEFAULT_LINEBIAS 0 66706f2543Smrg#define WIN_DEFAULT_E3B_TIME 50 /* milliseconds */ 67706f2543Smrg#define WIN_DEFAULT_DPI 75 68706f2543Smrg#define WIN_DEFAULT_REFRESH 0 69706f2543Smrg#define WIN_DEFAULT_WIN_KILL TRUE 70706f2543Smrg#define WIN_DEFAULT_UNIX_KILL FALSE 71706f2543Smrg#define WIN_DEFAULT_CLIP_UPDATES_NBOXES 0 72706f2543Smrg#ifdef XWIN_EMULATEPSEUDO 73706f2543Smrg#define WIN_DEFAULT_EMULATE_PSEUDO FALSE 74706f2543Smrg#endif 75706f2543Smrg#define WIN_DEFAULT_USER_GAVE_HEIGHT_AND_WIDTH FALSE 76706f2543Smrg 77706f2543Smrg/* 78706f2543Smrg * Windows only supports 256 color palettes 79706f2543Smrg */ 80706f2543Smrg#define WIN_NUM_PALETTE_ENTRIES 256 81706f2543Smrg 82706f2543Smrg/* 83706f2543Smrg * Number of times to call Restore in an attempt to restore the primary surface 84706f2543Smrg */ 85706f2543Smrg#define WIN_REGAIN_SURFACE_RETRIES 1 86706f2543Smrg 87706f2543Smrg/* 88706f2543Smrg * Build a supported display depths mask by shifting one to the left 89706f2543Smrg * by the number of bits in the supported depth. 90706f2543Smrg */ 91706f2543Smrg#define WIN_SUPPORTED_BPPS ( (1 << (32 - 1)) | (1 << (24 - 1)) \ 92706f2543Smrg | (1 << (16 - 1)) | (1 << (15 - 1)) \ 93706f2543Smrg | (1 << ( 8 - 1))) 94706f2543Smrg#define WIN_CHECK_DEPTH YES 95706f2543Smrg 96706f2543Smrg/* 97706f2543Smrg * Timer IDs for WM_TIMER 98706f2543Smrg */ 99706f2543Smrg#define WIN_E3B_TIMER_ID 1 100706f2543Smrg#define WIN_POLLING_MOUSE_TIMER_ID 2 101706f2543Smrg 102706f2543Smrg#define MOUSE_POLLING_INTERVAL 50 103706f2543Smrg 104706f2543Smrg#define WIN_E3B_OFF -1 105706f2543Smrg#define WIN_FD_INVALID -1 106706f2543Smrg 107706f2543Smrg#define WIN_SERVER_NONE 0x0L /* 0 */ 108706f2543Smrg#define WIN_SERVER_SHADOW_GDI 0x1L /* 1 */ 109706f2543Smrg#define WIN_SERVER_SHADOW_DD 0x2L /* 2 */ 110706f2543Smrg#define WIN_SERVER_SHADOW_DDNL 0x4L /* 4 */ 111706f2543Smrg#ifdef XWIN_PRIMARYFB 112706f2543Smrg#define WIN_SERVER_PRIMARY_DD 0x8L /* 8 */ 113706f2543Smrg#endif 114706f2543Smrg#ifdef XWIN_NATIVEGDI 115706f2543Smrg# define WIN_SERVER_NATIVE_GDI 0x10L /* 16 */ 116706f2543Smrg#endif 117706f2543Smrg 118706f2543Smrg#define AltMapIndex Mod1MapIndex 119706f2543Smrg#define NumLockMapIndex Mod2MapIndex 120706f2543Smrg#define AltLangMapIndex Mod3MapIndex 121706f2543Smrg#define KanaMapIndex Mod4MapIndex 122706f2543Smrg#define ScrollLockMapIndex Mod5MapIndex 123706f2543Smrg 124706f2543Smrg#define WIN_MOD_LALT 0x00000001 125706f2543Smrg#define WIN_MOD_RALT 0x00000002 126706f2543Smrg#define WIN_MOD_LCONTROL 0x00000004 127706f2543Smrg#define WIN_MOD_RCONTROL 0x00000008 128706f2543Smrg 129706f2543Smrg#define WIN_24BPP_MASK_RED 0x00FF0000 130706f2543Smrg#define WIN_24BPP_MASK_GREEN 0x0000FF00 131706f2543Smrg#define WIN_24BPP_MASK_BLUE 0x000000FF 132706f2543Smrg 133706f2543Smrg#define WIN_MAX_KEYS_PER_KEY 4 134706f2543Smrg 135706f2543Smrg#include <sys/types.h> 136706f2543Smrg#include <sys/stat.h> 137706f2543Smrg#include <stdio.h> 138706f2543Smrg 139706f2543Smrg#include <errno.h> 140706f2543Smrg#if defined(XWIN_MULTIWINDOWEXTWM) || defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW) 141706f2543Smrg#define HANDLE void * 142706f2543Smrg#include <pthread.h> 143706f2543Smrg#undef HANDLE 144706f2543Smrg#endif 145706f2543Smrg 146706f2543Smrg#ifdef HAS_MMAP 147706f2543Smrg#include <sys/mman.h> 148706f2543Smrg#ifndef MAP_FILE 149706f2543Smrg#define MAP_FILE 0 150706f2543Smrg#endif /* MAP_FILE */ 151706f2543Smrg#endif /* HAS_MMAP */ 152706f2543Smrg 153706f2543Smrg#include <X11/X.h> 154706f2543Smrg#include <X11/Xproto.h> 155706f2543Smrg#include <X11/Xos.h> 156706f2543Smrg#include <X11/Xprotostr.h> 157706f2543Smrg#include "scrnintstr.h" 158706f2543Smrg#include "pixmapstr.h" 159706f2543Smrg#include "pixmap.h" 160706f2543Smrg#include "region.h" 161706f2543Smrg#include "gcstruct.h" 162706f2543Smrg#include "colormap.h" 163706f2543Smrg#include "colormapst.h" 164706f2543Smrg#include "miscstruct.h" 165706f2543Smrg#include "servermd.h" 166706f2543Smrg#include "windowstr.h" 167706f2543Smrg#include "mi.h" 168706f2543Smrg#include "micmap.h" 169706f2543Smrg#include "mifillarc.h" 170706f2543Smrg#include "mifpoly.h" 171706f2543Smrg#include "mibstore.h" 172706f2543Smrg#include "input.h" 173706f2543Smrg#include "mipointer.h" 174706f2543Smrg#include "X11/keysym.h" 175706f2543Smrg#include "mibstore.h" 176706f2543Smrg#include "micoord.h" 177706f2543Smrg#include "dix.h" 178706f2543Smrg#include "miline.h" 179706f2543Smrg#include "shadow.h" 180706f2543Smrg#include "fb.h" 181706f2543Smrg#include "rootless.h" 182706f2543Smrg 183706f2543Smrg#include "mipict.h" 184706f2543Smrg#include "picturestr.h" 185706f2543Smrg 186706f2543Smrg#ifdef RANDR 187706f2543Smrg#include "randrstr.h" 188706f2543Smrg#endif 189706f2543Smrg 190706f2543Smrg/* 191706f2543Smrg * Windows headers 192706f2543Smrg */ 193706f2543Smrg#include "winms.h" 194706f2543Smrg#include "winresource.h" 195706f2543Smrg 196706f2543Smrg 197706f2543Smrg/* 198706f2543Smrg * Define Windows constants 199706f2543Smrg */ 200706f2543Smrg 201706f2543Smrg#define WM_TRAYICON (WM_USER + 1000) 202706f2543Smrg#define WM_INIT_SYS_MENU (WM_USER + 1001) 203706f2543Smrg#define WM_GIVEUP (WM_USER + 1002) 204706f2543Smrg 205706f2543Smrg 206706f2543Smrg/* Local includes */ 207706f2543Smrg#include "winwindow.h" 208706f2543Smrg#include "winmsg.h" 209706f2543Smrg 210706f2543Smrg 211706f2543Smrg/* 212706f2543Smrg * Debugging macros 213706f2543Smrg */ 214706f2543Smrg 215706f2543Smrg#if CYGDEBUG 216706f2543Smrg#define DEBUG_MSG(str,...) \ 217706f2543Smrgif (fDebugProcMsg) \ 218706f2543Smrg{ \ 219706f2543Smrg char *pszTemp; \ 220706f2543Smrg int iLength; \ 221706f2543Smrg if (asprintf (&pszTemp, str, ##__VA_ARGS__) != -1) { \ 222706f2543Smrg MessageBox (NULL, pszTemp, szFunctionName, MB_OK); \ 223706f2543Smrg free (pszTemp); \ 224706f2543Smrg } \ 225706f2543Smrg} 226706f2543Smrg#else 227706f2543Smrg#define DEBUG_MSG(str,...) 228706f2543Smrg#endif 229706f2543Smrg 230706f2543Smrg#if CYGDEBUG 231706f2543Smrg#define DEBUG_FN_NAME(str) PTSTR szFunctionName = str 232706f2543Smrg#else 233706f2543Smrg#define DEBUG_FN_NAME(str) 234706f2543Smrg#endif 235706f2543Smrg 236706f2543Smrg#if CYGDEBUG || YES 237706f2543Smrg#define DEBUGVARS BOOL fDebugProcMsg = FALSE 238706f2543Smrg#else 239706f2543Smrg#define DEBUGVARS 240706f2543Smrg#endif 241706f2543Smrg 242706f2543Smrg#if CYGDEBUG || YES 243706f2543Smrg#define DEBUGPROC_MSG fDebugProcMsg = TRUE 244706f2543Smrg#else 245706f2543Smrg#define DEBUGPROC_MSG 246706f2543Smrg#endif 247706f2543Smrg 248706f2543Smrg#define PROFILEPOINT(point,thresh)\ 249706f2543Smrg{\ 250706f2543Smrgstatic unsigned int PROFPT##point = 0;\ 251706f2543Smrgif (++PROFPT##point % thresh == 0)\ 252706f2543SmrgErrorF (#point ": PROFILEPOINT hit %u times\n", PROFPT##point);\ 253706f2543Smrg} 254706f2543Smrg 255706f2543Smrg 256706f2543Smrg/* We use xor this macro for detecting toggle key state changes */ 257706f2543Smrg#define WIN_XOR(a,b) ((!(a) && (b)) || ((a) && !(b))) 258706f2543Smrg 259706f2543Smrg#define DEFINE_ATOM_HELPER(func,atom_name) \ 260706f2543Smrgstatic Atom func (void) { \ 261706f2543Smrg static int generation; \ 262706f2543Smrg static Atom atom; \ 263706f2543Smrg if (generation != serverGeneration) { \ 264706f2543Smrg generation = serverGeneration; \ 265706f2543Smrg atom = MakeAtom (atom_name, strlen (atom_name), TRUE); \ 266706f2543Smrg } \ 267706f2543Smrg return atom; \ 268706f2543Smrg} 269706f2543Smrg 270706f2543Smrg/* 271706f2543Smrg * Typedefs for engine dependent function pointers 272706f2543Smrg */ 273706f2543Smrg 274706f2543Smrgtypedef Bool (*winAllocateFBProcPtr)(ScreenPtr); 275706f2543Smrg 276706f2543Smrgtypedef void (*winFreeFBProcPtr)(ScreenPtr); 277706f2543Smrg 278706f2543Smrgtypedef void (*winShadowUpdateProcPtr)(ScreenPtr, shadowBufPtr); 279706f2543Smrg 280706f2543Smrgtypedef Bool (*winInitScreenProcPtr)(ScreenPtr); 281706f2543Smrg 282706f2543Smrgtypedef Bool (*winCloseScreenProcPtr)(int, ScreenPtr); 283706f2543Smrg 284706f2543Smrgtypedef Bool (*winInitVisualsProcPtr)(ScreenPtr); 285706f2543Smrg 286706f2543Smrgtypedef Bool (*winAdjustVideoModeProcPtr)(ScreenPtr); 287706f2543Smrg 288706f2543Smrgtypedef Bool (*winCreateBoundingWindowProcPtr)(ScreenPtr); 289706f2543Smrg 290706f2543Smrgtypedef Bool (*winFinishScreenInitProcPtr)(int, ScreenPtr, int, char **); 291706f2543Smrg 292706f2543Smrgtypedef Bool (*winBltExposedRegionsProcPtr)(ScreenPtr); 293706f2543Smrg 294706f2543Smrgtypedef Bool (*winActivateAppProcPtr)(ScreenPtr); 295706f2543Smrg 296706f2543Smrgtypedef Bool (*winRedrawScreenProcPtr)(ScreenPtr pScreen); 297706f2543Smrg 298706f2543Smrgtypedef Bool (*winRealizeInstalledPaletteProcPtr)(ScreenPtr pScreen); 299706f2543Smrg 300706f2543Smrgtypedef Bool (*winInstallColormapProcPtr)(ColormapPtr pColormap); 301706f2543Smrg 302706f2543Smrgtypedef Bool (*winStoreColorsProcPtr)(ColormapPtr pmap, 303706f2543Smrg int ndef, xColorItem *pdefs); 304706f2543Smrg 305706f2543Smrgtypedef Bool (*winCreateColormapProcPtr)(ColormapPtr pColormap); 306706f2543Smrg 307706f2543Smrgtypedef Bool (*winDestroyColormapProcPtr)(ColormapPtr pColormap); 308706f2543Smrg 309706f2543Smrgtypedef Bool (*winHotKeyAltTabProcPtr)(ScreenPtr); 310706f2543Smrg 311706f2543Smrgtypedef Bool (*winCreatePrimarySurfaceProcPtr)(ScreenPtr); 312706f2543Smrg 313706f2543Smrgtypedef Bool (*winReleasePrimarySurfaceProcPtr)(ScreenPtr); 314706f2543Smrg 315706f2543Smrgtypedef Bool (*winFinishCreateWindowsWindowProcPtr)(WindowPtr pWin); 316706f2543Smrg 317706f2543Smrgtypedef Bool (*winCreateScreenResourcesProc)(ScreenPtr); 318706f2543Smrg 319706f2543Smrg#ifdef XWIN_NATIVEGDI 320706f2543Smrg/* Typedefs for native GDI wrappers */ 321706f2543Smrgtypedef Bool (*RealizeFontPtr) (ScreenPtr pScreen, FontPtr pFont); 322706f2543Smrgtypedef Bool (*UnrealizeFontPtr)(ScreenPtr pScreen, FontPtr pFont); 323706f2543Smrg#endif 324706f2543Smrg 325706f2543Smrg 326706f2543Smrg/* 327706f2543Smrg * GC (graphics context) privates 328706f2543Smrg */ 329706f2543Smrg 330706f2543Smrgtypedef struct 331706f2543Smrg{ 332706f2543Smrg HDC hdc; 333706f2543Smrg HDC hdcMem; 334706f2543Smrg} winPrivGCRec, *winPrivGCPtr; 335706f2543Smrg 336706f2543Smrg 337706f2543Smrg/* 338706f2543Smrg * Pixmap privates 339706f2543Smrg */ 340706f2543Smrg 341706f2543Smrgtypedef struct 342706f2543Smrg{ 343706f2543Smrg HDC hdcSelected; 344706f2543Smrg HBITMAP hBitmap; 345706f2543Smrg BYTE *pbBits; 346706f2543Smrg DWORD dwScanlineBytes; 347706f2543Smrg BITMAPINFOHEADER *pbmih; 348706f2543Smrg} winPrivPixmapRec, *winPrivPixmapPtr; 349706f2543Smrg 350706f2543Smrg 351706f2543Smrg/* 352706f2543Smrg * Colormap privates 353706f2543Smrg */ 354706f2543Smrg 355706f2543Smrgtypedef struct 356706f2543Smrg{ 357706f2543Smrg HPALETTE hPalette; 358706f2543Smrg LPDIRECTDRAWPALETTE lpDDPalette; 359706f2543Smrg RGBQUAD rgbColors[WIN_NUM_PALETTE_ENTRIES]; 360706f2543Smrg PALETTEENTRY peColors[WIN_NUM_PALETTE_ENTRIES]; 361706f2543Smrg} winPrivCmapRec, *winPrivCmapPtr; 362706f2543Smrg 363706f2543Smrg/* 364706f2543Smrg * Windows Cursor handling. 365706f2543Smrg */ 366706f2543Smrg 367706f2543Smrgtypedef struct { 368706f2543Smrg /* from GetSystemMetrics */ 369706f2543Smrg int sm_cx; 370706f2543Smrg int sm_cy; 371706f2543Smrg 372706f2543Smrg BOOL visible; 373706f2543Smrg HCURSOR handle; 374706f2543Smrg QueryBestSizeProcPtr QueryBestSize; 375706f2543Smrg miPointerSpriteFuncPtr spriteFuncs; 376706f2543Smrg} winCursorRec; 377706f2543Smrg 378706f2543Smrg/* 379706f2543Smrg * Resize modes 380706f2543Smrg */ 381706f2543Smrgtypedef enum { 382706f2543Smrg notAllowed, 383706f2543Smrg resizeWithScrollbars, 384706f2543Smrg resizeWithRandr 385706f2543Smrg} winResizeMode; 386706f2543Smrg 387706f2543Smrg/* 388706f2543Smrg * Screen information structure that we need before privates are available 389706f2543Smrg * in the server startup sequence. 390706f2543Smrg */ 391706f2543Smrg 392706f2543Smrgtypedef struct 393706f2543Smrg{ 394706f2543Smrg ScreenPtr pScreen; 395706f2543Smrg 396706f2543Smrg /* Did the user specify a height and width? */ 397706f2543Smrg Bool fUserGaveHeightAndWidth; 398706f2543Smrg 399706f2543Smrg DWORD dwScreen; 400706f2543Smrg 401706f2543Smrg int iMonitor; 402706f2543Smrg DWORD dwUserWidth; 403706f2543Smrg DWORD dwUserHeight; 404706f2543Smrg DWORD dwWidth; 405706f2543Smrg DWORD dwHeight; 406706f2543Smrg DWORD dwPaddedWidth; 407706f2543Smrg 408706f2543Smrg /* Did the user specify a screen position? */ 409706f2543Smrg Bool fUserGavePosition; 410706f2543Smrg DWORD dwInitialX; 411706f2543Smrg DWORD dwInitialY; 412706f2543Smrg 413706f2543Smrg /* 414706f2543Smrg * dwStride is the number of whole pixels that occupy a scanline, 415706f2543Smrg * including those pixels that are not displayed. This is basically 416706f2543Smrg * a rounding up of the width. 417706f2543Smrg */ 418706f2543Smrg DWORD dwStride; 419706f2543Smrg 420706f2543Smrg /* Offset of the screen in the window when using scrollbars */ 421706f2543Smrg DWORD dwXOffset; 422706f2543Smrg DWORD dwYOffset; 423706f2543Smrg 424706f2543Smrg DWORD dwBPP; 425706f2543Smrg DWORD dwDepth; 426706f2543Smrg DWORD dwRefreshRate; 427706f2543Smrg char *pfb; 428706f2543Smrg DWORD dwEngine; 429706f2543Smrg DWORD dwEnginePreferred; 430706f2543Smrg DWORD dwClipUpdatesNBoxes; 431706f2543Smrg#ifdef XWIN_EMULATEPSEUDO 432706f2543Smrg Bool fEmulatePseudo; 433706f2543Smrg#endif 434706f2543Smrg Bool fFullScreen; 435706f2543Smrg Bool fDecoration; 436706f2543Smrg#ifdef XWIN_MULTIWINDOWEXTWM 437706f2543Smrg Bool fMWExtWM; 438706f2543Smrg Bool fInternalWM; 439706f2543Smrg Bool fAnotherWMRunning; 440706f2543Smrg#endif 441706f2543Smrg Bool fRootless; 442706f2543Smrg#ifdef XWIN_MULTIWINDOW 443706f2543Smrg Bool fMultiWindow; 444706f2543Smrg#endif 445706f2543Smrg#if defined(XWIN_MULTIWINDOW) || defined(XWIN_MULTIWINDOWEXTWM) 446706f2543Smrg Bool fMultiMonitorOverride; 447706f2543Smrg#endif 448706f2543Smrg Bool fMultipleMonitors; 449706f2543Smrg Bool fLessPointer; 450706f2543Smrg winResizeMode iResizeMode; 451706f2543Smrg Bool fNoTrayIcon; 452706f2543Smrg int iE3BTimeout; 453706f2543Smrg /* Windows (Alt+F4) and Unix (Ctrl+Alt+Backspace) Killkey */ 454706f2543Smrg Bool fUseWinKillKey; 455706f2543Smrg Bool fUseUnixKillKey; 456706f2543Smrg Bool fIgnoreInput; 457706f2543Smrg 458706f2543Smrg /* Did the user explicitly set this screen? */ 459706f2543Smrg Bool fExplicitScreen; 460706f2543Smrg} winScreenInfo, *winScreenInfoPtr; 461706f2543Smrg 462706f2543Smrg 463706f2543Smrg/* 464706f2543Smrg * Screen privates 465706f2543Smrg */ 466706f2543Smrg 467706f2543Smrgtypedef struct _winPrivScreenRec 468706f2543Smrg{ 469706f2543Smrg winScreenInfoPtr pScreenInfo; 470706f2543Smrg 471706f2543Smrg Bool fEnabled; 472706f2543Smrg Bool fClosed; 473706f2543Smrg Bool fActive; 474706f2543Smrg Bool fBadDepth; 475706f2543Smrg 476706f2543Smrg int iDeltaZ; 477706f2543Smrg 478706f2543Smrg int iConnectedClients; 479706f2543Smrg 480706f2543Smrg CloseScreenProcPtr CloseScreen; 481706f2543Smrg 482706f2543Smrg DWORD dwRedMask; 483706f2543Smrg DWORD dwGreenMask; 484706f2543Smrg DWORD dwBlueMask; 485706f2543Smrg DWORD dwBitsPerRGB; 486706f2543Smrg 487706f2543Smrg DWORD dwModeKeyStates; 488706f2543Smrg 489706f2543Smrg /* Handle to icons that must be freed */ 490706f2543Smrg HICON hiconNotifyIcon; 491706f2543Smrg 492706f2543Smrg /* Palette management */ 493706f2543Smrg ColormapPtr pcmapInstalled; 494706f2543Smrg 495706f2543Smrg /* Pointer to the root visual so we only have to look it up once */ 496706f2543Smrg VisualPtr pRootVisual; 497706f2543Smrg 498706f2543Smrg /* 3 button emulation variables */ 499706f2543Smrg int iE3BCachedPress; 500706f2543Smrg Bool fE3BFakeButton2Sent; 501706f2543Smrg 502706f2543Smrg /* Privates used by shadow fb GDI server */ 503706f2543Smrg HBITMAP hbmpShadow; 504706f2543Smrg HDC hdcScreen; 505706f2543Smrg HDC hdcShadow; 506706f2543Smrg HWND hwndScreen; 507706f2543Smrg BITMAPINFOHEADER *pbmih; 508706f2543Smrg 509706f2543Smrg /* Privates used by shadow fb and primary fb DirectDraw servers */ 510706f2543Smrg LPDIRECTDRAW pdd; 511706f2543Smrg LPDIRECTDRAWSURFACE2 pddsPrimary; 512706f2543Smrg LPDIRECTDRAW2 pdd2; 513706f2543Smrg 514706f2543Smrg /* Privates used by shadow fb DirectDraw server */ 515706f2543Smrg LPDIRECTDRAWSURFACE2 pddsShadow; 516706f2543Smrg LPDDSURFACEDESC pddsdShadow; 517706f2543Smrg 518706f2543Smrg /* Privates used by primary fb DirectDraw server */ 519706f2543Smrg LPDIRECTDRAWSURFACE2 pddsOffscreen; 520706f2543Smrg LPDDSURFACEDESC pddsdOffscreen; 521706f2543Smrg LPDDSURFACEDESC pddsdPrimary; 522706f2543Smrg 523706f2543Smrg /* Privates used by shadow fb DirectDraw Nonlocking server */ 524706f2543Smrg LPDIRECTDRAW4 pdd4; 525706f2543Smrg LPDIRECTDRAWSURFACE4 pddsShadow4; 526706f2543Smrg LPDIRECTDRAWSURFACE4 pddsPrimary4; 527706f2543Smrg BOOL fRetryCreateSurface; 528706f2543Smrg 529706f2543Smrg /* Privates used by both shadow fb DirectDraw servers */ 530706f2543Smrg LPDIRECTDRAWCLIPPER pddcPrimary; 531706f2543Smrg 532706f2543Smrg#ifdef XWIN_MULTIWINDOWEXTWM 533706f2543Smrg /* Privates used by multi-window external window manager */ 534706f2543Smrg RootlessFrameID widTop; 535706f2543Smrg Bool fRestacking; 536706f2543Smrg#endif 537706f2543Smrg 538706f2543Smrg#ifdef XWIN_MULTIWINDOW 539706f2543Smrg /* Privates used by multi-window */ 540706f2543Smrg pthread_t ptWMProc; 541706f2543Smrg pthread_t ptXMsgProc; 542706f2543Smrg void *pWMInfo; 543706f2543Smrg#endif 544706f2543Smrg 545706f2543Smrg#if defined(XWIN_MULTIWINDOW) || defined(XWIN_MULTIWINDOWEXTWM) 546706f2543Smrg /* Privates used by both multi-window and rootless */ 547706f2543Smrg Bool fRootWindowShown; 548706f2543Smrg#endif 549706f2543Smrg 550706f2543Smrg#if defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW) 551706f2543Smrg /* Privates used for any module running in a seperate thread */ 552706f2543Smrg pthread_mutex_t pmServerStarted; 553706f2543Smrg Bool fServerStarted; 554706f2543Smrg#endif 555706f2543Smrg 556706f2543Smrg /* Engine specific functions */ 557706f2543Smrg winAllocateFBProcPtr pwinAllocateFB; 558706f2543Smrg winFreeFBProcPtr pwinFreeFB; 559706f2543Smrg winShadowUpdateProcPtr pwinShadowUpdate; 560706f2543Smrg winInitScreenProcPtr pwinInitScreen; 561706f2543Smrg winCloseScreenProcPtr pwinCloseScreen; 562706f2543Smrg winInitVisualsProcPtr pwinInitVisuals; 563706f2543Smrg winAdjustVideoModeProcPtr pwinAdjustVideoMode; 564706f2543Smrg winCreateBoundingWindowProcPtr pwinCreateBoundingWindow; 565706f2543Smrg winFinishScreenInitProcPtr pwinFinishScreenInit; 566706f2543Smrg winBltExposedRegionsProcPtr pwinBltExposedRegions; 567706f2543Smrg winActivateAppProcPtr pwinActivateApp; 568706f2543Smrg winRedrawScreenProcPtr pwinRedrawScreen; 569706f2543Smrg winRealizeInstalledPaletteProcPtr pwinRealizeInstalledPalette; 570706f2543Smrg winInstallColormapProcPtr pwinInstallColormap; 571706f2543Smrg winStoreColorsProcPtr pwinStoreColors; 572706f2543Smrg winCreateColormapProcPtr pwinCreateColormap; 573706f2543Smrg winDestroyColormapProcPtr pwinDestroyColormap; 574706f2543Smrg winHotKeyAltTabProcPtr pwinHotKeyAltTab; 575706f2543Smrg winCreatePrimarySurfaceProcPtr pwinCreatePrimarySurface; 576706f2543Smrg winReleasePrimarySurfaceProcPtr pwinReleasePrimarySurface; 577706f2543Smrg 578706f2543Smrg winCreateScreenResourcesProc pwinCreateScreenResources; 579706f2543Smrg 580706f2543Smrg#ifdef XWIN_MULTIWINDOW 581706f2543Smrg /* Window Procedures for MultiWindow mode */ 582706f2543Smrg winFinishCreateWindowsWindowProcPtr pwinFinishCreateWindowsWindow; 583706f2543Smrg#endif 584706f2543Smrg 585706f2543Smrg /* Window Procedures for Rootless mode */ 586706f2543Smrg CreateWindowProcPtr CreateWindow; 587706f2543Smrg DestroyWindowProcPtr DestroyWindow; 588706f2543Smrg PositionWindowProcPtr PositionWindow; 589706f2543Smrg ChangeWindowAttributesProcPtr ChangeWindowAttributes; 590706f2543Smrg RealizeWindowProcPtr RealizeWindow; 591706f2543Smrg UnrealizeWindowProcPtr UnrealizeWindow; 592706f2543Smrg ValidateTreeProcPtr ValidateTree; 593706f2543Smrg PostValidateTreeProcPtr PostValidateTree; 594706f2543Smrg WindowExposuresProcPtr WindowExposures; 595706f2543Smrg CopyWindowProcPtr CopyWindow; 596706f2543Smrg ClearToBackgroundProcPtr ClearToBackground; 597706f2543Smrg ClipNotifyProcPtr ClipNotify; 598706f2543Smrg RestackWindowProcPtr RestackWindow; 599706f2543Smrg ReparentWindowProcPtr ReparentWindow; 600706f2543Smrg ResizeWindowProcPtr ResizeWindow; 601706f2543Smrg MoveWindowProcPtr MoveWindow; 602706f2543Smrg SetShapeProcPtr SetShape; 603706f2543Smrg 604706f2543Smrg winCursorRec cursor; 605706f2543Smrg 606706f2543Smrg#ifdef XWIN_NATIVEGDI 607706f2543Smrg RealizeFontPtr RealizeFont; 608706f2543Smrg UnrealizeFontPtr UnrealizeFont; 609706f2543Smrg#endif 610706f2543Smrg 611706f2543Smrg} winPrivScreenRec; 612706f2543Smrg 613706f2543Smrg 614706f2543Smrg#ifdef XWIN_MULTIWINDOWEXTWM 615706f2543Smrgtypedef struct { 616706f2543Smrg RootlessWindowPtr pFrame; 617706f2543Smrg HWND hWnd; 618706f2543Smrg int dwWidthBytes; 619706f2543Smrg BITMAPINFOHEADER *pbmihShadow; 620706f2543Smrg HBITMAP hbmpShadow; 621706f2543Smrg HDC hdcShadow; 622706f2543Smrg HDC hdcScreen; 623706f2543Smrg BOOL fResized; 624706f2543Smrg BOOL fRestackingNow; 625706f2543Smrg BOOL fClose; 626706f2543Smrg BOOL fMovingOrSizing; 627706f2543Smrg BOOL fDestroyed;//for debug 628706f2543Smrg char *pfb; 629706f2543Smrg} win32RootlessWindowRec, *win32RootlessWindowPtr; 630706f2543Smrg#endif 631706f2543Smrg 632706f2543Smrg 633706f2543Smrgtypedef struct { 634706f2543Smrg pointer value; 635706f2543Smrg XID id; 636706f2543Smrg} WindowIDPairRec, *WindowIDPairPtr; 637706f2543Smrg 638706f2543Smrg 639706f2543Smrg/* 640706f2543Smrg * Extern declares for general global variables 641706f2543Smrg */ 642706f2543Smrg 643706f2543Smrg#include "winglobals.h" 644706f2543Smrg 645706f2543Smrgextern winScreenInfo * g_ScreenInfo; 646706f2543Smrgextern miPointerScreenFuncRec g_winPointerCursorFuncs; 647706f2543Smrgextern DWORD g_dwEvents; 648706f2543Smrg#ifdef HAS_DEVWINDOWS 649706f2543Smrgextern int g_fdMessageQueue; 650706f2543Smrg#endif 651706f2543Smrgextern DevPrivateKeyRec g_iScreenPrivateKeyRec; 652706f2543Smrg#define g_iScreenPrivateKey (&g_iScreenPrivateKeyRec) 653706f2543Smrgextern DevPrivateKeyRec g_iCmapPrivateKeyRec; 654706f2543Smrg#define g_iCmapPrivateKey (&g_iCmapPrivateKeyRec) 655706f2543Smrgextern DevPrivateKeyRec g_iGCPrivateKeyRec; 656706f2543Smrg#define g_iGCPrivateKey (&g_iGCPrivateKeyRec) 657706f2543Smrgextern DevPrivateKeyRec g_iPixmapPrivateKeyRec; 658706f2543Smrg#define g_iPixmapPrivateKey (&g_iPixmapPrivateKeyRec) 659706f2543Smrgextern DevPrivateKeyRec g_iWindowPrivateKeyRec; 660706f2543Smrg#define g_iWindowPrivateKey (&g_iWindowPrivateKeyRec) 661706f2543Smrg 662706f2543Smrgextern unsigned long g_ulServerGeneration; 663706f2543Smrgextern DWORD g_dwEnginesSupported; 664706f2543Smrgextern HINSTANCE g_hInstance; 665706f2543Smrgextern int g_copyROP[]; 666706f2543Smrgextern int g_patternROP[]; 667706f2543Smrgextern const char * g_pszQueryHost; 668706f2543Smrgextern DeviceIntPtr g_pwinPointer; 669706f2543Smrgextern DeviceIntPtr g_pwinKeyboard; 670706f2543Smrg 671706f2543Smrg/* 672706f2543Smrg * Extern declares for dynamically loaded library function pointers 673706f2543Smrg */ 674706f2543Smrg 675706f2543Smrgextern FARPROC g_fpDirectDrawCreate; 676706f2543Smrgextern FARPROC g_fpDirectDrawCreateClipper; 677706f2543Smrgextern FARPROC g_fpTrackMouseEvent; 678706f2543Smrg 679706f2543Smrg 680706f2543Smrg/* 681706f2543Smrg * Screen privates macros 682706f2543Smrg */ 683706f2543Smrg 684706f2543Smrg#define winGetScreenPriv(pScreen) ((winPrivScreenPtr) \ 685706f2543Smrg dixLookupPrivate(&(pScreen)->devPrivates, g_iScreenPrivateKey)) 686706f2543Smrg 687706f2543Smrg#define winSetScreenPriv(pScreen,v) \ 688706f2543Smrg dixSetPrivate(&(pScreen)->devPrivates, g_iScreenPrivateKey, v) 689706f2543Smrg 690706f2543Smrg#define winScreenPriv(pScreen) \ 691706f2543Smrg winPrivScreenPtr pScreenPriv = winGetScreenPriv(pScreen) 692706f2543Smrg 693706f2543Smrg 694706f2543Smrg/* 695706f2543Smrg * Colormap privates macros 696706f2543Smrg */ 697706f2543Smrg 698706f2543Smrg#define winGetCmapPriv(pCmap) ((winPrivCmapPtr) \ 699706f2543Smrg dixLookupPrivate(&(pCmap)->devPrivates, g_iCmapPrivateKey)) 700706f2543Smrg 701706f2543Smrg#define winSetCmapPriv(pCmap,v) \ 702706f2543Smrg dixSetPrivate(&(pCmap)->devPrivates, g_iCmapPrivateKey, v) 703706f2543Smrg 704706f2543Smrg#define winCmapPriv(pCmap) \ 705706f2543Smrg winPrivCmapPtr pCmapPriv = winGetCmapPriv(pCmap) 706706f2543Smrg 707706f2543Smrg 708706f2543Smrg/* 709706f2543Smrg * GC privates macros 710706f2543Smrg */ 711706f2543Smrg 712706f2543Smrg#define winGetGCPriv(pGC) ((winPrivGCPtr) \ 713706f2543Smrg dixLookupPrivate(&(pGC)->devPrivates, g_iGCPrivateKey)) 714706f2543Smrg 715706f2543Smrg#define winSetGCPriv(pGC,v) \ 716706f2543Smrg dixSetPrivate(&(pGC)->devPrivates, g_iGCPrivateKey, v) 717706f2543Smrg 718706f2543Smrg#define winGCPriv(pGC) \ 719706f2543Smrg winPrivGCPtr pGCPriv = winGetGCPriv(pGC) 720706f2543Smrg 721706f2543Smrg 722706f2543Smrg/* 723706f2543Smrg * Pixmap privates macros 724706f2543Smrg */ 725706f2543Smrg 726706f2543Smrg#define winGetPixmapPriv(pPixmap) ((winPrivPixmapPtr) \ 727706f2543Smrg dixLookupPrivate(&(pPixmap)->devPrivates, g_iPixmapPrivateKey)) 728706f2543Smrg 729706f2543Smrg#define winSetPixmapPriv(pPixmap,v) \ 730706f2543Smrg dixLookupPrivate(&(pPixmap)->devPrivates, g_iPixmapPrivateKey, v) 731706f2543Smrg 732706f2543Smrg#define winPixmapPriv(pPixmap) \ 733706f2543Smrg winPrivPixmapPtr pPixmapPriv = winGetPixmapPriv(pPixmap) 734706f2543Smrg 735706f2543Smrg 736706f2543Smrg/* 737706f2543Smrg * Window privates macros 738706f2543Smrg */ 739706f2543Smrg 740706f2543Smrg#define winGetWindowPriv(pWin) ((winPrivWinPtr) \ 741706f2543Smrg dixLookupPrivate(&(pWin)->devPrivates, g_iWindowPrivateKey)) 742706f2543Smrg 743706f2543Smrg#define winSetWindowPriv(pWin,v) \ 744706f2543Smrg dixLookupPrivate(&(pWin)->devPrivates, g_iWindowPrivateKey, v) 745706f2543Smrg 746706f2543Smrg#define winWindowPriv(pWin) \ 747706f2543Smrg winPrivWinPtr pWinPriv = winGetWindowPriv(pWin) 748706f2543Smrg 749706f2543Smrg/* 750706f2543Smrg * wrapper macros 751706f2543Smrg */ 752706f2543Smrg#define _WIN_WRAP(priv, real, mem, func) {\ 753706f2543Smrg priv->mem = real->mem; \ 754706f2543Smrg real->mem = func; \ 755706f2543Smrg} 756706f2543Smrg 757706f2543Smrg#define _WIN_UNWRAP(priv, real, mem) {\ 758706f2543Smrg real->mem = priv->mem; \ 759706f2543Smrg} 760706f2543Smrg 761706f2543Smrg#define WIN_WRAP(mem, func) _WIN_WRAP(pScreenPriv, pScreen, mem, func) 762706f2543Smrg 763706f2543Smrg#define WIN_UNWRAP(mem) _WIN_UNWRAP(pScreenPriv, pScreen, mem) 764706f2543Smrg 765706f2543Smrg/* 766706f2543Smrg * BEGIN DDX and DIX Function Prototypes 767706f2543Smrg */ 768706f2543Smrg 769706f2543Smrg 770706f2543Smrg/* 771706f2543Smrg * winallpriv.c 772706f2543Smrg */ 773706f2543Smrg 774706f2543SmrgBool 775706f2543SmrgwinAllocatePrivates (ScreenPtr pScreen); 776706f2543Smrg 777706f2543SmrgBool 778706f2543SmrgwinInitCmapPrivates (ColormapPtr pCmap, int index); 779706f2543Smrg 780706f2543SmrgBool 781706f2543SmrgwinAllocateCmapPrivates (ColormapPtr pCmap); 782706f2543Smrg 783706f2543Smrg 784706f2543Smrg/* 785706f2543Smrg * winauth.c 786706f2543Smrg */ 787706f2543Smrg 788706f2543Smrg#if defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW) 789706f2543SmrgBool 790706f2543SmrgwinGenerateAuthorization (void); 791706f2543Smrgvoid winSetAuthorization(void); 792706f2543Smrg#endif 793706f2543Smrg 794706f2543Smrg 795706f2543Smrg/* 796706f2543Smrg * winblock.c 797706f2543Smrg */ 798706f2543Smrg 799706f2543Smrgvoid 800706f2543SmrgwinBlockHandler (int nScreen, 801706f2543Smrg pointer pBlockData, 802706f2543Smrg pointer pTimeout, 803706f2543Smrg pointer pReadMask); 804706f2543Smrg 805706f2543Smrg 806706f2543Smrg#ifdef XWIN_NATIVEGDI 807706f2543Smrg/* 808706f2543Smrg * winclip.c 809706f2543Smrg */ 810706f2543Smrg 811706f2543SmrgRegionPtr 812706f2543SmrgwinPixmapToRegionNativeGDI (PixmapPtr pPix); 813706f2543Smrg#endif 814706f2543Smrg 815706f2543Smrg 816706f2543Smrg#ifdef XWIN_CLIPBOARD 817706f2543Smrg/* 818706f2543Smrg * winclipboardinit.c 819706f2543Smrg */ 820706f2543Smrg 821706f2543SmrgBool 822706f2543SmrgwinInitClipboard (void); 823706f2543Smrg 824706f2543Smrgvoid 825706f2543SmrgwinFixClipboardChain (void); 826706f2543Smrg#endif 827706f2543Smrg 828706f2543Smrg 829706f2543Smrg/* 830706f2543Smrg * wincmap.c 831706f2543Smrg */ 832706f2543Smrg 833706f2543Smrgvoid 834706f2543SmrgwinSetColormapFunctions (ScreenPtr pScreen); 835706f2543Smrg 836706f2543SmrgBool 837706f2543SmrgwinCreateDefColormap (ScreenPtr pScreen); 838706f2543Smrg 839706f2543Smrg 840706f2543Smrg/* 841706f2543Smrg * wincreatewnd.c 842706f2543Smrg */ 843706f2543Smrg 844706f2543SmrgBool 845706f2543SmrgwinCreateBoundingWindowFullScreen (ScreenPtr pScreen); 846706f2543Smrg 847706f2543SmrgBool 848706f2543SmrgwinCreateBoundingWindowWindowed (ScreenPtr pScreen); 849706f2543Smrg 850706f2543Smrg 851706f2543Smrg/* 852706f2543Smrg * windialogs.c 853706f2543Smrg */ 854706f2543Smrg 855706f2543Smrgvoid 856706f2543SmrgwinDisplayExitDialog (winPrivScreenPtr pScreenPriv); 857706f2543Smrg 858706f2543Smrgvoid 859706f2543SmrgwinDisplayDepthChangeDialog (winPrivScreenPtr pScreenPriv); 860706f2543Smrg 861706f2543Smrgvoid 862706f2543SmrgwinDisplayAboutDialog (winPrivScreenPtr pScreenPriv); 863706f2543Smrg 864706f2543Smrg 865706f2543Smrg/* 866706f2543Smrg * winengine.c 867706f2543Smrg */ 868706f2543Smrg 869706f2543Smrgvoid 870706f2543SmrgwinDetectSupportedEngines (void); 871706f2543Smrg 872706f2543SmrgBool 873706f2543SmrgwinSetEngine (ScreenPtr pScreen); 874706f2543Smrg 875706f2543SmrgBool 876706f2543SmrgwinGetDDProcAddresses (void); 877706f2543Smrg 878706f2543Smrgvoid 879706f2543SmrgwinReleaseDDProcAddresses(void); 880706f2543Smrg 881706f2543Smrg 882706f2543Smrg/* 883706f2543Smrg * winerror.c 884706f2543Smrg */ 885706f2543Smrg 886706f2543Smrg#ifdef DDXOSVERRORF 887706f2543Smrgvoid 888706f2543SmrgOSVenderVErrorF (const char *pszFormat, va_list va_args); 889706f2543Smrg#endif 890706f2543Smrg 891706f2543Smrgvoid 892706f2543SmrgwinMessageBoxF (const char *pszError, UINT uType, ...); 893706f2543Smrg 894706f2543Smrg 895706f2543Smrg#ifdef XWIN_NATIVEGDI 896706f2543Smrg/* 897706f2543Smrg * winfillsp.c 898706f2543Smrg */ 899706f2543Smrg 900706f2543Smrgvoid 901706f2543SmrgwinFillSpansNativeGDI (DrawablePtr pDrawable, 902706f2543Smrg GCPtr pGC, 903706f2543Smrg int nSpans, 904706f2543Smrg DDXPointPtr pPoints, 905706f2543Smrg int *pWidths, 906706f2543Smrg int fSorted); 907706f2543Smrg#endif 908706f2543Smrg 909706f2543Smrg 910706f2543Smrg#ifdef XWIN_NATIVEGDI 911706f2543Smrg/* 912706f2543Smrg * winfont.c 913706f2543Smrg */ 914706f2543Smrg 915706f2543SmrgBool 916706f2543SmrgwinRealizeFontNativeGDI (ScreenPtr pScreen, FontPtr pFont); 917706f2543Smrg 918706f2543SmrgBool 919706f2543SmrgwinUnrealizeFontNativeGDI (ScreenPtr pScreen, FontPtr pFont); 920706f2543Smrg#endif 921706f2543Smrg 922706f2543Smrg 923706f2543Smrg#ifdef XWIN_NATIVEGDI 924706f2543Smrg/* 925706f2543Smrg * wingc.c 926706f2543Smrg */ 927706f2543Smrg 928706f2543SmrgBool 929706f2543SmrgwinCreateGCNativeGDI (GCPtr pGC); 930706f2543Smrg#endif 931706f2543Smrg 932706f2543Smrg 933706f2543Smrg#ifdef XWIN_NATIVEGDI 934706f2543Smrg/* 935706f2543Smrg * wingetsp.c 936706f2543Smrg */ 937706f2543Smrg 938706f2543Smrgvoid 939706f2543SmrgwinGetSpansNativeGDI (DrawablePtr pDrawable, 940706f2543Smrg int wMax, 941706f2543Smrg DDXPointPtr pPoints, 942706f2543Smrg int *pWidths, 943706f2543Smrg int nSpans, 944706f2543Smrg char *pDst); 945706f2543Smrg#endif 946706f2543Smrg 947706f2543Smrg 948706f2543Smrg/* 949706f2543Smrg * winglobals.c 950706f2543Smrg */ 951706f2543Smrg 952706f2543Smrgvoid 953706f2543SmrgwinInitializeGlobals (void); 954706f2543Smrg 955706f2543Smrg 956706f2543Smrg/* 957706f2543Smrg * winkeybd.c 958706f2543Smrg */ 959706f2543Smrg 960706f2543Smrgvoid 961706f2543SmrgwinTranslateKey (WPARAM wParam, LPARAM lParam, int *piScanCode); 962706f2543Smrg 963706f2543Smrgint 964706f2543SmrgwinKeybdProc (DeviceIntPtr pDeviceInt, int iState); 965706f2543Smrg 966706f2543Smrgvoid 967706f2543SmrgwinInitializeModeKeyStates (void); 968706f2543Smrg 969706f2543Smrgvoid 970706f2543SmrgwinRestoreModeKeyStates (void); 971706f2543Smrg 972706f2543SmrgBool 973706f2543SmrgwinIsFakeCtrl_L (UINT message, WPARAM wParam, LPARAM lParam); 974706f2543Smrg 975706f2543Smrgvoid 976706f2543SmrgwinKeybdReleaseKeys (void); 977706f2543Smrg 978706f2543Smrgvoid 979706f2543SmrgwinSendKeyEvent (DWORD dwKey, Bool fDown); 980706f2543Smrg 981706f2543SmrgBOOL 982706f2543SmrgwinCheckKeyPressed(WPARAM wParam, LPARAM lParam); 983706f2543Smrg 984706f2543Smrgvoid 985706f2543SmrgwinFixShiftKeys (int iScanCode); 986706f2543Smrg 987706f2543Smrg/* 988706f2543Smrg * winkeyhook.c 989706f2543Smrg */ 990706f2543Smrg 991706f2543SmrgBool 992706f2543SmrgwinInstallKeyboardHookLL (void); 993706f2543Smrg 994706f2543Smrgvoid 995706f2543SmrgwinRemoveKeyboardHookLL (void); 996706f2543Smrg 997706f2543Smrg 998706f2543Smrg/* 999706f2543Smrg * winmisc.c 1000706f2543Smrg */ 1001706f2543Smrg 1002706f2543Smrg#ifdef XWIN_NATIVEGDI 1003706f2543Smrgvoid 1004706f2543SmrgwinQueryBestSizeNativeGDI (int class, unsigned short *pWidth, 1005706f2543Smrg unsigned short *pHeight, ScreenPtr pScreen); 1006706f2543Smrg#endif 1007706f2543Smrg 1008706f2543SmrgCARD8 1009706f2543SmrgwinCountBits (DWORD dw); 1010706f2543Smrg 1011706f2543SmrgBool 1012706f2543SmrgwinUpdateFBPointer (ScreenPtr pScreen, void *pbits); 1013706f2543Smrg 1014706f2543Smrg#ifdef XWIN_NATIVEGDI 1015706f2543SmrgBOOL 1016706f2543SmrgwinPaintBackground (HWND hwnd, COLORREF colorref); 1017706f2543Smrg#endif 1018706f2543Smrg 1019706f2543Smrg 1020706f2543Smrg/* 1021706f2543Smrg * winmouse.c 1022706f2543Smrg */ 1023706f2543Smrg 1024706f2543Smrgint 1025706f2543SmrgwinMouseProc (DeviceIntPtr pDeviceInt, int iState); 1026706f2543Smrg 1027706f2543Smrgint 1028706f2543SmrgwinMouseWheel (ScreenPtr pScreen, int iDeltaZ); 1029706f2543Smrg 1030706f2543Smrgvoid 1031706f2543SmrgwinMouseButtonsSendEvent (int iEventType, int iButton); 1032706f2543Smrg 1033706f2543Smrgint 1034706f2543SmrgwinMouseButtonsHandle (ScreenPtr pScreen, 1035706f2543Smrg int iEventType, int iButton, 1036706f2543Smrg WPARAM wParam); 1037706f2543Smrg 1038706f2543Smrgvoid 1039706f2543SmrgwinEnqueueMotion(int x, int y); 1040706f2543Smrg 1041706f2543Smrg#ifdef XWIN_NATIVEGDI 1042706f2543Smrg/* 1043706f2543Smrg * winnativegdi.c 1044706f2543Smrg */ 1045706f2543Smrg 1046706f2543SmrgHBITMAP 1047706f2543SmrgwinCreateDIBNativeGDI (int iWidth, int iHeight, int iDepth, 1048706f2543Smrg BYTE **ppbBits, BITMAPINFO **ppbmi); 1049706f2543Smrg 1050706f2543SmrgBool 1051706f2543SmrgwinSetEngineFunctionsNativeGDI (ScreenPtr pScreen); 1052706f2543Smrg#endif 1053706f2543Smrg 1054706f2543Smrg 1055706f2543Smrg#ifdef XWIN_PRIMARYFB 1056706f2543Smrg/* 1057706f2543Smrg * winpfbddd.c 1058706f2543Smrg */ 1059706f2543Smrg 1060706f2543SmrgBool 1061706f2543SmrgwinSetEngineFunctionsPrimaryDD (ScreenPtr pScreen); 1062706f2543Smrg#endif 1063706f2543Smrg 1064706f2543Smrg 1065706f2543Smrg#ifdef XWIN_NATIVEGDI 1066706f2543Smrg/* 1067706f2543Smrg * winpixmap.c 1068706f2543Smrg */ 1069706f2543Smrg 1070706f2543SmrgPixmapPtr 1071706f2543SmrgwinCreatePixmapNativeGDI (ScreenPtr pScreen, int width, int height, int depth, 1072706f2543Smrg unsigned usage_hint); 1073706f2543Smrg 1074706f2543SmrgBool 1075706f2543SmrgwinDestroyPixmapNativeGDI (PixmapPtr pPixmap); 1076706f2543Smrg 1077706f2543SmrgBool 1078706f2543SmrgwinModifyPixmapHeaderNativeGDI (PixmapPtr pPixmap, 1079706f2543Smrg int iWidth, int iHeight, 1080706f2543Smrg int iDepth, 1081706f2543Smrg int iBitsPerPixel, 1082706f2543Smrg int devKind, 1083706f2543Smrg pointer pPixData); 1084706f2543Smrg#endif 1085706f2543Smrg 1086706f2543Smrg#ifdef XWIN_NATIVEGDI 1087706f2543Smrg/* 1088706f2543Smrg * winpolyline.c 1089706f2543Smrg */ 1090706f2543Smrg 1091706f2543Smrgvoid 1092706f2543SmrgwinPolyLineNativeGDI (DrawablePtr pDrawable, 1093706f2543Smrg GCPtr pGC, 1094706f2543Smrg int mode, 1095706f2543Smrg int npt, 1096706f2543Smrg DDXPointPtr ppt); 1097706f2543Smrg#endif 1098706f2543Smrg 1099706f2543Smrg 1100706f2543Smrg#ifdef XWIN_NATIVEGDI 1101706f2543Smrg/* 1102706f2543Smrg * winpushpxl.c 1103706f2543Smrg */ 1104706f2543Smrg 1105706f2543Smrgvoid 1106706f2543SmrgwinPushPixels (GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDrawable, 1107706f2543Smrg int dx, int dy, int xOrg, int yOrg); 1108706f2543Smrg#endif 1109706f2543Smrg 1110706f2543Smrg 1111706f2543Smrg/* 1112706f2543Smrg * winscrinit.c 1113706f2543Smrg */ 1114706f2543Smrg 1115706f2543SmrgBool 1116706f2543SmrgwinScreenInit (int index, 1117706f2543Smrg ScreenPtr pScreen, 1118706f2543Smrg int argc, char **argv); 1119706f2543Smrg 1120706f2543SmrgBool 1121706f2543SmrgwinFinishScreenInitFB (int index, 1122706f2543Smrg ScreenPtr pScreen, 1123706f2543Smrg int argc, char **argv); 1124706f2543Smrg 1125706f2543Smrg#if defined(XWIN_NATIVEGDI) 1126706f2543SmrgBool 1127706f2543SmrgwinFinishScreenInitNativeGDI (int index, 1128706f2543Smrg ScreenPtr pScreen, 1129706f2543Smrg int argc, char **argv); 1130706f2543Smrg#endif 1131706f2543Smrg 1132706f2543Smrg 1133706f2543Smrg#ifdef XWIN_NATIVEGDI 1134706f2543Smrg/* 1135706f2543Smrg * winsetsp.c 1136706f2543Smrg */ 1137706f2543Smrg 1138706f2543Smrgvoid 1139706f2543SmrgwinSetSpansNativeGDI (DrawablePtr pDrawable, 1140706f2543Smrg GCPtr pGC, 1141706f2543Smrg char *pSrc, 1142706f2543Smrg DDXPointPtr pPoints, 1143706f2543Smrg int *pWidth, 1144706f2543Smrg int nSpans, 1145706f2543Smrg int fSorted); 1146706f2543Smrg#endif 1147706f2543Smrg 1148706f2543Smrg 1149706f2543Smrg/* 1150706f2543Smrg * winshaddd.c 1151706f2543Smrg */ 1152706f2543Smrg 1153706f2543SmrgBool 1154706f2543SmrgwinSetEngineFunctionsShadowDD (ScreenPtr pScreen); 1155706f2543Smrg 1156706f2543Smrg 1157706f2543Smrg/* 1158706f2543Smrg * winshadddnl.c 1159706f2543Smrg */ 1160706f2543Smrg 1161706f2543SmrgBool 1162706f2543SmrgwinSetEngineFunctionsShadowDDNL (ScreenPtr pScreen); 1163706f2543Smrg 1164706f2543Smrg 1165706f2543Smrg/* 1166706f2543Smrg * winshadgdi.c 1167706f2543Smrg */ 1168706f2543Smrg 1169706f2543SmrgBool 1170706f2543SmrgwinSetEngineFunctionsShadowGDI (ScreenPtr pScreen); 1171706f2543Smrg 1172706f2543Smrg 1173706f2543Smrg/* 1174706f2543Smrg * winwakeup.c 1175706f2543Smrg */ 1176706f2543Smrg 1177706f2543Smrgvoid 1178706f2543SmrgwinWakeupHandler (int nScreen, 1179706f2543Smrg pointer pWakeupData, 1180706f2543Smrg unsigned long ulResult, 1181706f2543Smrg pointer pReadmask); 1182706f2543Smrg 1183706f2543Smrg 1184706f2543Smrg/* 1185706f2543Smrg * winwindow.c 1186706f2543Smrg */ 1187706f2543Smrg 1188706f2543Smrg#ifdef XWIN_NATIVEGDI 1189706f2543SmrgBool 1190706f2543SmrgwinCreateWindowNativeGDI (WindowPtr pWin); 1191706f2543Smrg 1192706f2543SmrgBool 1193706f2543SmrgwinDestroyWindowNativeGDI (WindowPtr pWin); 1194706f2543Smrg 1195706f2543SmrgBool 1196706f2543SmrgwinPositionWindowNativeGDI (WindowPtr pWin, int x, int y); 1197706f2543Smrg 1198706f2543Smrgvoid 1199706f2543SmrgwinCopyWindowNativeGDI (WindowPtr pWin, 1200706f2543Smrg DDXPointRec ptOldOrg, 1201706f2543Smrg RegionPtr prgnSrc); 1202706f2543Smrg 1203706f2543SmrgBool 1204706f2543SmrgwinChangeWindowAttributesNativeGDI (WindowPtr pWin, unsigned long mask); 1205706f2543Smrg 1206706f2543SmrgBool 1207706f2543SmrgwinUnmapWindowNativeGDI (WindowPtr pWindow); 1208706f2543Smrg 1209706f2543SmrgBool 1210706f2543SmrgwinMapWindowNativeGDI (WindowPtr pWindow); 1211706f2543Smrg#endif 1212706f2543Smrg 1213706f2543SmrgBool 1214706f2543SmrgwinCreateWindowRootless (WindowPtr pWindow); 1215706f2543Smrg 1216706f2543SmrgBool 1217706f2543SmrgwinDestroyWindowRootless (WindowPtr pWindow); 1218706f2543Smrg 1219706f2543SmrgBool 1220706f2543SmrgwinPositionWindowRootless (WindowPtr pWindow, int x, int y); 1221706f2543Smrg 1222706f2543SmrgBool 1223706f2543SmrgwinChangeWindowAttributesRootless (WindowPtr pWindow, unsigned long mask); 1224706f2543Smrg 1225706f2543SmrgBool 1226706f2543SmrgwinUnmapWindowRootless (WindowPtr pWindow); 1227706f2543Smrg 1228706f2543SmrgBool 1229706f2543SmrgwinMapWindowRootless (WindowPtr pWindow); 1230706f2543Smrg 1231706f2543Smrgvoid 1232706f2543SmrgwinSetShapeRootless (WindowPtr pWindow, int kind); 1233706f2543Smrg 1234706f2543Smrg 1235706f2543Smrg/* 1236706f2543Smrg * winmultiwindowicons.c - Used by both multi-window and Win32Rootless 1237706f2543Smrg */ 1238706f2543Smrg 1239706f2543SmrgHICON 1240706f2543SmrgwinXIconToHICON (WindowPtr pWin, int iconSize); 1241706f2543Smrg 1242706f2543Smrgvoid 1243706f2543SmrgwinSelectIcons(WindowPtr pWin, HICON *pIcon, HICON *pSmallIcon); 1244706f2543Smrg 1245706f2543Smrg#ifdef XWIN_MULTIWINDOW 1246706f2543Smrg/* 1247706f2543Smrg * winmultiwindowshape.c 1248706f2543Smrg */ 1249706f2543Smrg 1250706f2543Smrgvoid 1251706f2543SmrgwinReshapeMultiWindow (WindowPtr pWin); 1252706f2543Smrg 1253706f2543Smrgvoid 1254706f2543SmrgwinSetShapeMultiWindow (WindowPtr pWindow, int kind); 1255706f2543Smrg 1256706f2543Smrgvoid 1257706f2543SmrgwinUpdateRgnMultiWindow (WindowPtr pWindow); 1258706f2543Smrg#endif 1259706f2543Smrg 1260706f2543Smrg 1261706f2543Smrg#ifdef XWIN_MULTIWINDOW 1262706f2543Smrg/* 1263706f2543Smrg * winmultiwindowwindow.c 1264706f2543Smrg */ 1265706f2543Smrg 1266706f2543SmrgBool 1267706f2543SmrgwinCreateWindowMultiWindow (WindowPtr pWindow); 1268706f2543Smrg 1269706f2543SmrgBool 1270706f2543SmrgwinDestroyWindowMultiWindow (WindowPtr pWindow); 1271706f2543Smrg 1272706f2543SmrgBool 1273706f2543SmrgwinPositionWindowMultiWindow (WindowPtr pWindow, int x, int y); 1274706f2543Smrg 1275706f2543SmrgBool 1276706f2543SmrgwinChangeWindowAttributesMultiWindow (WindowPtr pWindow, unsigned long mask); 1277706f2543Smrg 1278706f2543SmrgBool 1279706f2543SmrgwinUnmapWindowMultiWindow (WindowPtr pWindow); 1280706f2543Smrg 1281706f2543SmrgBool 1282706f2543SmrgwinMapWindowMultiWindow (WindowPtr pWindow); 1283706f2543Smrg 1284706f2543Smrgvoid 1285706f2543SmrgwinReparentWindowMultiWindow (WindowPtr pWin, WindowPtr pPriorParent); 1286706f2543Smrg 1287706f2543Smrgvoid 1288706f2543SmrgwinRestackWindowMultiWindow (WindowPtr pWin, WindowPtr pOldNextSib); 1289706f2543Smrg 1290706f2543Smrgvoid 1291706f2543SmrgwinReorderWindowsMultiWindow (void); 1292706f2543Smrg 1293706f2543Smrgvoid 1294706f2543SmrgwinResizeWindowMultiWindow (WindowPtr pWin, int x, int y, unsigned int w, 1295706f2543Smrg unsigned int h, WindowPtr pSib); 1296706f2543Smrgvoid 1297706f2543SmrgwinMoveWindowMultiWindow (WindowPtr pWin, int x, int y, 1298706f2543Smrg WindowPtr pSib, VTKind kind); 1299706f2543Smrg 1300706f2543Smrgvoid 1301706f2543SmrgwinCopyWindowMultiWindow (WindowPtr pWin, DDXPointRec oldpt, 1302706f2543Smrg RegionPtr oldRegion); 1303706f2543Smrg 1304706f2543SmrgXID 1305706f2543SmrgwinGetWindowID (WindowPtr pWin); 1306706f2543Smrg 1307706f2543Smrgint 1308706f2543SmrgwinAdjustXWindow (WindowPtr pWin, HWND hwnd); 1309706f2543Smrg#endif 1310706f2543Smrg 1311706f2543Smrg 1312706f2543Smrg#ifdef XWIN_MULTIWINDOW 1313706f2543Smrg/* 1314706f2543Smrg * winmultiwindowwndproc.c 1315706f2543Smrg */ 1316706f2543Smrg 1317706f2543SmrgLRESULT CALLBACK 1318706f2543SmrgwinTopLevelWindowProc (HWND hwnd, UINT message, 1319706f2543Smrg WPARAM wParam, LPARAM lParam); 1320706f2543Smrg#endif 1321706f2543Smrg 1322706f2543Smrg 1323706f2543Smrg/* 1324706f2543Smrg * wintrayicon.c 1325706f2543Smrg */ 1326706f2543Smrg 1327706f2543Smrgvoid 1328706f2543SmrgwinInitNotifyIcon (winPrivScreenPtr pScreenPriv); 1329706f2543Smrg 1330706f2543Smrgvoid 1331706f2543SmrgwinDeleteNotifyIcon (winPrivScreenPtr pScreenPriv); 1332706f2543Smrg 1333706f2543SmrgLRESULT 1334706f2543SmrgwinHandleIconMessage (HWND hwnd, UINT message, 1335706f2543Smrg WPARAM wParam, LPARAM lParam, 1336706f2543Smrg winPrivScreenPtr pScreenPriv); 1337706f2543Smrg 1338706f2543Smrg 1339706f2543Smrg/* 1340706f2543Smrg * winwndproc.c 1341706f2543Smrg */ 1342706f2543Smrg 1343706f2543SmrgLRESULT CALLBACK 1344706f2543SmrgwinWindowProc (HWND hWnd, UINT message, 1345706f2543Smrg WPARAM wParam, LPARAM lParam); 1346706f2543Smrg 1347706f2543Smrg 1348706f2543Smrg#ifdef XWIN_MULTIWINDOWEXTWM 1349706f2543Smrg/* 1350706f2543Smrg * winwin32rootless.c 1351706f2543Smrg */ 1352706f2543Smrg 1353706f2543SmrgBool 1354706f2543SmrgwinMWExtWMCreateFrame (RootlessWindowPtr pFrame, ScreenPtr pScreen, 1355706f2543Smrg int newX, int newY, RegionPtr pShape); 1356706f2543Smrg 1357706f2543Smrgvoid 1358706f2543SmrgwinMWExtWMDestroyFrame (RootlessFrameID wid); 1359706f2543Smrg 1360706f2543Smrgvoid 1361706f2543SmrgwinMWExtWMMoveFrame (RootlessFrameID wid, ScreenPtr pScreen, int newX, int newY); 1362706f2543Smrg 1363706f2543Smrgvoid 1364706f2543SmrgwinMWExtWMResizeFrame (RootlessFrameID wid, ScreenPtr pScreen, 1365706f2543Smrg int newX, int newY, unsigned int newW, unsigned int newH, 1366706f2543Smrg unsigned int gravity); 1367706f2543Smrg 1368706f2543Smrgvoid 1369706f2543SmrgwinMWExtWMRestackFrame (RootlessFrameID wid, RootlessFrameID nextWid); 1370706f2543Smrg 1371706f2543Smrgvoid 1372706f2543SmrgwinMWExtWMReshapeFrame (RootlessFrameID wid, RegionPtr pShape); 1373706f2543Smrg 1374706f2543Smrgvoid 1375706f2543SmrgwinMWExtWMUnmapFrame (RootlessFrameID wid); 1376706f2543Smrg 1377706f2543Smrgvoid 1378706f2543SmrgwinMWExtWMStartDrawing (RootlessFrameID wid, char **pixelData, int *bytesPerRow); 1379706f2543Smrg 1380706f2543Smrgvoid 1381706f2543SmrgwinMWExtWMStopDrawing (RootlessFrameID wid, Bool flush); 1382706f2543Smrg 1383706f2543Smrgvoid 1384706f2543SmrgwinMWExtWMUpdateRegion (RootlessFrameID wid, RegionPtr pDamage); 1385706f2543Smrg 1386706f2543Smrgvoid 1387706f2543SmrgwinMWExtWMDamageRects (RootlessFrameID wid, int count, const BoxRec *rects, 1388706f2543Smrg int shift_x, int shift_y); 1389706f2543Smrg 1390706f2543Smrgvoid 1391706f2543SmrgwinMWExtWMRootlessSwitchWindow (RootlessWindowPtr pFrame, WindowPtr oldWin); 1392706f2543Smrg 1393706f2543Smrgvoid 1394706f2543SmrgwinMWExtWMCopyBytes (unsigned int width, unsigned int height, 1395706f2543Smrg const void *src, unsigned int srcRowBytes, 1396706f2543Smrg void *dst, unsigned int dstRowBytes); 1397706f2543Smrg 1398706f2543Smrgvoid 1399706f2543SmrgwinMWExtWMCopyWindow (RootlessFrameID wid, int dstNrects, const BoxRec *dstRects, 1400706f2543Smrg int dx, int dy); 1401706f2543Smrg#endif 1402706f2543Smrg 1403706f2543Smrg 1404706f2543Smrg#ifdef XWIN_MULTIWINDOWEXTWM 1405706f2543Smrg/* 1406706f2543Smrg * winwin32rootlesswindow.c 1407706f2543Smrg */ 1408706f2543Smrg 1409706f2543Smrgvoid 1410706f2543SmrgwinMWExtWMReorderWindows (ScreenPtr pScreen); 1411706f2543Smrg 1412706f2543Smrgvoid 1413706f2543SmrgwinMWExtWMMoveXWindow (WindowPtr pWin, int x, int y); 1414706f2543Smrg 1415706f2543Smrgvoid 1416706f2543SmrgwinMWExtWMResizeXWindow (WindowPtr pWin, int w, int h); 1417706f2543Smrg 1418706f2543Smrgvoid 1419706f2543SmrgwinMWExtWMMoveResizeXWindow (WindowPtr pWin, int x, int y, int w, int h); 1420706f2543Smrg 1421706f2543Smrgvoid 1422706f2543SmrgwinMWExtWMUpdateIcon (Window id); 1423706f2543Smrg 1424706f2543Smrgvoid 1425706f2543SmrgwinMWExtWMUpdateWindowDecoration (win32RootlessWindowPtr pRLWinPriv, 1426706f2543Smrg winScreenInfoPtr pScreenInfo); 1427706f2543Smrg 1428706f2543SmrgwBOOL CALLBACK 1429706f2543SmrgwinMWExtWMDecorateWindow (HWND hwnd, LPARAM lParam); 1430706f2543Smrg 1431706f2543SmrgBool 1432706f2543SmrgwinIsInternalWMRunning (winScreenInfoPtr pScreenInfo); 1433706f2543Smrg 1434706f2543Smrgvoid 1435706f2543SmrgwinMWExtWMRestackWindows (ScreenPtr pScreen); 1436706f2543Smrg#endif 1437706f2543Smrg 1438706f2543Smrg 1439706f2543Smrg#ifdef XWIN_MULTIWINDOWEXTWM 1440706f2543Smrg/* 1441706f2543Smrg * winwin32rootlesswndproc.c 1442706f2543Smrg */ 1443706f2543Smrg 1444706f2543SmrgLRESULT CALLBACK 1445706f2543SmrgwinMWExtWMWindowProc (HWND hwnd, UINT message, 1446706f2543Smrg WPARAM wParam, LPARAM lParam); 1447706f2543Smrg#endif 1448706f2543Smrg 1449706f2543Smrg 1450706f2543Smrg/* 1451706f2543Smrg * winwindowswm.c 1452706f2543Smrg */ 1453706f2543Smrg 1454706f2543Smrgvoid 1455706f2543SmrgwinWindowsWMSendEvent (int type, unsigned int mask, int which, int arg, 1456706f2543Smrg Window window, int x, int y, int w, int h); 1457706f2543Smrg 1458706f2543Smrgvoid 1459706f2543SmrgwinWindowsWMExtensionInit (void); 1460706f2543Smrg 1461706f2543Smrg/* 1462706f2543Smrg * wincursor.c 1463706f2543Smrg */ 1464706f2543Smrg 1465706f2543SmrgBool 1466706f2543SmrgwinInitCursor (ScreenPtr pScreen); 1467706f2543Smrg 1468706f2543Smrg/* 1469706f2543Smrg * winprocarg.c 1470706f2543Smrg */ 1471706f2543Smrgvoid 1472706f2543SmrgwinInitializeScreens(int maxscreens); 1473706f2543Smrg 1474706f2543Smrg/* 1475706f2543Smrg * winrandr.c 1476706f2543Smrg */ 1477706f2543SmrgBool 1478706f2543SmrgwinRandRInit (ScreenPtr pScreen); 1479706f2543Smrgvoid 1480706f2543SmrgwinDoRandRScreenSetSize (ScreenPtr pScreen, 1481706f2543Smrg CARD16 width, 1482706f2543Smrg CARD16 height, 1483706f2543Smrg CARD32 mmWidth, 1484706f2543Smrg CARD32 mmHeight); 1485706f2543Smrg 1486706f2543Smrg/* 1487706f2543Smrg * END DDX and DIX Function Prototypes 1488706f2543Smrg */ 1489706f2543Smrg 1490706f2543Smrg#endif /* _WIN_H_ */ 1491706f2543Smrg 1492