// Name: toplevel.h
// Purpose: interface of wxTopLevelWindow
// Author: wxWidgets team
-// RCS-ID: $Id$
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
wxFULLSCREEN_NOCAPTION
};
+#define wxDEFAULT_FRAME_STYLE (wxSYSTEM_MENU | \
+ wxRESIZE_BORDER | \
+ wxMINIMIZE_BOX | \
+ wxMAXIMIZE_BOX | \
+ wxCLOSE_BOX | \
+ wxCAPTION | \
+ wxCLIP_CHILDREN)
+
/**
@class wxTopLevelWindow
@see wxDialog, wxFrame
*/
-class wxTopLevelWindow : public wxWindow
+class wxTopLevelWindow : public wxNonOwnedWindow
{
public:
/**
/**
A synonym for CentreOnScreen().
*/
- void CenterOnScreen(int direction);
+ void CenterOnScreen(int direction = wxBOTH);
/**
Centres the window on screen.
virtual void Iconize(bool iconize = true);
/**
- Returns @true if this window is currently active, i.e. if the user is
+ Returns @true if this window is currently active, i.e.\ if the user is
currently working with it.
*/
virtual bool IsActive();
*/
virtual void Maximize(bool maximize = true);
+ /**
+ MSW-specific function for accessing the system menu.
+
+ Returns a wxMenu pointer representing the system menu of the window
+ under MSW. The returned wxMenu may be used, if non-@c NULL, to add
+ extra items to the system menu. The usual @c wxEVT_MENU
+ events (that can be processed using @c EVT_MENU event table macro) will
+ then be generated for them. All the other wxMenu methods may be used as
+ well but notice that they won't allow you to access any standard system
+ menu items (e.g. they can't be deleted or modified in any way
+ currently).
+
+ Notice that because of the native system limitations the identifiers of
+ the items added to the system menu must be multiples of 16, otherwise
+ no events will be generated for them.
+
+ The returned pointer must @em not be deleted, it is owned by the window
+ and will be only deleted when the window itself is destroyed.
+
+ This function is not available in the other ports by design, any
+ occurrences of it in the portable code must be guarded by
+ @code #ifdef __WXMSW__ @endcode preprocessor guards.
+
+ @since 2.9.3
+ */
+ wxMenu *MSWGetSystemMenu() const;
+
/**
Use a system-dependent way to attract users attention to the window when
it is in background.
const wxString& label = wxEmptyString,
wxMenu* subMenu = NULL);
- /**
- If the platform supports it, sets the shape of the window to that
- depicted by @a region. The system will not display or respond to any
- mouse event for the pixels that lie outside of the region. To reset the
- window to the normal rectangular shape simply call SetShape() again with
- an empty wxRegion. Returns @true if the operation is successful.
- */
- virtual bool SetShape(const wxRegion& region);
-
/**
Allows specification of minimum and maximum window sizes, and window
size increments. If a pair of values is not set (or set to -1), no
*/
virtual bool OSXIsModified() const;
+ /**
+ Sets the file name represented by this wxTopLevelWindow.
+
+ Under OS X, this file name is used to set the "proxy icon", which
+ appears in the window title bar near its title, corresponding to this
+ file name. Under other platforms it currently doesn't do anything but
+ it is harmless to call it now and it might be implemented to do
+ something useful in the future so you're encouraged to use it for any
+ window representing a file-based document.
+
+ @since 2.9.4
+ */
+ virtual void SetRepresentedFilename(const wxString& filename);
+
+ /**
+ Show the wxTopLevelWindow, but do not give it keyboard focus. This can be
+ used for pop up or notification windows that should not steal the current
+ focus.
+ */
+ virtual void ShowWithoutActivating();
+
/**
Depending on the value of @a show parameter the window is either shown
full screen or restored to its normal state. @a style is a bit list