comparison src/preview.cpp @ 22:92188f60323d default tip

Implement Masking function on Preview Dialog.
author pyon@macmini
date Sat, 04 Apr 2015 17:23:46 +0900
parents de222bc84e48
children
comparison
equal deleted inserted replaced
21:a2ad87cad48b 22:92188f60323d
1 // Filename : preview.cpp 1 // Filename : preview.cpp
2 // Last Change: 11-Jun-2014. 2 // Last Change: 2015-04-03 11:57:55.
3 // 3 //
4 4
5 #include "marksheet.h" 5 #include "marksheet.h"
6 #include "preview.h" 6 #include "preview.h"
7 #define THUMB_W 60 7 #define THUMB_W 60
81 void PThumbnailPanel::OnClick3( wxMouseEvent& WXUNUSED(event) ) { Preview( 3 ); } 81 void PThumbnailPanel::OnClick3( wxMouseEvent& WXUNUSED(event) ) { Preview( 3 ); }
82 void PThumbnailPanel::OnClick4( wxMouseEvent& WXUNUSED(event) ) { Preview( 4 ); } 82 void PThumbnailPanel::OnClick4( wxMouseEvent& WXUNUSED(event) ) { Preview( 4 ); }
83 void PThumbnailPanel::OnClick5( wxMouseEvent& WXUNUSED(event) ) { Preview( 5 ); } 83 void PThumbnailPanel::OnClick5( wxMouseEvent& WXUNUSED(event) ) { Preview( 5 ); }
84 void PThumbnailPanel::Preview( int n ) 84 void PThumbnailPanel::Preview( int n )
85 { 85 {
86 if ( n == 0 ) m_parent->EnableMaskButton( true );
87 else m_parent->EnableMaskButton( false );
88
86 if ( m_imagefiles.GetCount() < n + 1 ) return; 89 if ( m_imagefiles.GetCount() < n + 1 ) return;
87 SetImageList( n ); 90 SetImageList( n );
88 m_parent->SetPreviewImage( n ); 91 m_parent->SetPreviewImage( n );
89 } 92 }
90 /* サムネイル表示 */ 93 /* サムネイル表示 */
152 bSizerMenu->Add( m_textInfo, 0, wxRIGHT|wxLEFT|wxBOTTOM, 5 ); 155 bSizerMenu->Add( m_textInfo, 0, wxRIGHT|wxLEFT|wxBOTTOM, 5 );
153 156
154 m_buttonPrint = new wxButton( this, ID_PRINT, wxT("印刷"), wxDefaultPosition, wxDefaultSize, 0 ); 157 m_buttonPrint = new wxButton( this, ID_PRINT, wxT("印刷"), wxDefaultPosition, wxDefaultSize, 0 );
155 bSizerMenu->Add( m_buttonPrint, 0, wxALL, 5 ); 158 bSizerMenu->Add( m_buttonPrint, 0, wxALL, 5 );
156 159
160 m_buttonMaskPrint = new wxButton( this, ID_MPRINT, wxT("マスク印刷"), wxDefaultPosition, wxDefaultSize, 0 );
161 bSizerMenu->Add( m_buttonMaskPrint, 0, wxALL, 5 );
162 m_buttonMaskPrint->Enable( false );
163
157 bSizerMenu->Add( 0, 0, 0, 0, 5 ); 164 bSizerMenu->Add( 0, 0, 0, 0, 5 );
158 165
159 m_buttonClose = new wxButton( this, wxID_CANCEL, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 ); 166 m_buttonClose = new wxButton( this, wxID_CANCEL, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 );
160 m_buttonClose->SetDefault(); 167 m_buttonClose->SetDefault();
161 bSizerMenu->Add( m_buttonClose, 0, wxALL, 5 ); 168 bSizerMenu->Add( m_buttonClose, 0, wxALL, 5 );
167 } 174 }
168 175
169 PreviewDialog::~PreviewDialog() 176 PreviewDialog::~PreviewDialog()
170 { 177 {
171 m_scrolledWindow->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( PreviewDialog::OnWheel ), NULL, this ); 178 m_scrolledWindow->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( PreviewDialog::OnWheel ), NULL, this );
172 m_bitmap->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( PreviewDialog::OnDClick ), NULL, this ); 179 m_bitmap->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( PreviewDialog::OnDClick ), NULL, this );
173 m_bitmap->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( PreviewDialog::OnStartRGesture ), NULL, this ); 180 m_bitmap->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( PreviewDialog::OnStartRGesture ), NULL, this );
174 m_bitmap->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( PreviewDialog::OnEndRGesture ), NULL, this ); 181 m_bitmap->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( PreviewDialog::OnEndRGesture ), NULL, this );
175 } 182 }
176 183
177 // Event Table 184 // Event Table
178 BEGIN_EVENT_TABLE( PreviewDialog, wxDialog ) 185 BEGIN_EVENT_TABLE( PreviewDialog, wxDialog )
179 EVT_BUTTON( ID_PRINT, PreviewDialog::OnPrint ) 186 EVT_BUTTON( ID_PRINT, PreviewDialog::OnPrint )
187 EVT_BUTTON( ID_MPRINT, PreviewDialog::OnMaskPrint )
180 END_EVENT_TABLE() 188 END_EVENT_TABLE()
181 189
182 #define WIDTH 2480 190 #define WIDTH 2480
183 #define HEIGHT 3509 191 #define HEIGHT 3509
184 /* プレビューするファイルをセット */ 192 /* プレビューするファイルをセット */
315 323
316 hpout.SetHtmlText( html, wxEmptyString, false ); 324 hpout.SetHtmlText( html, wxEmptyString, false );
317 p.Print( NULL, &hpout, true ); 325 p.Print( NULL, &hpout, true );
318 } 326 }
319 327
328 /* マスク印刷 */
329 void PreviewDialog::OnMaskPrint( wxCommandEvent& WXUNUSED(event) )
330 {
331 wxString html;
332 html = html + wxT("<html><body>\n");
333
334 wxString tmpjpg = wxGetCwd() + wxFILE_SEP_PATH + wxT("tmp") + wxFILE_SEP_PATH + wxT("preview.jpg");
335
336 wxImage img_org( m_imagefiles[m_preview], wxBITMAP_TYPE_JPEG );
337 int ver = GetMarksheetVersion( m_imagefiles[m_preview] );
338 if ( ver == 2 ) {
339 img_org.SetRGB( m_mask1, 255, 255, 255 ); // cm name
340 img_org.SetRGB( m_mask2, 255, 255, 255 ); // cm no.
341 img_org.SetRGB( m_mask3, 255, 255, 255 ); // barcode
342 }
343 else { // 古いマークシート ver == 1
344 img_org.SetRGB( m_mask1old, 255, 255, 255 ); // cm name
345 img_org.SetRGB( m_mask2old, 255, 255, 255 ); // cm no.
346 img_org.SetRGB( m_mask3old, 255, 255, 255 ); // barcode
347 }
348 img_org.SaveFile( tmpjpg );
349
350 html = html + wxT("<img src=\"") + tmpjpg + wxT("\" width=\"750\" height=\"1060\"/>");
351 html = html + wxT("</body></html>");
352
353 // start printing
354 wxHtmlPrintout hpout( wxT("Searcher03") );
355 hpout.SetMargins( 0, 0, 0, 0, 0 );
356 wxPrintDialogData pd;
357 wxPrinter p( &pd );
358
359 hpout.SetHtmlText( html, wxEmptyString, false );
360 p.Print( NULL, &hpout, true );
361 }
362
363 void PreviewDialog::EnableMaskButton( bool flag )
364 {
365 if ( flag ) m_buttonMaskPrint->Enable( true );
366 else m_buttonMaskPrint->Enable( false );
367 }
368