X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/80823340ab3da196d5225b7c7087f4b7a7dcc35e..b1d66b5415f7befb45e050d7097571642b8bfa56:/include/wx/toplevel.h diff --git a/include/wx/toplevel.h b/include/wx/toplevel.h index bf5fe88226..64a1c964a0 100644 --- a/include/wx/toplevel.h +++ b/include/wx/toplevel.h @@ -30,18 +30,40 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxFrameNameStr; 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 @@ -52,10 +74,11 @@ class WXDLLEXPORT wxTopLevelWindowBase : public wxWindow public: // construction wxTopLevelWindowBase(); + #ifdef __DARWIN__ virtual ~wxTopLevelWindowBase() {} #endif - + // top level wnd state // -------------------- @@ -80,6 +103,12 @@ public: // 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! @@ -93,6 +122,12 @@ public: 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 // ------------------------------- @@ -129,12 +164,18 @@ protected: // 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__