X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2d1df0fc585f03cca4b194d1f9159b49a5711da6..b3ecee8d120ac8af59cbf82b00d4c7da9f648f53:/samples/docview/view.h?ds=sidebyside diff --git a/samples/docview/view.h b/samples/docview/view.h index c7209f28fa..8018ee429b 100644 --- a/samples/docview/view.h +++ b/samples/docview/view.h @@ -7,7 +7,7 @@ // RCS-ID: $Id$ // Copyright: (c) 1998 Julian Smart // (c) 2008 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_SAMPLES_DOCVIEW_VIEW_H_ @@ -114,4 +114,61 @@ private: DECLARE_DYNAMIC_CLASS(TextEditView) }; +// ---------------------------------------------------------------------------- +// ImageCanvas +// ---------------------------------------------------------------------------- + +class ImageCanvas : public wxScrolledWindow +{ +public: + ImageCanvas(wxView*, wxWindow* parent); + + 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: + wxView *m_view; +}; + +// ---------------------------------------------------------------------------- +// ImageView +// ---------------------------------------------------------------------------- + +class ImageView : public wxView +{ +public: + ImageView() : wxView(), m_frame(NULL) {} + + 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: + wxFrame* m_frame; + ImageCanvas* m_canvas; + + DECLARE_DYNAMIC_CLASS(ImageView) +}; + #endif // _WX_SAMPLES_DOCVIEW_VIEW_H_