/////////////////////////////////////////////////////////////////////////////
-// Name: src/motif/windows.cpp
+// Name: src/motif/window.cpp
// Purpose: wxWindow
// Author: Julian Smart
// Modified by:
#include "wx/utils.h"
#include "wx/frame.h"
#include "wx/dc.h"
+ #include "wx/dcclient.h"
+ #include "wx/button.h"
+ #include "wx/menu.h"
+ #include "wx/settings.h"
+ #include "wx/scrolwin.h"
+ #include "wx/layout.h"
+ #include "wx/menuitem.h"
+ #include "wx/module.h"
#endif
-#include "wx/menu.h"
-#include "wx/dcclient.h"
-#include "wx/layout.h"
-#include "wx/button.h"
-#include "wx/settings.h"
-#include "wx/scrolwin.h"
-#include "wx/module.h"
-#include "wx/menuitem.h"
#include "wx/evtloop.h"
#if wxUSE_DRAG_AND_DROP
// 2) call DoMoveWindow from DoSetSize, allowing controls to override it
#ifdef __VMS__
-#pragma message disable nosimpint
+ #pragma message disable nosimpint
#endif
#include <Xm/Xm.h>
#include <Xm/Label.h>
#include <Xm/RowColumn.h> // for XmMenuPosition
#ifdef __VMS__
-#pragma message enable nosimpint
+ #pragma message enable nosimpint
#endif
#include "wx/motif/private.h"
if ( !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE) )
{
- if ( x == -1 )
- x = oldX;
- if ( y == -1 )
- y = oldY;
+ if ( width == -1 )
+ width = oldW;
+ if ( height == -1 )
+ height = oldH;
}
wxSize size(wxDefaultSize);
{
int flags = 0;
- if (x > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
+ if (x != oldX)
flags |= wxMOVE_X;
- if (y > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
+ if (y != oldY)
flags |= wxMOVE_Y;
if (width > 0)
}
else
{
- if( xx < 0 ) xx = 0;
- if( yy < 0 ) yy = 0;
if( w < 1 ) w = 1;
if( h < 1 ) h = 1;
return wxFindWindowAtPoint(pt);
}
-// Get the current mouse position.
-wxPoint wxGetMousePosition()
+void wxGetMouseState(int& rootX, int& rootY, unsigned& maskReturn)
{
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);
+}
+
+// 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;
}