No changes, just cleanup the image part of the docview sample.
Remove unnecessary, never used methods. Don't use pointers when objects or references can be used more safely. Don't name classes which are not part of wx with "wx" prefix to avoid confusing people. Don't define empty unnecessary event tables. Prefer wxScrolledWindow::SetVirtualSize() to SetScrollbars(). Stop using "protected" when "private" should be used. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64300 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -250,56 +250,13 @@ wxTextCtrl* TextEditDocument::GetTextCtrl() const
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxImageDocument implementation
|
||||
// ImageDocument and wxImageDetailsDocument implementation
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// wxImageDocument
|
||||
IMPLEMENT_DYNAMIC_CLASS(ImageDocument, wxDocument)
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxImageDocument, wxDocument)
|
||||
|
||||
wxImageDocument::wxImageDocument() : wxDocument()
|
||||
bool ImageDocument::DoOpenDocument(const wxString& file)
|
||||
{
|
||||
}
|
||||
|
||||
wxImageDocument::~wxImageDocument()
|
||||
{
|
||||
}
|
||||
|
||||
bool wxImageDocument::DeleteContents()
|
||||
{
|
||||
bool ok = wxDocument::DeleteContents();
|
||||
if (ok && m_image.IsOk())
|
||||
{
|
||||
m_image.Destroy();
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool wxImageDocument::SaveFile(wxOutputStream* stream, wxBitmapType type) const
|
||||
{
|
||||
return m_image.IsOk() && m_image.SaveFile(*stream, type);
|
||||
}
|
||||
|
||||
bool wxImageDocument::DoOpenDocument(const wxString& file)
|
||||
{
|
||||
wxFileInputStream stream(file);
|
||||
return stream.IsOk() && DoOpenDocument(&stream);
|
||||
}
|
||||
|
||||
bool wxImageDocument::DoSaveDocument(const wxString& file)
|
||||
{
|
||||
wxFileOutputStream stream(file);
|
||||
return stream.IsOk() && DoSaveDocument(&stream);
|
||||
}
|
||||
|
||||
bool wxImageDocument::DoOpenDocument(wxInputStream* stream)
|
||||
{
|
||||
return m_image.LoadFile(*stream);
|
||||
}
|
||||
|
||||
bool wxImageDocument::DoSaveDocument(wxOutputStream* stream) const
|
||||
{
|
||||
return m_image.IsOk() && SaveFile(stream, m_image.GetType());
|
||||
return m_image.LoadFile(file);
|
||||
}
|
||||
|
||||
|
@@ -198,33 +198,24 @@ public:
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// A basic image document class
|
||||
// A document class representing an image
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxImageDocument : public wxDocument
|
||||
class ImageDocument : public wxDocument
|
||||
{
|
||||
public:
|
||||
ImageDocument() : wxDocument() { }
|
||||
|
||||
wxImage GetImage() const { return m_image; }
|
||||
|
||||
protected:
|
||||
wxImage m_image;
|
||||
public:
|
||||
wxImageDocument();
|
||||
|
||||
wxImage* GetImage() { return &m_image; }
|
||||
const wxImage& GetImage() const { return m_image; }
|
||||
|
||||
bool SaveFile(wxOutputStream*, wxBitmapType) const;
|
||||
|
||||
public:
|
||||
virtual ~wxImageDocument();
|
||||
virtual bool DeleteContents();
|
||||
|
||||
virtual bool DoOpenDocument(const wxString& file);
|
||||
virtual bool DoSaveDocument(const wxString& file);
|
||||
|
||||
virtual bool DoOpenDocument(wxInputStream*);
|
||||
virtual bool DoSaveDocument(wxOutputStream*) const;
|
||||
private:
|
||||
wxImage m_image;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxImageDocument);
|
||||
DECLARE_DYNAMIC_CLASS(wxImageDocument)
|
||||
wxDECLARE_NO_COPY_CLASS(ImageDocument);
|
||||
DECLARE_DYNAMIC_CLASS(ImageDocument)
|
||||
};
|
||||
|
||||
#endif // _WX_SAMPLES_DOCVIEW_DOC_H_
|
||||
|
@@ -181,7 +181,7 @@ bool MyApp::OnInit()
|
||||
// Create a template relating image documents to their views
|
||||
new wxDocTemplate(docManager, "Image", "*.png;*.jpg", "", "png;jpg",
|
||||
"Image Doc", "Image View",
|
||||
CLASSINFO(wxImageDocument), CLASSINFO(wxImageView));
|
||||
CLASSINFO(ImageDocument), CLASSINFO(ImageView));
|
||||
}
|
||||
|
||||
// create the main frame window
|
||||
|
@@ -284,70 +284,66 @@ void MyCanvas::OnMouseEvent(wxMouseEvent& event)
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxImageCanvas implementation
|
||||
// ImageCanvas implementation
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
BEGIN_EVENT_TABLE(wxImageCanvas, wxScrolledWindow)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
// Define a constructor for my canvas
|
||||
wxImageCanvas::wxImageCanvas(wxView* view, wxWindow* parent)
|
||||
ImageCanvas::ImageCanvas(wxView* view, wxWindow* parent)
|
||||
: wxScrolledWindow(parent, wxID_ANY, wxPoint(0, 0), parent->GetClientSize())
|
||||
{
|
||||
SetScrollRate( 10, 10 );
|
||||
|
||||
m_view = view;
|
||||
}
|
||||
|
||||
// Define the repainting behaviour
|
||||
void wxImageCanvas::OnDraw(wxDC& dc)
|
||||
void ImageCanvas::OnDraw(wxDC& dc)
|
||||
{
|
||||
if ( m_view )
|
||||
m_view->OnDraw(& dc);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxImageView implementation
|
||||
// ImageView implementation
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxImageView, wxView)
|
||||
IMPLEMENT_DYNAMIC_CLASS(ImageView, wxView)
|
||||
|
||||
BEGIN_EVENT_TABLE(wxImageView, wxView)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
wxImageDocument* wxImageView::GetDocument()
|
||||
ImageDocument* ImageView::GetDocument()
|
||||
{
|
||||
return wxStaticCast(wxView::GetDocument(), wxImageDocument);
|
||||
return wxStaticCast(wxView::GetDocument(), ImageDocument);
|
||||
}
|
||||
|
||||
bool wxImageView::OnCreate(wxDocument* doc, long WXUNUSED(flags))
|
||||
bool ImageView::OnCreate(wxDocument* doc, long WXUNUSED(flags))
|
||||
{
|
||||
m_frame = wxGetApp().CreateChildFrame(doc, this, false);
|
||||
m_frame->SetTitle("Image View");
|
||||
m_canvas = new wxImageCanvas(this, m_frame);
|
||||
m_canvas = new ImageCanvas(this, m_frame);
|
||||
m_frame->Show(true);
|
||||
Activate(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
void wxImageView::OnUpdate(wxView* sender, wxObject* hint)
|
||||
void ImageView::OnUpdate(wxView* sender, wxObject* hint)
|
||||
{
|
||||
wxView::OnUpdate(sender, hint);
|
||||
const wxImage* image = GetDocument()->GetImage();
|
||||
if (image->IsOk())
|
||||
wxImage image = GetDocument()->GetImage();
|
||||
if ( image.IsOk() )
|
||||
{
|
||||
m_canvas->SetScrollbars( 1, 1, image->GetWidth(), image->GetHeight() );
|
||||
m_canvas->SetVirtualSize(image.GetWidth(), image.GetHeight());
|
||||
}
|
||||
}
|
||||
|
||||
void wxImageView::OnDraw(wxDC* dc)
|
||||
void ImageView::OnDraw(wxDC* dc)
|
||||
{
|
||||
const wxImage* image = GetDocument()->GetImage();
|
||||
if (image->IsOk())
|
||||
wxImage image = GetDocument()->GetImage();
|
||||
if ( image.IsOk() )
|
||||
{
|
||||
dc->DrawBitmap(wxBitmap(*image), 0, 0);
|
||||
dc->DrawBitmap(wxBitmap(image), 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
bool wxImageView::OnClose(bool deleteWindow)
|
||||
bool ImageView::OnClose(bool deleteWindow)
|
||||
{
|
||||
if ( !GetDocument()->Close() )
|
||||
return false;
|
||||
|
@@ -115,13 +115,13 @@ private:
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxImageCanvas
|
||||
// ImageCanvas
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxImageCanvas : public wxScrolledWindow
|
||||
class ImageCanvas : public wxScrolledWindow
|
||||
{
|
||||
public:
|
||||
wxImageCanvas(wxView*, wxWindow* parent);
|
||||
ImageCanvas(wxView*, wxWindow* parent);
|
||||
|
||||
virtual void OnDraw(wxDC& dc);
|
||||
|
||||
@@ -144,35 +144,31 @@ public:
|
||||
m_view = NULL;
|
||||
}
|
||||
|
||||
protected:
|
||||
private:
|
||||
wxView *m_view;
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxImageView
|
||||
// ImageView
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxImageDocument;
|
||||
class wxImageView : public wxView
|
||||
class ImageView : public wxView
|
||||
{
|
||||
public:
|
||||
wxImageView() : wxView(), m_frame(NULL) {}
|
||||
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);
|
||||
|
||||
wxImageDocument* GetDocument();
|
||||
ImageDocument* GetDocument();
|
||||
|
||||
protected:
|
||||
private:
|
||||
wxFrame* m_frame;
|
||||
wxImageCanvas* m_canvas;
|
||||
ImageCanvas* m_canvas;
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
DECLARE_DYNAMIC_CLASS(wxImageView)
|
||||
DECLARE_DYNAMIC_CLASS(ImageView)
|
||||
};
|
||||
|
||||
#endif // _WX_SAMPLES_DOCVIEW_VIEW_H_
|
||||
|
Reference in New Issue
Block a user