bool m_iconized;
virtual void DoGetSize(int *width, int *height) const;
- virtual void DoGetPosition(int *x, int *y) const;
virtual void DoSetSize(int x, int y,
int width, int height,
int sizeFlags = wxSIZE_AUTO);
// common part of wxDialog/wxFrame destructors
void PreDestroy();
+ virtual void DoGetPosition(int* x, int* y) const;
private:
// both these functions should be pure virtual
virtual bool DoCreate( wxWindow* parent, wxWindowID id,
*width = xx; *height = yy;
}
-void wxFrame::DoGetPosition(int *x, int *y) const
-{
- Window parent_window = XtWindow((Widget) m_frameShell),
- next_parent = XtWindow((Widget) m_frameShell),
- root = RootWindowOfScreen(XtScreen((Widget) m_frameShell));
-
- // search for the parent that is child of ROOT, because the WM may
- // reparent twice and notify only the next parent (like FVWM)
- while (next_parent != root) {
- Window *theChildren; unsigned int n;
- parent_window = next_parent;
- XQueryTree(XtDisplay((Widget) m_frameShell), parent_window, &root,
- &next_parent, &theChildren, &n);
- XFree(theChildren); // not needed
- }
- int xx, yy; unsigned int dummy;
- XGetGeometry(XtDisplay((Widget) m_frameShell), parent_window, &root,
- &xx, &yy, &dummy, &dummy, &dummy, &dummy);
- if (x) *x = xx;
- if (y) *y = yy;
-}
-
void wxFrame::DoSetSize(int x, int y, int width, int height, int WXUNUSED(sizeFlags))
{
if (x > -1)
return retval;
}
+void wxTopLevelWindowMotif::DoGetPosition(int *x, int *y) const
+{
+ Widget top = (Widget) GetTopWidget();
+ Window parent_window = XtWindow((Widget) top),
+ next_parent = XtWindow((Widget) top),
+ root = RootWindowOfScreen(XtScreen((Widget) top));
+
+ // search for the parent that is child of ROOT, because the WM may
+ // reparent twice and notify only the next parent (like FVWM)
+ while (next_parent != root) {
+ Window *theChildren; unsigned int n;
+ parent_window = next_parent;
+ XQueryTree(XtDisplay((Widget) top), parent_window, &root,
+ &next_parent, &theChildren, &n);
+ XFree(theChildren); // not needed
+ }
+ int xx, yy; unsigned int dummy;
+ XGetGeometry(XtDisplay((Widget) top), parent_window, &root,
+ &xx, &yy, &dummy, &dummy, &dummy, &dummy);
+ if (x) *x = xx;
+ if (y) *y = yy;
+}
+
void wxTopLevelWindowMotif::Raise()
{
Widget top = (Widget) GetTopWidget();