attached to the parent of a window without one. Instead, it is now up to the GetAppMenuBar() function to do so. The new implementation in wxTopLevelWindow does just that. The wxFrame implementation now calls the base class version if it does not have a menubar. Also, it is now invalid to call the function with a NULL window (it is internal anyway). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
104 lines
3.7 KiB
C++
104 lines
3.7 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/cocoa/frame.h
|
|
// Purpose: wxFrame class
|
|
// Author: David Elliott
|
|
// Modified by:
|
|
// Created: 2003/03/16
|
|
// RCS-ID: $Id:
|
|
// Copyright: (c) 2003 David Elliott
|
|
// Licence: wxWindows license
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_COCOA_FRAME_H_
|
|
#define _WX_COCOA_FRAME_H_
|
|
|
|
class WXDLLEXPORT wxMenuBar;
|
|
class WXDLLEXPORT wxStatusBar;
|
|
|
|
class WXDLLEXPORT wxFrame: public wxFrameBase
|
|
{
|
|
DECLARE_EVENT_TABLE()
|
|
DECLARE_DYNAMIC_CLASS(wxFrame)
|
|
// ------------------------------------------------------------------------
|
|
// initialization
|
|
// ------------------------------------------------------------------------
|
|
public:
|
|
wxFrame() { Init(); }
|
|
wxFrame(wxWindow *parent,
|
|
wxWindowID winid,
|
|
const wxString& title,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxDEFAULT_FRAME_STYLE,
|
|
const wxString& name = wxFrameNameStr)
|
|
{
|
|
Init();
|
|
Create(parent, winid, title, pos, size, style, name);
|
|
}
|
|
|
|
virtual ~wxFrame();
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID winid,
|
|
const wxString& title,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxDEFAULT_FRAME_STYLE,
|
|
const wxString& name = wxFrameNameStr);
|
|
protected:
|
|
void Init();
|
|
// ------------------------------------------------------------------------
|
|
// Cocoa specifics
|
|
// ------------------------------------------------------------------------
|
|
public:
|
|
virtual wxMenuBar* GetAppMenuBar();
|
|
// Returns the NSView for non-client drawing
|
|
virtual WX_NSView GetNonClientNSView();
|
|
protected:
|
|
virtual void CocoaSetWxWindowSize(int width, int height);
|
|
|
|
// Helper function to position status/tool bars
|
|
void UpdateFrameNSView();
|
|
|
|
virtual void CocoaReplaceView(WX_NSView oldView, WX_NSView newView);
|
|
// frameNSView is used whenever a statusbar/generic toolbar are present
|
|
WX_NSView m_frameNSView;
|
|
// ------------------------------------------------------------------------
|
|
// Implementation
|
|
// ------------------------------------------------------------------------
|
|
public:
|
|
virtual void AttachMenuBar(wxMenuBar *mbar);
|
|
virtual void DetachMenuBar();
|
|
virtual void SetMenuBar(wxMenuBar *menubar);
|
|
|
|
// implementation only from now on
|
|
// -------------------------------
|
|
|
|
// override some more virtuals
|
|
|
|
// 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;
|
|
|
|
// create the main status bar by calling OnCreateStatusBar()
|
|
virtual wxStatusBar* CreateStatusBar(int number = 1,
|
|
long style = wxST_SIZEGRIP,
|
|
wxWindowID winid = 0,
|
|
const wxString& name =
|
|
wxStatusLineNameStr);
|
|
// sets the main status bar
|
|
void SetStatusBar(wxStatusBar *statBar);
|
|
#if wxUSE_TOOLBAR
|
|
// create main toolbar bycalling OnCreateToolBar()
|
|
virtual wxToolBar* CreateToolBar(long style = -1,
|
|
wxWindowID winid = -1,
|
|
const wxString& name = wxToolBarNameStr);
|
|
// sets the main tool bar
|
|
virtual void SetToolBar(wxToolBar *toolbar);
|
|
#endif //wxUSE_TOOLBAR
|
|
protected:
|
|
void PositionStatusBar();
|
|
};
|
|
|
|
#endif // _WX_COCOA_FRAME_H_
|