X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/82c9f85ce5aceaa3aedac7e690070d5eff904e5b..a509f6bcdde06fe2845fe379086bc30462c32ffc:/include/wx/toplevel.h diff --git a/include/wx/toplevel.h b/include/wx/toplevel.h index f4482a2850..9eb6f10f0c 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 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 // ------------------------------- @@ -105,10 +143,6 @@ public: // so should be there for all platforms void OnActivate(wxActivateEvent &WXUNUSED(event)) { } -#ifdef __DARWIN__ - virtual ~wxTopLevelWindowBase() {} -#endif - protected: // the frame client to screen translation should take account of the // toolbar which may shift the origin of the client area @@ -139,6 +173,9 @@ protected: #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__