// RCS-ID: $Id$
// Copyright: (c) 1998 Julian Smart
// (c) 2008 Vadim Zeitlin
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ----------------------------------------------------------------------------
wxInt32 count = 0;
stream >> count;
+ if ( count < 0 )
+ {
+ wxLogWarning("Drawing document corrupted: invalid segments count.");
+#if wxUSE_STD_IOSTREAM
+ istream.clear(std::ios::badbit);
+#else
+ istream.Reset(wxSTREAM_READ_ERROR);
+#endif
+ return istream;
+ }
for ( int n = 0; n < count; n++ )
{
// when it's modified
GetTextCtrl()->Connect
(
- wxEVT_COMMAND_TEXT_UPDATED,
+ wxEVT_TEXT,
wxCommandEventHandler(wxTextDocument::OnTextChange),
NULL,
this
}
// ----------------------------------------------------------------------------
-// wxImageDocument implementation
+// ImageDocument and ImageDetailsDocument implementation
// ----------------------------------------------------------------------------
-/////////////////////////////////////////////////////////////////////////////
-// wxImageDocument
-
-IMPLEMENT_DYNAMIC_CLASS(wxImageDocument, wxDocument)
-
-wxImageDocument::wxImageDocument() : wxDocument()
-{
-}
+IMPLEMENT_DYNAMIC_CLASS(ImageDocument, wxDocument)
-wxImageDocument::~wxImageDocument()
+bool ImageDocument::DoOpenDocument(const wxString& file)
{
+ return m_image.LoadFile(file);
}
-bool wxImageDocument::DeleteContents()
+bool ImageDocument::OnOpenDocument(const wxString& filename)
{
- bool ok = wxDocument::DeleteContents();
- if (ok && m_image.IsOk())
- {
- m_image.Destroy();
- }
- return ok;
-}
+ if ( !wxDocument::OnOpenDocument(filename) )
+ return false;
-bool wxImageDocument::SaveFile(wxOutputStream* stream, wxBitmapType type) const
-{
- return m_image.IsOk() && m_image.SaveFile(*stream, type);
-}
+ // we don't have a wxDocTemplate for the image details document as it's
+ // never created by wxWidgets automatically, instead just do it manually
+ ImageDetailsDocument * const docDetails = new ImageDetailsDocument(this);
+ docDetails->SetFilename(filename);
-bool wxImageDocument::DoOpenDocument(const wxString& file)
-{
- wxFileInputStream stream(file);
- return stream.IsOk() && DoOpenDocument(&stream);
-}
+ new ImageDetailsView(docDetails);
-bool wxImageDocument::DoSaveDocument(const wxString& file)
-{
- wxFileOutputStream stream(file);
- return stream.IsOk() && DoSaveDocument(&stream);
+ return true;
}
-bool wxImageDocument::DoOpenDocument(wxInputStream* stream)
+ImageDetailsDocument::ImageDetailsDocument(ImageDocument *parent)
+ : wxDocument(parent)
{
- return m_image.LoadFile(*stream);
-}
+ const wxImage image = parent->GetImage();
-bool wxImageDocument::DoSaveDocument(wxOutputStream* stream) const
-{
- return m_image.IsOk() && SaveFile(stream, m_image.GetType());
+ m_size.x = image.GetWidth();
+ m_size.y = image.GetHeight();
+ m_numColours = image.CountColours();
+ m_type = image.GetType();
+ m_hasAlpha = image.HasAlpha();
}
-