X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7d9f12f3b9f997b6308faf336d5381be591b71f4..b4a5319e83c7f4f3cb59034c9136a7cd720a6bd5:/include/wx/toplevel.h diff --git a/include/wx/toplevel.h b/include/wx/toplevel.h index 3547812680..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 @@ -53,6 +75,10 @@ public: // construction wxTopLevelWindowBase(); +#ifdef __DARWIN__ + virtual ~wxTopLevelWindowBase() {} +#endif + // top level wnd state // -------------------- @@ -77,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! @@ -90,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 // ------------------------------- @@ -126,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__