X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ed7919869508ccd5c868683c28706f82e82a1b9b..5fe8354960174a56ee21c456ac3ba521a7b9bae5:/include/wx/msw/private.h diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h index 15d89886ce..20b4d94676 100644 --- a/include/wx/msw/private.h +++ b/include/wx/msw/private.h @@ -16,6 +16,11 @@ #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 +64,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,41 +72,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) + +#if defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__) + #define CASTWNDPROC (long unsigned) #else -# ifdef __BORLANDC__ - -# ifdef __WIN32__ - typedef int (pascal * WndProcCast) (); -# 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??) @@ -179,7 +160,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 @@ -207,12 +189,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 @@ -253,6 +237,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 // --------------------------------------------------------------------------- @@ -297,15 +292,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; @@ -323,11 +324,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);