annotate src/preview.cpp @ 9:b455f2d8aac9

Implement Preview.
author pyon@macmini
date Thu, 24 Apr 2014 18:31:39 +0900
parents
children 29021e6e1ebe
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
1 // Filename : preview.cpp
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
2 // Last Change: 24-Apr-2014.
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
3 //
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
4
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
5 #include "preview.h"
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
6 #define THUMB_W 60
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
7 #define THUMB_H 75
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
8
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
9 PreviewDialog::PreviewDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style )
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
10 : wxDialog( parent, id, title, pos, size, style )
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
11 {
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
12 //this->SetSizeHints( wxDefaultSize, wxDefaultSize );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
13
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
14 wxBoxSizer* bSizerTop = new wxBoxSizer( wxHORIZONTAL );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
15
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
16 m_scrolledWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxALWAYS_SHOW_SB );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
17 m_bitmap = new wxStaticBitmap( m_scrolledWindow, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
18 bSizerTop->Add( m_scrolledWindow, 1, wxALL|wxEXPAND, 5 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
19
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
20 wxBoxSizer* bSizerMenu = new wxBoxSizer( wxVERTICAL );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
21
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
22 /*
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
23 m_listCtrl = new wxListCtrl( this, ID_PLIST, wxDefaultPosition, wxSize( 140, -1 ), wxLC_ICON );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
24 m_imageList = new wxImageList( THUMB_W, THUMB_H );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
25 m_listCtrl->AssignImageList( m_imageList, wxIMAGE_LIST_NORMAL );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
26 bSizerMenu->Add( m_listCtrl, 1, wxRIGHT|wxLEFT|wxBOTTOM|wxEXPAND, 5 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
27 */
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
28
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
29 m_buttonPrint = new wxButton( this, ID_PRINT, wxT("印刷"), wxDefaultPosition, wxDefaultSize, 0 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
30 bSizerMenu->Add( m_buttonPrint, 0, wxALL, 5 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
31 bSizerMenu->Add( 0, 0, 1, 0, 5 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
32
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
33 m_buttonClose = new wxButton( this, wxID_CANCEL, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
34 m_buttonClose->SetDefault();
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
35 bSizerMenu->Add( m_buttonClose, 0, wxALL, 5 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
36
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
37 bSizerTop->Add( bSizerMenu, 0, wxALL|wxEXPAND, 5 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
38
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
39 this->SetSizer( bSizerTop );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
40 this->Layout();
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
41 }
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
42
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
43 PreviewDialog::~PreviewDialog()
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
44 {
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
45 }
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
46
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
47 // Event Table
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
48 BEGIN_EVENT_TABLE( PreviewDialog, wxDialog )
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
49 EVT_BUTTON( ID_PRINT, PreviewDialog::OnPrint )
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
50 END_EVENT_TABLE()
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
51
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
52 #define WIDTH 2480
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
53 #define HEIGHT 3509
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
54 void PreviewDialog::SetImage( wxString file )
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
55 {
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
56 int w, h;
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
57 m_scrolledWindow->GetSize( &w, &h );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
58 h = h * WIDTH / ( w - 200 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
59
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
60 wxImage img;
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
61 img.LoadFile( file, wxBITMAP_TYPE_JPEG );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
62 wxBitmap bmp( img.Scale( w, h, wxIMAGE_QUALITY_HIGH ) );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
63 m_bitmap->SetBitmap( bmp );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
64
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
65 m_scrolledWindow->SetScrollbars( 10, 10, 0, h/10 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
66 m_preview = file;
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
67 }
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
68
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
69 void PreviewDialog::OnPrint( wxCommandEvent& WXUNUSED(envet) )
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
70 {
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
71 wxString html;
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
72 html = html + wxT("<html><body>\n");
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
73
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
74 wxString tmpjpg = wxGetCwd() + wxFILE_SEP_PATH + wxT("tmp") + wxFILE_SEP_PATH + wxT("preview.jpg");
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
75
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
76 wxCopyFile( m_preview, tmpjpg, true );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
77
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
78 html = html + wxT("<img src=\"") + tmpjpg + wxT("\" width=\"750\" height=\"1060\"/>");
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
79 html = html + wxT("</body></html>");
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
80
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
81 // start printing
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
82 wxHtmlPrintout hpout( wxT("Searcher03") );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
83 hpout.SetMargins( 0, 0, 0, 0, 0 );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
84 wxPrintDialogData pd;
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
85 wxPrinter p( &pd );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
86
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
87 hpout.SetHtmlText( html, wxEmptyString, false );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
88 p.Print( NULL, &hpout, true );
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
89 }
b455f2d8aac9 Implement Preview.
pyon@macmini
parents:
diff changeset
90