1998-05-22 15:57:05 -04:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// 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
|
2002-03-17 09:16:03 -05:00
|
|
|
// Licence: wxWindows license
|
1998-05-22 15:57:05 -04:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifdef __GNUG__
|
|
|
|
// #pragma interface
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __DOCSAMPLEH__
|
|
|
|
#define __DOCSAMPLEH__
|
|
|
|
|
|
|
|
#include "wx/docview.h"
|
2001-06-27 08:31:16 -04:00
|
|
|
#include "wx/cmdproc.h"
|
1998-05-22 15:57:05 -04:00
|
|
|
|
|
|
|
// Plots a line from one point to the other
|
|
|
|
class DoodleLine: public wxObject
|
|
|
|
{
|
2000-07-15 15:51:35 -04:00
|
|
|
public:
|
|
|
|
wxInt32 x1;
|
|
|
|
wxInt32 y1;
|
|
|
|
wxInt32 x2;
|
|
|
|
wxInt32 y2;
|
1998-05-22 15:57:05 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
// Contains a list of lines: represents a mouse-down doodle
|
|
|
|
class DoodleSegment: public wxObject
|
|
|
|
{
|
2000-07-15 15:51:35 -04:00
|
|
|
public:
|
|
|
|
wxList lines;
|
|
|
|
|
|
|
|
DoodleSegment(void);
|
|
|
|
DoodleSegment(DoodleSegment& seg);
|
|
|
|
~DoodleSegment(void);
|
|
|
|
|
|
|
|
void Draw(wxDC *dc);
|
1999-07-11 15:29:59 -04:00
|
|
|
#if wxUSE_STD_IOSTREAM
|
2001-06-06 12:51:53 -04:00
|
|
|
wxSTD ostream& SaveObject(wxSTD ostream& text_stream);
|
|
|
|
wxSTD istream& LoadObject(wxSTD istream& text_stream);
|
1999-07-11 15:29:59 -04:00
|
|
|
#else
|
2000-07-15 15:51:35 -04:00
|
|
|
wxOutputStream& SaveObject(wxOutputStream& stream);
|
|
|
|
wxInputStream& LoadObject(wxInputStream& stream);
|
1999-07-11 15:29:59 -04:00
|
|
|
#endif
|
2000-07-15 15:51:35 -04:00
|
|
|
|
1998-05-22 15:57:05 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
class DrawingDocument: public wxDocument
|
|
|
|
{
|
2000-07-15 15:51:35 -04:00
|
|
|
DECLARE_DYNAMIC_CLASS(DrawingDocument)
|
|
|
|
private:
|
|
|
|
public:
|
|
|
|
wxList doodleSegments;
|
|
|
|
|
|
|
|
DrawingDocument(void);
|
|
|
|
~DrawingDocument(void);
|
|
|
|
|
1999-07-11 15:29:59 -04:00
|
|
|
#if wxUSE_STD_IOSTREAM
|
2001-06-06 12:51:53 -04:00
|
|
|
wxSTD ostream& SaveObject(wxSTD ostream& text_stream);
|
|
|
|
wxSTD istream& LoadObject(wxSTD istream& text_stream);
|
1999-07-11 15:29:59 -04:00
|
|
|
#else
|
2000-07-15 15:51:35 -04:00
|
|
|
wxOutputStream& SaveObject(wxOutputStream& stream);
|
|
|
|
wxInputStream& LoadObject(wxInputStream& stream);
|
1999-07-11 15:29:59 -04:00
|
|
|
#endif
|
2000-07-15 15:51:35 -04:00
|
|
|
|
|
|
|
inline wxList& GetDoodleSegments(void) const { return (wxList&) doodleSegments; };
|
1998-05-22 15:57:05 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
#define DOODLE_CUT 1
|
|
|
|
#define DOODLE_ADD 2
|
|
|
|
|
|
|
|
class DrawingCommand: public wxCommand
|
|
|
|
{
|
2000-07-15 15:51:35 -04:00
|
|
|
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);
|
1998-05-22 15:57:05 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
class TextEditDocument: public wxDocument
|
|
|
|
{
|
2000-07-15 15:51:35 -04:00
|
|
|
DECLARE_DYNAMIC_CLASS(TextEditDocument)
|
|
|
|
private:
|
|
|
|
public:
|
1998-05-22 15:57:05 -04:00
|
|
|
/*
|
2001-06-06 12:51:53 -04:00
|
|
|
wxSTD ostream& SaveObject(wxSTD ostream& stream);
|
|
|
|
wxSTD istream& LoadObject(wxSTD istream& stream);
|
2000-07-15 15:51:35 -04:00
|
|
|
*/
|
|
|
|
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) {}
|
1998-05-22 15:57:05 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|