Hello,
When I start my main GUI window, I want it to appear centered on the
screen.
I know that I can move the position of the window with Move(x, y). For a
class derived from TGMainFrame, it seems however, that the window has
to be mapped to the screen before it can be moved!
To illustrate the behaviour I will look at the "guitest" example of ROOT:
The constructor TestMainFrame closes with the following command sequence
(shortened):
(...)
SetWindowName("GuiTest");
MapSubwindows();
Resize(GetDefaultSize());
MapWindow();
}
If I want the window to show up at position (200, 200) I have to alter
this in the following way:
(...)
SetWindowName("GuiTest");
MapSubwindows();
Resize(GetDefaultSize());
MapWindow();
Move(200, 200);
MapWindow();
}
This has the side effect the the window is shown twice: For a few
milliseconds at position (0,0) (=first MapWindow) and then at (200, 200).
If I skip the first MapWindow() then the gui appears at (0, 0), despite
the move command!
Has anybody an idea how I can get the initial position at (200, 200)
without the first MapWindow()?
I tried SetWMPosition(x, y) but this seemes to have no effect at all.
On the other side, if the class is derived from TGTransientFrame this
miss-behaviour does not show up.
Thanks in advance,
Andreas
Root: 3.03.05
System: SuSE Linux 7.3
----------------------------------------------------------------------
Andreas Zoglauer
MPI fuer extraterrestrische Physik Phone: +49/89-30000-3848
Postfach 1312 Fax: +49/89-30000-3569
85741 Garching, Germany Email: zog@mpe.mpg.de
----------------------------------------------------------------------
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:56 MET