]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/frame.h
Override wxWindow::MSWGetCreateWindowCoords() in wxTopLevelWindow.
[wxWidgets.git] / include / wx / osx / frame.h
index fceb903d245e5aa98adec789c79b12d431c16388..42c93937485f7796c50b09f2b910fce6e1d9643e 100644 (file)
@@ -1,5 +1,124 @@
-#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();
+
+    // osx specific event handling common for all osx-ports
+    virtual void HandleResized( double timestampsec );
+
+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
+
+    // the last focused child: we restore focus to it on activation
+    wxWindow             *m_winLastFocused;
+
+    virtual bool        MacIsChildOfClientArea( const wxWindow* child ) const ;
+
+    DECLARE_EVENT_TABLE()
+    DECLARE_DYNAMIC_CLASS(wxFrame)
+};
+
+#endif
+    // _WX_FRAME_H_