X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c3b177ae6310ed80f054ae227513ef681f9c3dad..2b260bc3e2f269de090eefdaefc1450207a7734e:/include/wx/msw/private.h diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h index f932c659c0..3193fa73c3 100644 --- a/include/wx/msw/private.h +++ b/include/wx/msw/private.h @@ -14,8 +14,17 @@ #ifndef _WX_PRIVATE_H_ #define _WX_PRIVATE_H_ +#ifndef STRICT + #define STRICT 1 +#endif + #include +#ifdef __WXMICROWIN__ +/* Extra prototypes and symbols not defined by MicroWindows */ +#include "wx/msw/microwin.h" +#endif + // undefine conflicting symbols which were defined in windows.h #include "wx/msw/winundef.h" @@ -59,7 +68,7 @@ WXDLLEXPORT_DATA(extern HFONT) wxSTATUS_LINE_FONT; // define things missing from some compilers' headers // --------------------------------------------------------------------------- -#if defined(__GNUWIN32__) && !defined(wxUSE_NORLANDER_HEADERS) +#if defined(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS #ifndef ZeroMemory inline void ZeroMemory(void *buf, size_t len) { memset(buf, 0, len); } #endif @@ -67,45 +76,17 @@ WXDLLEXPORT_DATA(extern HFONT) wxSTATUS_LINE_FONT; // this defines a CASTWNDPROC macro which casts a pointer to the type of a // window proc -#if defined(__GNUWIN32__) && !defined(wxUSE_NORLANDER_HEADERS) -# define CASTWNDPROC (long unsigned) -#else -# ifdef __BORLANDC__ -# ifdef __WIN32__ -#if __BORLANDC__ > 0x530 - typedef long (__stdcall * WndProcCast)( HWND__*, unsigned int, unsigned int, long) ; +#if defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__) + #define CASTWNDPROC (long unsigned) #else - typedef int (pascal * WndProcCast) (); -#endif -# define CASTWNDPROC (WndProcCast) -// # define CASTWNDPROC -# else - typedef int (pascal * WndProcCast) (); -# define CASTWNDPROC (WndProcCast) -# endif - -# else -# if defined (__WIN32__) && defined(STRICT) - typedef long (_stdcall * WndProcCast) (HWND, unsigned int, unsigned int, long); -# define CASTWNDPROC (WndProcCast) -# elif defined(__WIN16__) -# ifdef __BORLANDC__ - typedef int (pascal * WndProcCast) (); -# define CASTWNDPROC (WndProcCast) -# else -# if defined(__VISUALC__) && defined(STRICT) -# define CASTWNDPROC (WNDPROC) -# else - typedef int (PASCAL * WndProcCast) (); -# define CASTWNDPROC (WndProcCast) -# endif -# endif -# else -# define CASTWNDPROC -# endif -# endif -#endif + #if defined(STRICT) || defined(__GNUC__) + typedef WNDPROC WndProcCast; + #else + typedef FARPROC WndProcCast; + #endif + #define CASTWNDPROC (WndProcCast) +#endif // __GNUWIN32_OLD__ // --------------------------------------------------------------------------- // some stuff for old Windows versions (FIXME: what does it do here??) @@ -183,7 +164,8 @@ WXDLLEXPORT_DATA(extern HFONT) wxSTATUS_LINE_FONT; #define DEFAULT_ITEM_HEIGHT 80 // Scale font to get edit control height -#define EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy) (3*(cy)/2) +//#define EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy) (3*(cy)/2) +#define EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy) (cy+8) // Generic subclass proc, for panel item moving/sizing and intercept // EDIT control VK_RETURN messages @@ -211,12 +193,14 @@ extern LONG APIENTRY _EXPORT // --------------------------------------------------------------------------- // a wrapper macro for ZeroMemory() -#ifdef __WIN32__ +#if defined(__WIN32__) && !defined(__WXMICROWIN__) #define wxZeroMemory(obj) ::ZeroMemory(&obj, sizeof(obj)) #else #define wxZeroMemory(obj) memset((void*) & obj, 0, sizeof(obj)) #endif +#if wxUSE_GUI + #include // make conversion from wxColour and COLORREF a bit less painful @@ -257,6 +241,17 @@ extern HBITMAP wxInvertMask(HBITMAP hbmpMask, int w = 0, int h = 0); #define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp)) #endif // GET_X_LPARAM +// get the current state of SHIFT/CTRL keys +inline bool wxIsShiftDown() +{ + return (::GetKeyState(VK_SHIFT) & 0x100) != 0; +} + +inline bool wxIsCtrlDown() +{ + return (::GetKeyState(VK_CONTROL) & 0x100) != 0; +} + // --------------------------------------------------------------------------- // small helper classes // --------------------------------------------------------------------------- @@ -301,15 +296,21 @@ private: #define GetHmenu() ((HMENU)GetHMenu()) #define GetHmenuOf(menu) ((HMENU)menu->GetHMenu()) +#define GetHcursor() ((HCURSOR)GetHCURSOR()) +#define GetHcursorOf(cursor) ((HCURSOR)(cursor).GetHCURSOR()) + +#define GetHfont() ((HFONT)GetHFONT()) +#define GetHfontOf(font) ((HFONT)(font).GetHFONT()) + +#define GetHrgn() ((HRGN)GetHRGN()) +#define GetHrgnOf(rgn) ((HRGN)(rgn).GetHRGN()) + +#endif // wxUSE_GUI + // --------------------------------------------------------------------------- // global data // --------------------------------------------------------------------------- -#if 0 // where is this?? -// The MakeProcInstance version of the function wxSubclassedGenericControlProc -WXDLLEXPORT_DATA(extern FARPROC) wxGenericControlSubClassProc; -#endif // 0 - WXDLLEXPORT_DATA(extern wxChar*) wxBuffer; WXDLLEXPORT_DATA(extern HINSTANCE) wxhInstance; @@ -327,11 +328,16 @@ WXDLLEXPORT void wxSetInstance(HINSTANCE hInst); #if wxUSE_GUI +// cursor stuff +extern HCURSOR wxGetCurrentBusyCursor(); // from msw/utils.cpp +extern const wxCursor *wxGetGlobalCursor(); // from msw/cursor.cpp + WXDLLEXPORT wxWindow* wxFindWinFromHandle(WXHWND hWnd); WXDLLEXPORT void wxGetCharSize(WXHWND wnd, int *x, int *y, const wxFont *the_font); WXDLLEXPORT void wxFillLogFont(LOGFONT *logFont, const wxFont *font); WXDLLEXPORT wxFont wxCreateFontFromLogFont(const LOGFONT *logFont); +WXDLLEXPORT wxFontEncoding wxGetFontEncFromCharSet(int charset); WXDLLEXPORT void wxSliderEvent(WXHWND control, WXWORD wParam, WXWORD pos); WXDLLEXPORT void wxScrollBarEvent(WXHWND hbar, WXWORD wParam, WXWORD pos);