Mercurial > mercurial > hgweb_searcher03.cgi
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 |
