Added extra MicroWindows functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
285
src/msw/microwin.c
Normal file
285
src/msw/microwin.c
Normal file
@@ -0,0 +1,285 @@
|
|||||||
|
/*
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user