menubar and populates it later. Since this is (or at least was) a valid way to use wxMenuBar before that, we need to recalculate the size whenever it might change. (We probably need to do it anyway for this to be completely useful). This patch isn't the cleanest or most efficient way to do that, but it's a minimal change on a new feature that at least restores compatibility. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
113 lines
3.3 KiB
C++
113 lines
3.3 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/gtk/frame.h
|
|
// Purpose:
|
|
// Author: Robert Roebling
|
|
// Id: $Id$
|
|
// Copyright: (c) 1998 Robert Roebling, Julian Smart
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#ifndef __GTKFRAMEH__
|
|
#define __GTKFRAMEH__
|
|
|
|
#if defined(__GNUG__) && !defined(__APPLE__)
|
|
#pragma interface "frame.h"
|
|
#endif
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// classes
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class wxMDIChildFrame;
|
|
class wxMDIClientWindow;
|
|
class wxMenu;
|
|
class wxMenuBar;
|
|
class wxToolBar;
|
|
class wxStatusBar;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// wxFrame
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class 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();
|
|
|
|
#if wxUSE_STATUSBAR
|
|
virtual void PositionStatusBar();
|
|
|
|
virtual wxStatusBar* CreateStatusBar(int number = 1,
|
|
long style = wxST_SIZEGRIP,
|
|
wxWindowID id = 0,
|
|
const wxString& name = wxStatusLineNameStr);
|
|
#endif // wxUSE_STATUSBAR
|
|
|
|
#if wxUSE_TOOLBAR
|
|
virtual wxToolBar* CreateToolBar(long style = wxNO_BORDER | wxTB_HORIZONTAL | wxTB_FLAT,
|
|
wxWindowID id = -1,
|
|
const wxString& name = wxToolBarNameStr);
|
|
void SetToolBar(wxToolBar *toolbar);
|
|
#endif // wxUSE_TOOLBAR
|
|
|
|
wxPoint GetClientAreaOrigin() const { return wxPoint(0, 0); }
|
|
|
|
// implementation from now on
|
|
// --------------------------
|
|
|
|
// GTK callbacks
|
|
virtual void GtkOnSize( int x, int y, int width, int height );
|
|
virtual void OnInternalIdle();
|
|
|
|
bool m_menuBarDetached;
|
|
int m_menuBarHeight;
|
|
bool m_toolBarDetached;
|
|
|
|
protected:
|
|
// common part of all ctors
|
|
void Init();
|
|
|
|
// override wxWindow methods to take into account tool/menu/statusbars
|
|
virtual void DoSetClientSize(int width, int height);
|
|
virtual void DoGetClientSize( int *width, int *height ) const;
|
|
|
|
#if wxUSE_MENUS_NATIVE
|
|
|
|
virtual void DetachMenuBar();
|
|
virtual void AttachMenuBar(wxMenuBar *menubar);
|
|
|
|
public:
|
|
// Menu size is dynamic now, call this whenever it might change.
|
|
void UpdateMenuBarSize();
|
|
|
|
#endif // wxUSE_MENUS_NATIVE
|
|
|
|
DECLARE_DYNAMIC_CLASS(wxFrame)
|
|
};
|
|
|
|
#endif // __GTKFRAMEH__
|