git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			111 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        doc.h
 | 
						|
// Purpose:     Document classes
 | 
						|
// 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
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef __DOCSAMPLEH__
 | 
						|
#define __DOCSAMPLEH__
 | 
						|
 | 
						|
#include "wx/docview.h"
 | 
						|
#include "wx/cmdproc.h"
 | 
						|
 | 
						|
// Plots a line from one point to the other
 | 
						|
class DoodleLine: public wxObject
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxInt32 x1;
 | 
						|
    wxInt32 y1;
 | 
						|
    wxInt32 x2;
 | 
						|
    wxInt32 y2;
 | 
						|
};
 | 
						|
 | 
						|
// Contains a list of lines: represents a mouse-down doodle
 | 
						|
class DoodleSegment: public wxObject
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxList lines;
 | 
						|
    
 | 
						|
    DoodleSegment(void);
 | 
						|
    DoodleSegment(DoodleSegment& seg);
 | 
						|
    ~DoodleSegment(void);
 | 
						|
    
 | 
						|
    void Draw(wxDC *dc);
 | 
						|
#if wxUSE_STD_IOSTREAM
 | 
						|
    wxSTD ostream& SaveObject(wxSTD ostream& text_stream);
 | 
						|
    wxSTD istream& LoadObject(wxSTD istream& text_stream);
 | 
						|
#else
 | 
						|
    wxOutputStream& SaveObject(wxOutputStream& stream);
 | 
						|
    wxInputStream& LoadObject(wxInputStream& stream);
 | 
						|
#endif
 | 
						|
    
 | 
						|
};
 | 
						|
 | 
						|
class DrawingDocument: public wxDocument
 | 
						|
{
 | 
						|
    DECLARE_DYNAMIC_CLASS(DrawingDocument)
 | 
						|
private:
 | 
						|
public:
 | 
						|
    wxList doodleSegments;
 | 
						|
    
 | 
						|
    DrawingDocument(void);
 | 
						|
    ~DrawingDocument(void);
 | 
						|
    
 | 
						|
#if wxUSE_STD_IOSTREAM
 | 
						|
    wxSTD ostream& SaveObject(wxSTD ostream& text_stream);
 | 
						|
    wxSTD istream& LoadObject(wxSTD istream& text_stream);
 | 
						|
#else
 | 
						|
    wxOutputStream& SaveObject(wxOutputStream& stream);
 | 
						|
    wxInputStream& LoadObject(wxInputStream& stream);
 | 
						|
#endif
 | 
						|
    
 | 
						|
    inline wxList& GetDoodleSegments(void) const { return (wxList&) doodleSegments; };
 | 
						|
};
 | 
						|
 | 
						|
#define DOODLE_CUT          1
 | 
						|
#define DOODLE_ADD          2
 | 
						|
 | 
						|
class DrawingCommand: public wxCommand
 | 
						|
{
 | 
						|
protected:
 | 
						|
    DoodleSegment *segment;
 | 
						|
    DrawingDocument *doc;
 | 
						|
    int cmd;
 | 
						|
public:
 | 
						|
    DrawingCommand(const wxString& name, int cmd, DrawingDocument *ddoc, DoodleSegment *seg);
 | 
						|
    ~DrawingCommand(void);
 | 
						|
    
 | 
						|
    bool Do(void);
 | 
						|
    bool Undo(void);
 | 
						|
};
 | 
						|
 | 
						|
class TextEditDocument: public wxDocument
 | 
						|
{
 | 
						|
    DECLARE_DYNAMIC_CLASS(TextEditDocument)
 | 
						|
private:
 | 
						|
public:
 | 
						|
/*
 | 
						|
wxSTD ostream& SaveObject(wxSTD ostream& stream);
 | 
						|
wxSTD istream& LoadObject(wxSTD istream& stream);
 | 
						|
    */
 | 
						|
    virtual bool OnSaveDocument(const wxString& filename);
 | 
						|
    virtual bool OnOpenDocument(const wxString& filename);
 | 
						|
    virtual bool IsModified(void) const;
 | 
						|
    virtual void Modify(bool mod);
 | 
						|
    
 | 
						|
    TextEditDocument(void) {}
 | 
						|
    ~TextEditDocument(void) {}
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
#endif
 |