| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: samples/docview/view.h
- // Purpose: View classes
- // Author: Julian Smart
- // Modified by: Vadim Zeitlin: merge with the MDI version and general cleanup
- // Created: 04/01/98
- // Copyright: (c) 1998 Julian Smart
- // (c) 2008 Vadim Zeitlin
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_SAMPLES_DOCVIEW_VIEW_H_
- #define _WX_SAMPLES_DOCVIEW_VIEW_H_
- #include "wx/docview.h"
- // ----------------------------------------------------------------------------
- // Drawing view classes
- // ----------------------------------------------------------------------------
- // The window showing the drawing itself
- class MyCanvas : public wxScrolledWindow
- {
- public:
- // view may be NULL if we're not associated with one yet, but parent must
- // be a valid pointer
- MyCanvas(wxView *view, wxWindow *parent = NULL);
- virtual ~MyCanvas();
- virtual void OnDraw(wxDC& dc);
- // in a normal multiple document application a canvas is associated with
- // one view from the beginning until the end, but to support the single
- // document mode in which all documents reuse the same MyApp::GetCanvas()
- // we need to allow switching the canvas from one view to another one
- void SetView(wxView *view)
- {
- wxASSERT_MSG( !m_view, "shouldn't be already associated with a view" );
- m_view = view;
- }
- void ResetView()
- {
- wxASSERT_MSG( m_view, "should be associated with a view" );
- m_view = NULL;
- }
- private:
- void OnMouseEvent(wxMouseEvent& event);
- wxView *m_view;
- // the segment being currently drawn or NULL if none
- DoodleSegment *m_currentSegment;
- // the last mouse press position
- wxPoint m_lastMousePos;
- wxDECLARE_EVENT_TABLE();
- };
- // The view using MyCanvas to show its contents
- class DrawingView : public wxView
- {
- public:
- DrawingView() : wxView(), m_canvas(NULL) {}
- virtual bool OnCreate(wxDocument *doc, long flags);
- virtual void OnDraw(wxDC *dc);
- virtual void OnUpdate(wxView *sender, wxObject *hint = NULL);
- virtual bool OnClose(bool deleteWindow = true);
- DrawingDocument* GetDocument();
- private:
- void OnCut(wxCommandEvent& event);
- MyCanvas *m_canvas;
- wxDECLARE_EVENT_TABLE();
- wxDECLARE_DYNAMIC_CLASS(DrawingView);
- };
- // ----------------------------------------------------------------------------
- // Text view classes
- // ----------------------------------------------------------------------------
- // The view using a standard wxTextCtrl to show its contents
- class TextEditView : public wxView
- {
- public:
- TextEditView() : wxView(), m_text(NULL) {}
- virtual bool OnCreate(wxDocument *doc, long flags);
- virtual void OnDraw(wxDC *dc);
- virtual bool OnClose(bool deleteWindow = true);
- wxTextCtrl *GetText() const { return m_text; }
- private:
- void OnCopy(wxCommandEvent& WXUNUSED(event)) { m_text->Copy(); }
- void OnPaste(wxCommandEvent& WXUNUSED(event)) { m_text->Paste(); }
- void OnSelectAll(wxCommandEvent& WXUNUSED(event)) { m_text->SelectAll(); }
- wxTextCtrl *m_text;
- wxDECLARE_EVENT_TABLE();
- wxDECLARE_DYNAMIC_CLASS(TextEditView);
- };
- // ----------------------------------------------------------------------------
- // ImageCanvas
- // ----------------------------------------------------------------------------
- class ImageCanvas : public wxScrolledWindow
- {
- public:
- ImageCanvas(wxView*);
- virtual void OnDraw(wxDC& dc);
- private:
- wxView *m_view;
- };
- // ----------------------------------------------------------------------------
- // ImageView
- // ----------------------------------------------------------------------------
- class ImageView : public wxView
- {
- public:
- ImageView() : wxView() {}
- virtual bool OnCreate(wxDocument*, long flags);
- virtual void OnDraw(wxDC*);
- virtual bool OnClose(bool deleteWindow = true);
- virtual void OnUpdate(wxView *sender, wxObject *hint = NULL);
- ImageDocument* GetDocument();
- private:
- ImageCanvas* m_canvas;
- wxDECLARE_DYNAMIC_CLASS(ImageView);
- };
- // ----------------------------------------------------------------------------
- // ImageDetailsView
- // ----------------------------------------------------------------------------
- class ImageDetailsView : public wxView
- {
- public:
- ImageDetailsView(ImageDetailsDocument *doc);
- virtual void OnDraw(wxDC *dc);
- virtual bool OnClose(bool deleteWindow);
- private:
- wxFrame *m_frame;
- wxDECLARE_NO_COPY_CLASS(ImageDetailsView);
- };
- #endif // _WX_SAMPLES_DOCVIEW_VIEW_H_
|