d2824cdb7f
classes for wxMDI{Parent,Child}Frame and wxMDIClientWindow. Also use generic MDI implementation for wxMotif as it seems to be more functional and definitely is more maintained (we probably should use the generic version for wxGTK too). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
103 lines
2.2 KiB
C++
103 lines
2.2 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: mdi.cpp
|
|
// Purpose: MDI sample
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 04/01/98
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Julian Smart
|
|
// Licence: wxWindows license
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "wx/toolbar.h"
|
|
|
|
// Define a new application
|
|
class MyApp : public wxApp
|
|
{
|
|
public:
|
|
virtual bool OnInit();
|
|
};
|
|
|
|
class MyCanvas : public wxScrolledWindow
|
|
{
|
|
public:
|
|
MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size);
|
|
virtual void OnDraw(wxDC& dc);
|
|
|
|
bool IsDirty() const { return m_dirty; }
|
|
|
|
void SetText(const wxString& text) { m_text = text; Refresh(); }
|
|
|
|
private:
|
|
void OnEvent(wxMouseEvent& event);
|
|
|
|
wxString m_text;
|
|
|
|
bool m_dirty;
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
// Define a new frame
|
|
class MyFrame : public wxMDIParentFrame
|
|
{
|
|
public:
|
|
MyFrame();
|
|
virtual ~MyFrame();
|
|
|
|
private:
|
|
void InitToolBar(wxToolBar* toolBar);
|
|
|
|
void OnSize(wxSizeEvent& event);
|
|
void OnAbout(wxCommandEvent& event);
|
|
void OnNewWindow(wxCommandEvent& event);
|
|
void OnQuit(wxCommandEvent& event);
|
|
void OnClose(wxCloseEvent& event);
|
|
|
|
wxTextCtrl *m_textWindow;
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
class MyChild : public wxMDIChildFrame
|
|
{
|
|
public:
|
|
MyChild(wxMDIParentFrame *parent);
|
|
virtual ~MyChild();
|
|
|
|
static unsigned GetChildrenCount() { return ms_numChildren; }
|
|
|
|
private:
|
|
void OnActivate(wxActivateEvent& event);
|
|
|
|
void OnRefresh(wxCommandEvent& event);
|
|
void OnUpdateRefresh(wxUpdateUIEvent& event);
|
|
void OnChangeTitle(wxCommandEvent& event);
|
|
void OnChangePosition(wxCommandEvent& event);
|
|
void OnChangeSize(wxCommandEvent& event);
|
|
void OnClose(wxCommandEvent& event);
|
|
void OnSize(wxSizeEvent& event);
|
|
void OnMove(wxMoveEvent& event);
|
|
void OnCloseWindow(wxCloseEvent& event);
|
|
|
|
#if wxUSE_CLIPBOARD
|
|
void OnPaste(wxCommandEvent& event);
|
|
void OnUpdatePaste(wxUpdateUIEvent& event);
|
|
#endif // wxUSE_CLIPBOARD
|
|
|
|
static unsigned ms_numChildren;
|
|
|
|
MyCanvas *m_canvas;
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
// menu items ids
|
|
enum
|
|
{
|
|
MDI_REFRESH,
|
|
MDI_CHANGE_TITLE,
|
|
MDI_CHANGE_POSITION,
|
|
MDI_CHANGE_SIZE
|
|
};
|