X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f1e01716310cb6e3bfcf5894b442d277bc32789a..fc2d42090058bb7ebb9545b857a9a435ecbdd876:/src/x11/window.cpp diff --git a/src/x11/window.cpp b/src/x11/window.cpp index c185b0e9e0..d51631aace 100644 --- a/src/x11/window.cpp +++ b/src/x11/window.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: src/x11/windows.cpp +// Name: src/x11/window.cpp // Purpose: wxWindow // Author: Julian Smart // Modified by: @@ -36,18 +36,19 @@ #include "wx/dc.h" #include "wx/dcclient.h" #include "wx/button.h" + #include "wx/menu.h" + #include "wx/dialog.h" + #include "wx/timer.h" + #include "wx/settings.h" + #include "wx/msgdlg.h" + #include "wx/scrolbar.h" + #include "wx/listbox.h" + #include "wx/scrolwin.h" + #include "wx/layout.h" + #include "wx/menuitem.h" + #include "wx/module.h" #endif -#include "wx/menu.h" -#include "wx/layout.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/settings.h" -#include "wx/msgdlg.h" -#include "wx/scrolwin.h" -#include "wx/scrolbar.h" -#include "wx/module.h" -#include "wx/menuitem.h" #include "wx/fontutil.h" #include "wx/univ/renderer.h" @@ -58,11 +59,6 @@ #include "wx/x11/private.h" #include "X11/Xutil.h" -#if wxUSE_NANOX -// For wxGetLocalTime, used by XButtonEventGetTime -#include "wx/timer.h" -#endif - #include // ---------------------------------------------------------------------------- @@ -1115,7 +1111,7 @@ void wxWindowX11::GetTextExtent(const wxString& string, int direction, ascent, descent2; XCharStruct overall; - int slen = string.Len(); + int slen = string.length(); XTextExtents((XFontStruct*) pFontStruct, (char*) string.c_str(), slen, &direction, &ascent, &descent2, &overall); @@ -1630,28 +1626,59 @@ wxWindow* wxFindWindowAtPointer(wxPoint& pt) return wxFindWindowAtPoint(wxGetMousePosition()); } -// Get the current mouse position. -wxPoint wxGetMousePosition() +void wxGetMouseState(int& rootX, int& rootY, unsigned& maskReturn) { #if wxUSE_NANOX /* TODO */ - return wxPoint(0, 0); + rootX = rootY = 0; + maskReturn = 0; #else Display *display = wxGlobalDisplay(); Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display)); Window rootReturn, childReturn; - int rootX, rootY, winX, winY; - unsigned int maskReturn; + int winX, winY; XQueryPointer (display, rootWindow, &rootReturn, &childReturn, &rootX, &rootY, &winX, &winY, &maskReturn); - return wxPoint(rootX, rootY); #endif } +// Get the current mouse position. +wxPoint wxGetMousePosition() +{ + int x, y; + unsigned mask; + + wxGetMouseState(x, y, mask); + return wxPoint(x, y); +} + +wxMouseState wxGetMouseState() +{ + wxMouseState ms; + int x, y; + unsigned mask; + + wxGetMouseState(x, y, mask); + + ms.SetX(x); + ms.SetY(y); + + ms.SetLeftDown(mask & Button1Mask); + ms.SetMiddleDown(mask & Button2Mask); + ms.SetRightDown(mask & Button3Mask); + + ms.SetControlDown(mask & ControlMask); + ms.SetShiftDown(mask & ShiftMask); + ms.SetAltDown(mask & Mod3Mask); + ms.SetMetaDown(mask & Mod1Mask); + + return ms; +} + // ---------------------------------------------------------------------------- // wxNoOptimize: switch off size optimization