Release 960824
Sat Aug 24 13:57:01 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [controls/scroll.c]
Renamed SCROLLINFO to SCROLLBAR_INFO to avoid conflict with Win32.
* [graphics/driver.c] [include/x11drv.h]
New files for graphics driver handling.
* [if1632/relay.c] [include/registers.h] [tools/build.c]
Implemented Win32 register functions. Not really tested yet.
* [include/gdi.h]
Added a lot of functions to the DC func table.
* [loader/pe_image.c]
Initialise %fs before calling out to 32-bit code.
* [windows/hook.c]
Fixed bug in HOOK_GetHook().
* [windows/win.c]
Fixed FindWindow to return an error if the class name doesn't exist.
Wed Aug 21 15:15:53 1996 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [if1632/Makefile.in] [misc/mpr.c] [if1632/mpr.spec]
mpr.dll specs added.
* [if1632/kernel32.spec] [win32/newfns.c] [memory/global.c]
QueryPerformanceCounter(), GlobalMemoryStatus() added.
* [if1632/user32.spec] [win32/error.c]
SetLastErrorEx() added.
* [misc/commdlg.c]
lpstrFilter might be NULL in FILE_WMInitDialog (NS 3.0 setup).
* [misc/registry.c]
Some missing NULL ptr checks added, misc clean up.
Tue Aug 20 21:00:00 1996 Alex Korobka <alex@pharm.sunysb.edu>
* [controls/menu.c]
Adjust popup menu coordinates so that it always stays within
the desktop.
* [misc/main.c]
Fixed GetEnvironment() return value for lpEnv == NULL case.
Mon Aug 19 22:48:36 1996 Jukka Iivonen <iivonen@cc.helsinki.fi>
* [misc/crtdll.c] [if1632/crtdll.spec]
Added some is* functions, strlen and tolower.
Mon Aug 19 13:33:13 1996 Stephen Simmons <ssimmons@vitsemi.com>
* [tools/wineconf]
New perl script to generate the wine.conf file.
Fri Aug 16 15:31:44 1996 John Harvey <john@division.co.uk>
* [if1632/gdi.spec]
Lots of printer functions.
* [include/callback.h]
New functions for printer driver support.
* [include/gdi.h]
New/changed structures to support printer driver.
* [misc/escape.c]
New version that uses function table in DC structure.
* [objects/dc.c]
CreateDC copes with things other than Display.
X code for CreateDC moved to graphics/x11drv directory.
CreateCompatibleDC copies func table from original DC.
* [objects/font.c]
GetTextExtentPoint32A,GetTextMetrics16 use function table in
DC and code moved to drivers directory.
* [misc/printdrv.c] [graphics/*/*] [include/win16drv.h]
New files for printer support.
Fri Aug 16 12:33:00 1996 Bruce Milner <Bruce.Milner@genetics.utah.edu>
* [controls/scroll.c]
Added SetScrollInfo32 and GetScrollInfo32. These just call existing
code. There are a few options in which I'm probably the wrong person
for the job (page size and disable bar). There are comments in the
code as to what they should do.
* [objects/gdiobj.c] [objects/font.c] [include/font.h]
Added 32 bit version of FONT_GetObject.
diff --git a/graphics/x11drv/init.c b/graphics/x11drv/init.c
new file mode 100644
index 0000000..5933d73
--- /dev/null
+++ b/graphics/x11drv/init.c
@@ -0,0 +1,148 @@
+/*
+ * X11 graphics driver initialisation functions
+ *
+ * Copyright 1996 Alexandre Julliard
+ */
+
+#include <string.h>
+#include "x11drv.h"
+#include "bitmap.h"
+#include "gdi.h"
+
+
+static BOOL32 X11DRV_CreateDC( DC *dc, LPCSTR driver, LPCSTR device,
+ LPCSTR output, const DEVMODE* initData );
+static BOOL32 X11DRV_DeleteDC( DC *dc );
+
+static const DC_FUNCTIONS X11DRV_Funcs =
+{
+ NULL, /* pArc */
+ NULL, /* pBitBlt */
+ NULL, /* pChord */
+ X11DRV_CreateDC, /* pCreateDC */
+ X11DRV_DeleteDC, /* pDeleteDC */
+ NULL, /* pDeleteObject */
+ NULL, /* pEllipse */
+ NULL, /* pEscape */
+ NULL, /* pExcludeClipRect */
+ NULL, /* pExcludeVisRect */
+ NULL, /* pExtFloodFill */
+ NULL, /* pExtTextOut */
+ NULL, /* pFillRgn */
+ NULL, /* pFloodFill */
+ NULL, /* pFrameRgn */
+ X11DRV_GetTextExtentPoint, /* pGetTextExtentPoint */
+ NULL, /* pGetTextMetrics */
+ NULL, /* pIntersectClipRect */
+ NULL, /* pIntersectVisRect */
+ NULL, /* pInvertRgn */
+ NULL, /* pLineTo */
+ NULL, /* pMoveToEx */
+ NULL, /* pOffsetClipRgn */
+ NULL, /* pOffsetViewportOrgEx */
+ NULL, /* pOffsetWindowOrgEx */
+ NULL, /* pPaintRgn */
+ NULL, /* pPatBlt */
+ NULL, /* pPie */
+ NULL, /* pPolyPolygon */
+ NULL, /* pPolygon */
+ NULL, /* pPolyline */
+ NULL, /* pRealizePalette */
+ NULL, /* pRectangle */
+ NULL, /* pRestoreDC */
+ NULL, /* pRoundRect */
+ NULL, /* pSaveDC */
+ NULL, /* pScaleViewportExtEx */
+ NULL, /* pScaleWindowExtEx */
+ NULL, /* pSelectClipRgn */
+ NULL, /* pSelectObject */
+ NULL, /* pSelectPalette */
+ NULL, /* pSetBkColor */
+ NULL, /* pSetBkMode */
+ NULL, /* pSetDIBitsToDevice */
+ NULL, /* pSetMapMode */
+ NULL, /* pSetMapperFlags */
+ NULL, /* pSetPixel */
+ NULL, /* pSetPolyFillMode */
+ NULL, /* pSetROP2 */
+ NULL, /* pSetRelAbs */
+ NULL, /* pSetStretchBltMode */
+ NULL, /* pSetTextAlign */
+ NULL, /* pSetTextCharacterExtra */
+ NULL, /* pSetTextColor */
+ NULL, /* pSetTextJustification */
+ NULL, /* pSetViewportExtEx */
+ NULL, /* pSetViewportOrgEx */
+ NULL, /* pSetWindowExtEx */
+ NULL, /* pSetWindowOrgEx */
+ NULL, /* pStretchBlt */
+ NULL, /* pStretchDIBits */
+ NULL /* pTextOut */
+};
+
+static DeviceCaps X11DRV_DevCaps;
+
+/**********************************************************************
+ * X11DRV_Init
+ */
+BOOL32 X11DRV_Init(void)
+{
+ return DRIVER_RegisterDriver( "DISPLAY", &X11DRV_Funcs );
+}
+
+
+/**********************************************************************
+ * X11DRV_CreateDC
+ */
+static BOOL32 X11DRV_CreateDC( DC *dc, LPCSTR driver, LPCSTR device,
+ LPCSTR output, const DEVMODE* initData )
+{
+ X11DRV_PDEVICE *physDev;
+
+ if (!X11DRV_DevCaps.version) DC_FillDevCaps( &X11DRV_DevCaps );
+
+ physDev = &dc->u.x; /* for now */
+
+ memset( physDev, 0, sizeof(*physDev) );
+ dc->physDev = physDev;
+ dc->w.devCaps = &X11DRV_DevCaps;
+ if (dc->w.flags & DC_MEMORY)
+ {
+ BITMAPOBJ *bmp = (BITMAPOBJ *) GDI_GetObjPtr( dc->w.hBitmap,
+ BITMAP_MAGIC );
+ physDev->drawable = bmp->pixmap;
+ physDev->gc = XCreateGC( display, physDev->drawable, 0, NULL );
+ dc->w.bitsPerPixel = bmp->bitmap.bmBitsPixel;
+ dc->w.hVisRgn = CreateRectRgn( 0, 0, bmp->bitmap.bmWidth,
+ bmp->bitmap.bmHeight );
+ }
+ else
+ {
+ physDev->drawable = rootWindow;
+ physDev->gc = XCreateGC( display, physDev->drawable, 0, NULL );
+ dc->w.bitsPerPixel = screenDepth;
+ dc->w.hVisRgn = CreateRectRgn( 0, 0, screenWidth, screenHeight );
+ }
+
+ if (!dc->w.hVisRgn)
+ {
+ XFreeGC( display, physDev->gc );
+ return FALSE;
+ }
+
+ XSetGraphicsExposures( display, physDev->gc, False );
+ XSetSubwindowMode( display, physDev->gc, IncludeInferiors );
+
+ return TRUE;
+}
+
+
+/**********************************************************************
+ * X11DRV_DeleteDC
+ */
+static BOOL32 X11DRV_DeleteDC( DC *dc )
+{
+ X11DRV_PDEVICE *physDev = (X11DRV_PDEVICE *)dc->physDev;
+ XFreeGC( display, physDev->gc );
+ return TRUE;
+}