Added maximize(), minimize(), restore(), isMaximized() and isMinimized() member functions to FXTopWindow. The old iconify(), deiconify() and isIconified() member functions have been superseded by these new functions. Also removed the old ID_ICONIFY and ID_DEICONIFY message identifiers, and added ID_MAXIMIZE, ID_MINIMIZE, ID_RESTORE and ID_CLOSE. The new functions are implemented in terms of the new Extended Window Manager Hints standard.
Multiple main windows for an application are now supported. A side effect of this change is that the FXApp::getMainWindow() member function has now disappeared.
Another change for FXTopWindow is the addition of the close() member function, which is called when the window receives either a SEL_CLOSE or (SEL_COMMAND, ID_CLOSE) message. The close() function will only try to close the window under the following circumstances:
If the optional notify argument for close() is FALSE;
If the window doesn't have a target; or,
If the window has a target, but that target doesn't handle a SEL_CLOSE message sent from this window.
If any of these conditions is met, then the window is destroyed. Furthermore, if this is the last FXMainWindow to be closed, the window will send the application an ID_QUIT message before it destroys itself.
Added the DECOR_SHRINKABLE and DECOR_STRETCHABLE decoration options for FXTopWindow and its subclasses. The DECOR_RESIZE option is now just a combination of these two.
Top-level windows (i.e. FXTopWindow and its subclasses) now appear where they're supposed to, at least on ICCCM compliant window managers; borders are discounted as far as placement of window is concerned.