class WXDLLEXPORT wxTopLevelWindowBase;
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
// Dialogs are created in a special way
-#define wxTLW_EX_DIALOG 0x00000008
+#define wxTOPLEVEL_EX_DIALOG 0x00000008
// Styles for ShowFullScreen
// (note that wxTopLevelWindow only handles wxFULLSCREEN_NOBORDER and
// wxFULLSCREEN_NOCAPTION; the rest is handled by wxTopLevelWindow)
-#define wxFULLSCREEN_NOMENUBAR 0x01
-#define wxFULLSCREEN_NOTOOLBAR 0x02
-#define wxFULLSCREEN_NOSTATUSBAR 0x04
-#define wxFULLSCREEN_NOBORDER 0x08
-#define wxFULLSCREEN_NOCAPTION 0x10
-#define wxFULLSCREEN_ALL (wxFULLSCREEN_NOMENUBAR | wxFULLSCREEN_NOTOOLBAR | wxFULLSCREEN_NOSTATUSBAR | wxFULLSCREEN_NOBORDER | wxFULLSCREEN_NOCAPTION)
+enum
+{
+ wxFULLSCREEN_NOMENUBAR = 0x0001,
+ wxFULLSCREEN_NOTOOLBAR = 0x0002,
+ wxFULLSCREEN_NOSTATUSBAR = 0x0004,
+ wxFULLSCREEN_NOBORDER = 0x0008,
+ wxFULLSCREEN_NOCAPTION = 0x0010,
+
+ wxFULLSCREEN_ALL = wxFULLSCREEN_NOMENUBAR | wxFULLSCREEN_NOTOOLBAR |
+ wxFULLSCREEN_NOSTATUSBAR | wxFULLSCREEN_NOBORDER |
+ wxFULLSCREEN_NOCAPTION
+};
+
+// Flags for interactive frame manipulation functions (only in wxUniversal):
+enum
+{
+ wxINTERACTIVE_MOVE = 0x00000001,
+ wxINTERACTIVE_RESIZE = 0x00000002,
+ wxINTERACTIVE_RESIZE_S = 0x00000010,
+ wxINTERACTIVE_RESIZE_N = 0x00000020,
+ wxINTERACTIVE_RESIZE_W = 0x00000040,
+ wxINTERACTIVE_RESIZE_E = 0x00000080,
+ wxINTERACTIVE_WAIT_FOR_INPUT = 0x10000000
+};
// ----------------------------------------------------------------------------
// wxTopLevelWindow: a top level (as opposed to child) window
public:
// construction
wxTopLevelWindowBase();
+
#ifdef __DARWIN__
virtual ~wxTopLevelWindowBase() {}
#endif
-
+
// top level wnd state
// --------------------
// set the frame icon
virtual void SetIcon(const wxIcon& icon) { m_icon = icon; }
+ // maximize the window to cover entire screen
+ virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL) = 0;
+
+ // return TRUE if the frame is in fullscreen mode
+ virtual bool IsFullScreen() const = 0;
+
/*
for now we already have them in wxWindow, but this is wrong: these
methods really only make sense for wxTopLevelWindow!
bool Iconized() const { return IsIconized(); }
#endif // WXWIN_COMPATIBILITY_2
+
+#ifdef __WXUNIVERSAL__
+ // move/resize the frame interactively, i.e. let the user do it
+ virtual void InteractiveMove(int flags = wxINTERACTIVE_MOVE);
+#endif
+
// implementation only from now on
// -------------------------------
// include the real class declaration
-#if defined(__WXGTK__)
+#if defined(__WXMSW__)
+ #include "wx/msw/toplevel.h"
+ #define wxTopLevelWindowNative wxTopLevelWindowMSW
+#elif defined(__WXGTK__)
#include "wx/gtk/toplevel.h"
#define wxTopLevelWindowNative wxTopLevelWindowGTK
#elif defined(__WXMGL__)
#include "wx/mgl/toplevel.h"
#define wxTopLevelWindowNative wxTopLevelWindowMGL
+#elif defined(__WXMAC__)
+ #include "wx/mac/toplevel.h"
+ #define wxTopLevelWindowNative wxTopLevelWindowMac
#endif
#ifdef __WXUNIVERSAL__