--- /dev/null
+/*
+/////////////////////////////////////////////////////////////////////////////
+// Name: microwin.cpp
+// Purpose: Extra implementation for MicroWindows
+// Author: Julian Smart
+// Created: 2001-05-31
+// RCS-ID: $Id$
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+*/
+
+#ifdef __GNUG__
+ #pragma implementation "microwin.h"
+#endif
+
+#include "mwtypes.h"
+#include "windows.h"
+#include "wintern.h"
+#include "device.h"
+#include "wx/microwin/microwin.h"
+
+void GdMoveCursor(MWCOORD x, MWCOORD y);
+void MwSetCursor(HWND wp, PMWCURSOR pcursor);
+
+BOOL SetCursorPos(int x, int y)
+{
+ GdMoveCursor(x, y);
+ return TRUE;
+}
+
+HCURSOR SetCursor(HCURSOR hCursor)
+{
+ /* TODO */
+ return 0;
+}
+
+int GetScrollPosWX (HWND hWnd, int iSBar)
+{
+ int pos = 0;
+ if (GetScrollPos(hWnd, iSBar, & pos))
+ return pos;
+ else
+ return 0;
+}
+
+BOOL ScrollWindow(HWND hWnd, int xAmount, int yAmount,
+ CONST RECT* lpRect, CONST RECT* lpClipRect)
+{
+ /* TODO */
+ return FALSE;
+}
+
+HWND WindowFromPoint(POINT pt)
+{
+ /* TODO */
+ return 0;
+}
+
+SHORT GetKeyState(int nVirtKey)
+{
+ /* TODO */
+ return 0;
+}
+
+HWND SetParent(HWND hWndChild, HWND hWndNewParent)
+{
+ /* TODO */
+ return 0;
+}
+
+VOID DragAcceptFiles(HWND hWnd, BOOL b)
+{
+ /* TODO */
+}
+
+BOOL IsDialogMessage(HWND hWnd, MSG* msg)
+{
+ /* TODO */
+ return FALSE;
+}
+
+DWORD GetMessagePos(VOID)
+{
+ /* TODO */
+ return 0;
+}
+
+BOOL IsIconic(HWND hWnd)
+{
+ /* TODO */
+ return FALSE;
+}
+
+int SetMapMode(HDC hDC, int mode)
+{
+ return MM_TEXT;
+}
+
+int GetMapMode(HDC hDC)
+{
+ return MM_TEXT;
+}
+
+HCURSOR LoadCursor(HINSTANCE hInst, int cursor)
+{
+ /* TODO */
+ return 0;
+}
+
+DWORD GetModuleFileName(HINSTANCE hInst, LPSTR name, DWORD sz)
+{
+ /* TODO */
+ name[0] = 0;
+ return 0;
+}
+
+VOID DestroyIcon(HICON hIcon)
+{
+ /* TODO */
+}
+
+COLORREF GetTextColor(HDC hdc)
+{
+ if (!hdc)
+ return CLR_INVALID;
+ return hdc->textcolor ;
+}
+
+COLORREF GetBkColor(HDC hdc)
+{
+ if (!hdc)
+ return CLR_INVALID;
+ return hdc->bkcolor ;
+}
+
+HPALETTE SelectPalette(HDC hdc, HPALETTE hPalette, BOOL b)
+{
+ /* TODO */
+ return 0;
+}
+
+BOOL IntersectClipRect(HDC hdc, int x, int y,
+ int right, int bottom)
+{
+ /* TODO */
+ HRGN rgn = CreateRectRgn(x, y, right, bottom);
+
+ BOOL ret = (ExtSelectClipRgn(hdc, rgn, RGN_AND) != ERROR);
+ DeleteObject(rgn);
+ return ret;
+}
+
+BOOL GetClipBox(HDC hdc, RECT* rect)
+{
+ MWCLIPREGION* r;
+ MWRECT mwrect;
+
+ if (!hdc->region)
+ return FALSE;
+
+ r = ((MWRGNOBJ*) hdc->region)->rgn;
+ GdGetRegionBox(r, & mwrect);
+ rect->left = mwrect.left;
+ rect->top = mwrect.top;
+ rect->right = mwrect.right;
+ rect->bottom = mwrect.bottom;
+
+ return TRUE;
+}
+
+BOOL DrawIconEx(HDC hdc, int x, int y, HICON hIcon, int w, int h, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags)
+{
+ /* TODO */
+ return FALSE;
+}
+
+BOOL SetViewportExtEx(HDC hdc, int x, int y, LPSIZE lpSize)
+{
+ /* TODO */
+ return FALSE;
+}
+
+BOOL SetViewportOrgEx(HDC hdc, int x, int y, LPPOINT lpPoint)
+{
+ /* TODO */
+ return FALSE;
+}
+
+BOOL SetWindowExtEx(HDC hdc, int x, int y, LPSIZE lpSize)
+{
+ /* TODO */
+ return FALSE;
+}
+
+BOOL SetWindowOrgEx(HDC hdc, int x, int y, LPPOINT lpSize)
+{
+ /* TODO */
+ return FALSE;
+}
+
+BOOL ExtFloodFill(HDC hdc, int x, int y, COLORREF col, UINT flags)
+{
+ /* TODO */
+ return FALSE;
+}
+
+int SetPolyFillMode(HDC hdc, int mode)
+{
+ /* TODO */
+ return 0;
+}
+
+BOOL RoundRect(HDC hdc, int left, int top, int right, int bottom, int r1, int r2)
+{
+ /* TODO */
+ return Rectangle(hdc, left, top, right, bottom);
+}
+
+BOOL MaskBlt(HDC hdc, int x, int y, int w, int h,
+ HDC hDCSource, int xSrc, int ySrc, HBITMAP hBitmapMask, int xMask, int yMask, DWORD rop)
+{
+ /* TODO */
+ return FALSE;
+}
+
+UINT RealizePalette(HDC hDC)
+{
+ /* TODO */
+ return 0;
+}
+
+BOOL SetBrushOrgEx(HDC hdc, int xOrigin, int yOrigin, LPPOINT lpPoint)
+{
+ /* TODO */
+ return FALSE;
+}
+
+int GetObject(HGDIOBJ hObj, int sz, LPVOID logObj)
+{
+ if (sz == sizeof(LOGFONT))
+ {
+ LOGFONT* logFont = (LOGFONT*) logObj;
+ MWFONTINFO fi;
+ HFONT hFont = (HFONT) hObj;
+
+ GdGetFontInfo(((MWFONTOBJ*) hFont)->pfont, &fi);
+
+ /* 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;
+ */
+
+ 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->lfFaceName[0] = 0;
+#if 0
+ strncpy(logFont->lfFaceName, ??, sizeof(logFont->lfFaceName));
+#endif
+ return sz;
+ }
+ else
+ {
+ return 0;
+ }
+}