b9f933ab5d
By Hans Van Leemputten (hansvl) - This patch implements a generic notebook based mdi, due to that wxMDIChildFrame could not derive from wxFrame some things in the samples and in the docmdi classes needed to be adjusted... basically this comes down to not do (wxFrame *) but instead do (wxMDIChildFrame *), or store a pointer to the frame in a wxWindow* instead of a wxFrame variable... - The main reason wxMDIChildFrame cannot derive from wxFrame is that it would take to much platform specific functions to be overwritten (= lot of ifdef's). This then couldn't be called generic anymore, so that's why we need to derive from wxPanel... - Tested on/with: 1. wxMSW (I disabled the MSW MDI implementation to be able to test it), tested it with the MDI sample, docvwmdi sample and docview sample and also tested it with wxWorkshop. (test = compile and run) 2. wxX11, tested with the same set wxWin samples as the wxMSW test. I also compiled wxWorkshop with it, but could not run wxWorkshop due to some issue not related to the MDI implementation. - How to apply: * Apply the patch * move mdig.cpp into wxWindows/src/generic/ * move mdig.h into wxWindows/include/wx/generic/ - Some extra things that still need to be done: * File lists, project files should be updated to include mdig.cpp (the patch only change this on wxX11) * The configuration script should be updated. * Maybe wxUSE_GENERIC_MDI_ARCHITECTURE also should be added so it is only included when wanted... git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
66 lines
1.4 KiB
C++
66 lines
1.4 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: docview.h
|
|
// Purpose: Document/view demo
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 04/01/98
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Julian Smart and Markus Holzem
|
|
// Licence: wxWindows license
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifdef __GNUG__
|
|
// #pragma interface "docview.h"
|
|
#endif
|
|
|
|
#ifndef __DOCVIEWSAMPLEH__
|
|
#define __DOCVIEWSAMPLEH__
|
|
|
|
#include "wx/mdi.h"
|
|
#include "wx/docview.h"
|
|
#include "wx/docmdi.h"
|
|
|
|
class wxDocManager;
|
|
|
|
// Define a new application
|
|
class MyApp: public wxApp
|
|
{
|
|
public:
|
|
MyApp(void);
|
|
bool OnInit(void);
|
|
int OnExit(void);
|
|
|
|
wxMDIChildFrame *CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas);
|
|
|
|
protected:
|
|
wxDocManager* m_docManager;
|
|
};
|
|
|
|
DECLARE_APP(MyApp)
|
|
|
|
// Define a new frame
|
|
class MyCanvas;
|
|
class MyFrame: public wxDocMDIParentFrame
|
|
{
|
|
DECLARE_CLASS(MyFrame)
|
|
public:
|
|
wxMenu *editMenu;
|
|
|
|
MyFrame(wxDocManager *manager, wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size,
|
|
long type);
|
|
|
|
void OnAbout(wxCommandEvent& event);
|
|
MyCanvas *CreateCanvas(wxView *view, wxMDIChildFrame *parent);
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
extern MyFrame *GetMainFrame(void);
|
|
|
|
#define DOCVIEW_CUT 1
|
|
#define DOCVIEW_ABOUT 2
|
|
|
|
extern bool singleWindowMode;
|
|
|
|
#endif
|