X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5c6eb3a84be918dcfed2496d014549e13af0f0e9..cbeda384e51acb82e13994cb67ac1714669cae10:/include/wx/osx/frame.h diff --git a/include/wx/osx/frame.h b/include/wx/osx/frame.h index fceb903d24..be5e40f6ee 100644 --- a/include/wx/osx/frame.h +++ b/include/wx/osx/frame.h @@ -1,5 +1,126 @@ -#ifdef __WXMAC_CLASSIC__ -#include "wx/mac/classic/frame.h" -#else -#include "wx/mac/carbon/frame.h" +///////////////////////////////////////////////////////////////////////////// +// Name: frame.h +// Purpose: wxFrame class +// Author: Stefan Csomor +// Modified by: +// Created: 1998-01-01 +// RCS-ID: $Id$ +// Copyright: (c) Stefan Csomor +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_FRAME_H_ +#define _WX_FRAME_H_ + +#include "wx/window.h" +#include "wx/toolbar.h" +#include "wx/accel.h" +#include "wx/icon.h" + +WXDLLIMPEXP_DATA_CORE(extern const char) wxToolBarNameStr[]; + +class WXDLLIMPEXP_FWD_CORE wxMenuBar; +class WXDLLIMPEXP_FWD_CORE wxStatusBar; +class WXDLLIMPEXP_FWD_CORE wxMacToolTip ; + +class WXDLLIMPEXP_CORE wxFrame: public wxFrameBase +{ +public: + // construction + wxFrame() { Init(); } + wxFrame(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr) + { + Init(); + + Create(parent, id, title, pos, size, style, name); + } + + bool Create(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr); + + virtual ~wxFrame(); + + // implementation only from now on + // ------------------------------- + + // get the origin of the client area (which may be different from (0, 0) + // if the frame has a toolbar) in client coordinates + virtual wxPoint GetClientAreaOrigin() const; + + // override some more virtuals + virtual bool Enable(bool enable = TRUE) ; + + // event handlers + void OnActivate(wxActivateEvent& event); + void OnSysColourChanged(wxSysColourChangedEvent& event); + + // Toolbar +#if wxUSE_TOOLBAR + virtual wxToolBar* CreateToolBar(long style = -1, + wxWindowID id = -1, + const wxString& name = wxToolBarNameStr); + + virtual void SetToolBar(wxToolBar *toolbar); +#endif // wxUSE_TOOLBAR + + // Status bar +#if wxUSE_STATUSBAR + virtual wxStatusBar* OnCreateStatusBar(int number = 1, + long style = wxSTB_DEFAULT_STYLE, + wxWindowID id = 0, + const wxString& name = wxStatusLineNameStr); +#endif // wxUSE_STATUSBAR + + // called by wxWindow whenever it gets focus + void SetLastFocus(wxWindow *win) { m_winLastFocused = win; } + wxWindow *GetLastFocus() const { return m_winLastFocused; } + + void PositionBars(); + +protected: + // common part of all ctors + void Init(); + +#if wxUSE_TOOLBAR + virtual void PositionToolBar(); #endif +#if wxUSE_STATUSBAR + virtual void PositionStatusBar(); +#endif + + // override base class virtuals + virtual void DoGetClientSize(int *width, int *height) const; + virtual void DoSetClientSize(int width, int height); + +#if wxUSE_MENUS + virtual void DetachMenuBar(); + virtual void AttachMenuBar(wxMenuBar *menubar); +#endif + + // osx specific event handling common for all osx-ports + virtual void HandleResized( double timestampsec ); + +protected: + // the last focused child: we restore focus to it on activation + wxWindow *m_winLastFocused; + + virtual bool MacIsChildOfClientArea( const wxWindow* child ) const ; + +private: + DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS(wxFrame) +}; + +#endif + // _WX_FRAME_H_