// Created: 2001-05-31
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
-// Licence: wxWindows licence
+// Licence: wxWidgets licence
/////////////////////////////////////////////////////////////////////////////
*/
-#ifdef __GNUG__
- #pragma implementation "microwin.h"
-#endif
-
#include "mwtypes.h"
#include "windows.h"
#include "wintern.h"
}
BOOL ScrollWindow(HWND hWnd, int xAmount, int yAmount,
- CONST RECT* lpRect, CONST RECT* lpClipRect)
+ CONST RECT* lpRect, CONST RECT* lpClipRect)
{
/* TODO */
return FALSE;
GdGetFontInfo(((MWFONTOBJ*) hFont)->pfont, &fi);
- /* FIXME many items are guessed for the time being*/
- logFont->lfHeight = fi.height;
+ /* FIXME many items are guessed for the time being*/
+ logFont->lfHeight = fi.height;
- /* reversed for kaffe port
- logFont->tmAscent = fi.height - fi.baseline;
- logFont->tmDescent= fi.baseline;
- */
+ /* reversed for kaffe port
+ logFont->tmAscent = fi.height - fi.baseline;
+ logFont->tmDescent= fi.baseline;
+ */
- logFont->lfWidth = fi.widths['x'];
- logFont->lfWeight = FW_NORMAL;
+ logFont->lfWidth = fi.widths['x'];
+ logFont->lfWeight = FW_NORMAL;
logFont->lfEscapement = 0;
logFont->lfOrientation = 0;
logFont->lfOutPrecision = OUT_OUTLINE_PRECIS;
logFont->lfClipPrecision = CLIP_DEFAULT_PRECIS;
logFont->lfQuality = DEFAULT_QUALITY;
- logFont->lfItalic = 0;
- logFont->lfUnderline = 0;
- logFont->lfStrikeOut = 0;
- /* note that win32 has the TMPF_FIXED_PITCH flags REVERSED...*/
- logFont->lfPitchAndFamily = fi.fixed?
- FF_DONTCARE: (FF_DONTCARE | TMPF_FIXED_PITCH);
- logFont->lfCharSet = OEM_CHARSET;
- /* TODO I don't know how to get the font name. May
- * test for different font classes.
+ logFont->lfItalic = 0;
+ logFont->lfUnderline = 0;
+ logFont->lfStrikeOut = 0;
+ /* note that win32 has the TMPF_FIXED_PITCH flags REVERSED...*/
+ logFont->lfPitchAndFamily = fi.fixed?
+ FF_DONTCARE: (FF_DONTCARE | TMPF_FIXED_PITCH);
+ logFont->lfCharSet = OEM_CHARSET;
+ /* TODO I don't know how to get the font name. May
+ * test for different font classes.
*/
logFont->lfFaceName[0] = 0;
#if 0
- strncpy(logFont->lfFaceName, ??, sizeof(logFont->lfFaceName));
+ strncpy(logFont->lfFaceName, ??, sizeof(logFont->lfFaceName));
#endif
return sz;
}
return 0;
}
}
+
+/* Not in wingdi.c in earlier versions of MicroWindows */
+#if 0
+HBITMAP WINAPI
+CreateCompatibleBitmap(HDC hdc, int nWidth, int nHeight)
+{
+ MWBITMAPOBJ *hbitmap;
+ int size;
+ int linelen;
+
+ if(!hdc)
+ return NULL;
+
+ nWidth = MWMAX(nWidth, 1);
+ nHeight = MWMAX(nHeight, 1);
+
+ /* calc memory allocation size and linelen from width and height*/
+ if(!GdCalcMemGCAlloc(hdc->psd, nWidth, nHeight, 0, 0, &size, &linelen))
+ return NULL;
+
+ /* allocate gdi object*/
+ hbitmap = (MWBITMAPOBJ *)GdItemAlloc(sizeof(MWBITMAPOBJ)-1+size);
+ if(!hbitmap)
+ return NULL;
+ hbitmap->hdr.type = OBJ_BITMAP;
+ hbitmap->hdr.stockobj = FALSE;
+ hbitmap->width = nWidth;
+ hbitmap->height = nHeight;
+
+ /* create compatible with hdc*/
+ hbitmap->planes = hdc->psd->planes;
+ hbitmap->bpp = hdc->psd->bpp;
+ hbitmap->linelen = linelen;
+ hbitmap->size = size;
+
+ return (HBRUSH)hbitmap;
+}
+#endif
+
+/* Attempt by JACS to create arbitrary bitmap
+ * TODO: make use of lpData
+ */
+
+HBITMAP WINAPI
+CreateBitmap( int nWidth, int nHeight, int nPlanes, int bPP, LPCVOID lpData)
+{
+ MWBITMAPOBJ *hbitmap;
+ int size;
+ int linelen;
+
+ HDC hScreenDC;
+
+ hScreenDC = GetDC(NULL);
+
+ nWidth = MWMAX(nWidth, 1);
+ nHeight = MWMAX(nHeight, 1);
+
+ /* calc memory allocation size and linelen from width and height*/
+ if(!GdCalcMemGCAlloc(hScreenDC->psd, nWidth, nHeight, nPlanes, bPP, &size, &linelen))
+ {
+ ReleaseDC(NULL, hScreenDC);
+ return NULL;
+ }
+ ReleaseDC(NULL, hScreenDC);
+
+ /* allocate gdi object*/
+ hbitmap = (MWBITMAPOBJ *)GdItemAlloc(sizeof(MWBITMAPOBJ)-1+size);
+ if(!hbitmap)
+ return NULL;
+ hbitmap->hdr.type = OBJ_BITMAP;
+ hbitmap->hdr.stockobj = FALSE;
+ hbitmap->width = nWidth;
+ hbitmap->height = nHeight;
+
+ /* create with specified parameters */
+ hbitmap->planes = nPlanes;
+ hbitmap->bpp = bPP;
+ hbitmap->linelen = linelen;
+ hbitmap->size = size;
+
+ /* TODO: copy data */
+
+ return (HBRUSH)hbitmap;
+}