#pragma implementation "window.h"
#endif
+#ifdef __VMS
+#define XtDisplay XTDISPLAY
+#define XtWindow XTWINDOW
+#define XtScreen XTSCREEN
+#endif
+
#include "wx/setup.h"
#include "wx/menu.h"
#include "wx/dc.h"
Widget widget = (Widget) GetTopWidget();
Dimension xx, yy;
XtVaGetValues(widget, XmNwidth, &xx, XmNheight, &yy, NULL);
- *x = xx; *y = yy;
+ if(x) *x = xx; if(y) *y = yy;
}
void wxWindow::DoGetPosition(int *x, int *y) const
yy -= pt.y;
}
- *x = xx; *y = yy;
+ if(x) *x = xx; if(y) *y = yy;
}
void wxWindow::DoScreenToClient(int *x, int *y) const
Widget widget = (Widget) GetClientWidget();
Dimension xx, yy;
XtVaGetValues(widget, XmNwidth, &xx, XmNheight, &yy, NULL);
- *x = xx; *y = yy;
+ if(x) *x = xx; if(y) *y = yy;
}
void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)
{
// I have a dclick
canvas->SetLastClick(0, ts);
- switch ( eventType )
+
+ wxEventType typeDouble;
+ if ( eventType == wxEVT_LEFT_DOWN )
+ typeDouble = wxEVT_LEFT_DCLICK;
+ else if ( eventType == wxEVT_MIDDLE_DOWN )
+ typeDouble = wxEVT_MIDDLE_DCLICK;
+ else if ( eventType == wxEVT_RIGHT_DOWN )
+ typeDouble = wxEVT_RIGHT_DCLICK;
+ else
+ typeDouble = wxEVT_NULL;
+
+ if ( typeDouble != wxEVT_NULL )
{
- case wxEVT_LEFT_DOWN:
- wxevent.SetEventType(wxEVT_LEFT_DCLICK);
- break;
- case wxEVT_MIDDLE_DOWN:
- wxevent.SetEventType(wxEVT_MIDDLE_DCLICK);
- break;
- case wxEVT_RIGHT_DOWN:
- wxevent.SetEventType(wxEVT_RIGHT_DCLICK);
- break;
-
- default :
- break;
+ wxevent.SetEventType(typeDouble);
}
-
}
else
{
{
// I have a dclick
win->SetLastClick(0, ts);
- switch ( eventType )
- {
- case wxEVT_LEFT_DOWN:
- eventType = wxEVT_LEFT_DCLICK;
- break;
- case wxEVT_MIDDLE_DOWN:
- eventType = wxEVT_MIDDLE_DCLICK;
- break;
- case wxEVT_RIGHT_DOWN:
- eventType = wxEVT_RIGHT_DCLICK;
- break;
-
- default :
- break;
- }
-
+ if ( eventType == wxEVT_LEFT_DOWN )
+ eventType = wxEVT_LEFT_DCLICK;
+ else if ( eventType == wxEVT_MIDDLE_DOWN )
+ eventType = wxEVT_MIDDLE_DCLICK;
+ else if ( eventType == wxEVT_RIGHT_DOWN )
+ eventType = wxEVT_RIGHT_DCLICK;
}
else
{
wxWindow *wxGetActiveWindow()
{
// TODO
+ wxFAIL_MSG("Not implemented");
return NULL;
}
+// Find the wxWindow at the current mouse position, returning the mouse
+// position.
+wxWindow* wxFindWindowAtPointer(wxPoint& pt)
+{
+ return wxFindWindowAtPoint(wxGetMousePosition());
+}
+
+// Get the current mouse position.
+wxPoint wxGetMousePosition()
+{
+ Display *display = (Display*) wxGetDisplay();
+ Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display));
+ Window rootReturn, childReturn;
+ int rootX, rootY, winX, winY;
+ unsigned int maskReturn;
+
+ XQueryPointer (display,
+ rootWindow,
+ &rootReturn,
+ &childReturn,
+ &rootX, &rootY, &winX, &winY, &maskReturn);
+ return wxPoint(rootX, rootY);
+}
+
// ----------------------------------------------------------------------------
// wxNoOptimize: switch off size optimization
// ----------------------------------------------------------------------------