]> git.saurik.com Git - wxWidgets.git/commitdiff
ignore files produced by the sample
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 17 Nov 2008 13:52:34 +0000 (13:52 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 17 Nov 2008 13:52:34 +0000 (13:52 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/image/image.cpp

index a365d34310ec4c4f5128e12747165b0f25d384e9..8e97c619a897f17438116334d497be3aad1aeb29 100644 (file)
@@ -26,6 +26,7 @@
 #include "wx/mstream.h"
 #include "wx/wfstream.h"
 #include "wx/quantize.h"
+#include "wx/stopwatch.h"
 
 #if wxUSE_CLIPBOARD
     #include "wx/dataobj.h"
@@ -119,6 +120,8 @@ public:
     void OnAbout( wxCommandEvent &event );
     void OnNewFrame( wxCommandEvent &event );
     void OnImageInfo( wxCommandEvent &event );
+    void OnThumbnail( wxCommandEvent &event );
+
 #ifdef wxHAVE_RAW_BITMAP
     void OnTestRawBitmap( wxCommandEvent &event );
 #endif // wxHAVE_RAW_BITMAP
@@ -1110,7 +1113,8 @@ enum
     ID_ABOUT = wxID_ABOUT,
     ID_NEW = 100,
     ID_INFO,
-    ID_SHOWRAW
+    ID_SHOWRAW,
+    ID_SHOWTHUMBNAIL
 };
 
 IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame )
@@ -1120,6 +1124,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
   EVT_MENU    (ID_QUIT,  MyFrame::OnQuit)
   EVT_MENU    (ID_NEW,   MyFrame::OnNewFrame)
   EVT_MENU    (ID_INFO,  MyFrame::OnImageInfo)
+  EVT_MENU    (ID_SHOWTHUMBNAIL, MyFrame::OnThumbnail)
 #ifdef wxHAVE_RAW_BITMAP
   EVT_MENU    (ID_SHOWRAW, MyFrame::OnTestRawBitmap)
 #endif
@@ -1144,6 +1149,9 @@ MyFrame::MyFrame()
   menuImage->Append( ID_SHOWRAW, _T("Test &raw bitmap...\tCtrl-R"));
 #endif
   menuImage->AppendSeparator();
+  menuImage->Append( ID_SHOWTHUMBNAIL, _T("Test &thumbnail...\tCtrl-T"),
+                    "Test scaling the image during load (try with JPEG)");
+  menuImage->AppendSeparator();
   menuImage->Append( ID_ABOUT, _T("&About..."));
   menuImage->AppendSeparator();
   menuImage->Append( ID_QUIT, _T("E&xit\tCtrl-Q"));
@@ -1309,3 +1317,37 @@ bool MyApp::OnInit()
 
     return true;
 }
+
+void MyFrame::OnThumbnail( wxCommandEvent &WXUNUSED(event) )
+{
+#if wxUSE_FILEDLG
+    wxString filename = wxFileSelector(_T("Select image file"));
+    if ( filename.empty() )
+        return;
+
+    static const int THUMBNAIL_WIDTH = 320;
+    static const int THUMBNAIL_HEIGHT = 240;
+
+    wxImage image;
+    image.SetOption(wxIMAGE_OPTION_MAX_WIDTH, THUMBNAIL_WIDTH);
+    image.SetOption(wxIMAGE_OPTION_MAX_HEIGHT, THUMBNAIL_HEIGHT);
+
+    wxStopWatch sw;
+    if ( !image.LoadFile(filename) )
+    {
+        wxLogError(_T("Couldn't load image from '%s'."), filename.c_str());
+        return;
+    }
+
+    const long loadTime = sw.Time();
+
+    MyImageFrame * const
+        frame = new MyImageFrame(this, filename, wxBitmap(image));
+    frame->Show();
+    wxLogStatus(frame, "Loaded \"%s\" in %ldms", filename, loadTime);
+#else
+    wxLogError( _T("Couldn't create file selector dialog") );
+    return;
+#endif // wxUSE_FILEDLG
+}
+