X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/83d8eb470b87ee0f19a203d2af3b70b153a87554..25b34b267ec6878c04add03e874986673fa0f19f:/src/mgl/utils.cpp?ds=sidebyside diff --git a/src/mgl/utils.cpp b/src/mgl/utils.cpp index 981be51871..c6dad8291a 100644 --- a/src/mgl/utils.cpp +++ b/src/mgl/utils.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp +// Name: src/mgl/utils.cpp // Purpose: // Author: Vaclav Slavik // Id: $Id$ @@ -15,11 +15,14 @@ #endif #include "wx/utils.h" -#include "wx/string.h" -#include "wx/intl.h" +#ifndef WX_PRECOMP + #include "wx/string.h" + #include "wx/intl.h" + #include "wx/log.h" +#endif + #include "wx/apptrait.h" -#include "wx/log.h" #include "wx/process.h" #include @@ -44,6 +47,16 @@ void wxBell() // FIXME_MGL } +bool wxGetKeyState(wxKeyCode key) +{ + wxASSERT_MSG(key != WXK_LBUTTON && key != WXK_RBUTTON && key != + WXK_MBUTTON, wxT("can't use wxGetKeyState() for mouse buttons")); + + // TODO + + return false; +} + // ---------------------------------------------------------------------------- // display characterstics // ---------------------------------------------------------------------------- @@ -60,11 +73,11 @@ void wxDisplaySizeMM(int *width, int *height) wxASSERT_MSG( g_displayDC, wxT("You must call wxApp::SetDisplayMode before using this function") ); int xDPI, yDPI; - MGL_getDotsPerInch(&xDPI, &yDPI); - - if ( width ) + MGL_getDotsPerInch(&xDPI, &yDPI); + + if ( width ) *width = (int)((g_displayDC->sizex()+1) * 25.4 / xDPI); - if ( height ) + if ( height ) *height = (int)((g_displayDC->sizey()+1) * 25.4 / yDPI); } @@ -79,7 +92,7 @@ void wxClientDisplayRect(int *x, int *y, int *width, int *height) bool wxColourDisplay() { wxASSERT_MSG( g_displayDC, wxT("You must call wxApp::SetDisplayMode before using this function") ); - + return (wxDisplayDepth() > 1); } @@ -152,6 +165,28 @@ wxPoint wxGetMousePosition() return pt; } +wxMouseState wxGetMouseState() +{ + wxMouseState ms; + int x, y; + + wxGetMousePosition(&x, &y); + + ms.SetX(x); + ms.SetY(y); + + extern unsigned long g_buttonState; + ms.SetLeftDown(g_buttonState & EVT_LEFTBUT); + ms.SetMiddleDown(g_buttonState & EVT_MIDDLEBUT); + ms.SetRightDown(g_buttonState & EVT_RIGHTBUT); + + ms.SetControlDown(EVT_isKeyDown(KB_leftCtrl) || EVT_isKeyDown(KB_rightCtrl)); + ms.SetShiftDown(EVT_isKeyDown(KB_leftShift) || EVT_isKeyDown(KB_rightShift)); + ms.SetAltDown(EVT_isKeyDown(KB_leftAlt)); + ms.SetMetaDown(EVT_isKeyDown(KB_rightAlt)); + + return ms; +} #ifdef __UNIX__