1998-05-20 10:01:55 -04:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: mdi.h
|
|
|
|
// Purpose:
|
|
|
|
// Author: Robert Roebling
|
|
|
|
// Created: 01/02/97
|
|
|
|
// Id:
|
|
|
|
// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
|
|
|
|
// Licence: wxWindows licence
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef __MDIH__
|
|
|
|
#define __MDIH__
|
|
|
|
|
|
|
|
#ifdef __GNUG__
|
|
|
|
#pragma interface
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include "wx/defs.h"
|
|
|
|
#include "wx/object.h"
|
|
|
|
#include "wx/list.h"
|
|
|
|
#include "wx/control.h"
|
|
|
|
#include "wx/panel.h"
|
|
|
|
#include "wx/frame.h"
|
1998-07-22 18:13:31 -04:00
|
|
|
#include "wx/toolbar.h"
|
1998-05-20 10:01:55 -04:00
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// classes
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
class wxMDIParentFrame;
|
|
|
|
class wxMDIClientWindow;
|
|
|
|
class wxMDIChildFrame;
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// global data
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
extern const char* wxFrameNameStr;
|
|
|
|
extern const char* wxStatusLineNameStr;
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// wxMDIParentFrame
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
class wxMDIParentFrame: public wxFrame
|
|
|
|
{
|
|
|
|
DECLARE_DYNAMIC_CLASS(wxMDIParentFrame)
|
|
|
|
|
|
|
|
friend class wxMDIChildFrame;
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
wxMDIParentFrame(void);
|
|
|
|
wxMDIParentFrame( wxWindow *parent,
|
1998-07-04 11:17:59 -04:00
|
|
|
wxWindowID id, const wxString& title,
|
1998-05-20 10:01:55 -04:00
|
|
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
1998-07-04 11:17:59 -04:00
|
|
|
long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
|
1998-05-20 10:01:55 -04:00
|
|
|
const wxString& name = wxFrameNameStr );
|
|
|
|
~wxMDIParentFrame(void);
|
|
|
|
bool Create( wxWindow *parent,
|
1998-07-04 11:17:59 -04:00
|
|
|
wxWindowID id, const wxString& title,
|
1998-05-20 10:01:55 -04:00
|
|
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
1998-07-04 11:17:59 -04:00
|
|
|
long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
|
1998-05-20 10:01:55 -04:00
|
|
|
const wxString& name = wxFrameNameStr );
|
|
|
|
|
|
|
|
|
1998-07-22 18:13:31 -04:00
|
|
|
void GetClientSize(int *width, int *height) const;
|
|
|
|
wxMDIChildFrame *GetActiveChild(void) const;
|
|
|
|
|
|
|
|
wxMDIClientWindow *GetClientWindow(void) const;
|
|
|
|
virtual wxMDIClientWindow *OnCreateClient(void);
|
1998-05-20 10:01:55 -04:00
|
|
|
|
1998-07-22 18:13:31 -04:00
|
|
|
virtual void Cascade(void) {};
|
|
|
|
virtual void Tile(void) {};
|
|
|
|
virtual void ArrangeIcons(void) {};
|
|
|
|
virtual void ActivateNext(void);
|
|
|
|
virtual void ActivatePrevious(void);
|
|
|
|
|
|
|
|
void OnActivate( wxActivateEvent& event );
|
|
|
|
void OnSysColourChanged( wxSysColourChangedEvent& event );
|
|
|
|
|
|
|
|
//private:
|
|
|
|
|
|
|
|
wxMDIChildFrame *m_currentChild;
|
|
|
|
|
|
|
|
void SetMDIMenuBar( wxMenuBar *menu_bar );
|
|
|
|
virtual void GtkOnSize( int x, int y, int width, int height );
|
1998-05-20 10:01:55 -04:00
|
|
|
|
1998-07-22 18:13:31 -04:00
|
|
|
private:
|
|
|
|
|
|
|
|
wxMDIClientWindow *m_clientWindow;
|
1998-05-20 10:01:55 -04:00
|
|
|
bool m_parentFrameActive;
|
1998-07-22 18:13:31 -04:00
|
|
|
wxMenuBar *m_mdiMenuBar;
|
1998-05-20 10:01:55 -04:00
|
|
|
|
1998-07-22 18:13:31 -04:00
|
|
|
DECLARE_EVENT_TABLE()
|
1998-05-20 10:01:55 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// wxMDIChildFrame
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
class wxMDIChildFrame: public wxPanel
|
|
|
|
{
|
|
|
|
DECLARE_DYNAMIC_CLASS(wxMDIChildFrame)
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
wxMDIChildFrame(void);
|
|
|
|
wxMDIChildFrame( wxMDIParentFrame *parent,
|
1998-07-04 11:17:59 -04:00
|
|
|
wxWindowID id, const wxString& title,
|
1998-05-20 10:01:55 -04:00
|
|
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
1998-07-04 11:17:59 -04:00
|
|
|
long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr );
|
1998-05-20 10:01:55 -04:00
|
|
|
~wxMDIChildFrame(void);
|
|
|
|
bool Create( wxMDIParentFrame *parent,
|
1998-07-04 11:17:59 -04:00
|
|
|
wxWindowID id, const wxString& title,
|
1998-05-20 10:01:55 -04:00
|
|
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
1998-07-04 11:17:59 -04:00
|
|
|
long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr );
|
1998-05-20 10:01:55 -04:00
|
|
|
void SetMenuBar( wxMenuBar *menu_bar );
|
|
|
|
|
|
|
|
// no status bars in wxGTK
|
1998-07-04 11:17:59 -04:00
|
|
|
virtual bool CreateStatusBar( int WXUNUSED(number) = 1 ) { return FALSE; };
|
|
|
|
virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number) ) {};
|
|
|
|
virtual void SetStatusWidths( int WXUNUSED(n), int *WXUNUSED(width) ) {};
|
|
|
|
|
1998-05-20 10:01:55 -04:00
|
|
|
virtual void Maximize(void) {};
|
|
|
|
virtual void Restore(void) {};
|
|
|
|
virtual void Activate(void);
|
|
|
|
|
1998-07-22 18:13:31 -04:00
|
|
|
bool Destroy(void);
|
|
|
|
void OnCloseWindow( wxCloseEvent& event );
|
1998-07-27 16:50:48 -04:00
|
|
|
void OnSize( wxSizeEvent &event );
|
1998-07-22 18:13:31 -04:00
|
|
|
|
1998-05-20 10:01:55 -04:00
|
|
|
public:
|
|
|
|
|
1998-07-22 18:13:31 -04:00
|
|
|
wxString m_title;
|
|
|
|
wxMenuBar *m_menuBar;
|
|
|
|
|
|
|
|
// private:
|
|
|
|
|
|
|
|
GtkNotebookPage *m_page;
|
|
|
|
|
|
|
|
DECLARE_EVENT_TABLE()
|
1998-05-20 10:01:55 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// wxMDIClientWindow
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
class wxMDIClientWindow: public wxWindow
|
|
|
|
{
|
|
|
|
DECLARE_DYNAMIC_CLASS(wxMDIClientWindow)
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
wxMDIClientWindow(void);
|
1998-07-04 11:17:59 -04:00
|
|
|
wxMDIClientWindow( wxMDIParentFrame *parent, long style = 0 );
|
1998-05-20 10:01:55 -04:00
|
|
|
~wxMDIClientWindow(void);
|
1998-07-04 11:17:59 -04:00
|
|
|
virtual bool CreateClient( wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL );
|
1998-05-20 10:01:55 -04:00
|
|
|
void AddChild( wxWindow *child );
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // __MDIH__
|
|
|
|
|