Mercurial > mercurial > hgweb_rsearcher.cgi
comparison src/rsearcher.cpp @ 5:e3b10fb860b3
release v1.0.
author | pyon@macmini |
---|---|
date | Mon, 22 Oct 2018 22:17:02 +0900 |
parents | 06342fc544e4 |
children | 9a8b581c1993 |
comparison
equal
deleted
inserted
replaced
4:06342fc544e4 | 5:e3b10fb860b3 |
---|---|
1 // Filename : rsearcher.cpp | 1 // Filename : rsearcher.cpp |
2 // Last Change: 2018-10-12 ‹à 16:40:12. | 2 // Last Change: 2018-10-22 ŒŽ 16:20:03. |
3 // | 3 // |
4 | 4 |
5 #include <wx/arrstr.h> | 5 #include <wx/arrstr.h> |
6 #include <wx/html/htmprint.h> | 6 #include <wx/html/htmprint.h> |
7 #include <wx/clipbrd.h> | |
7 #include "id.h" | 8 #include "id.h" |
8 #include "rsearcher.h" | 9 #include "rsearcher.h" |
9 #include "main.h" | 10 #include "main.h" |
11 | |
12 | |
13 /********************/ | |
14 /** HhsClass **/ | |
15 /********************/ | |
16 HhsClass::HhsClass( wxArrayString& buf ) | |
17 { | |
18 no = buf[0]; | |
19 birth = buf[1]; | |
20 name = buf[2]; | |
21 kana = buf[3]; | |
22 addr = buf[4]; | |
23 sex = buf[5]; | |
24 } | |
10 | 25 |
11 /********************/ | 26 /********************/ |
12 /** MySearchCtrl **/ | 27 /** MySearchCtrl **/ |
13 /********************/ | 28 /********************/ |
14 MySearchCtrl::MySearchCtrl( wxWindow* parent, wxWindowID id, const wxString& value, const wxPoint& pos, const wxSize& size, long style ) | 29 MySearchCtrl::MySearchCtrl( wxWindow* parent, wxWindowID id, const wxString& value, const wxPoint& pos, const wxSize& size, long style ) |
124 SetCursor( wxCursor( wxCURSOR_ARROW ) ); | 139 SetCursor( wxCursor( wxCURSOR_ARROW ) ); |
125 } | 140 } |
126 | 141 |
127 void MyStaticBitmap::OnMotion( wxMouseEvent& event ) | 142 void MyStaticBitmap::OnMotion( wxMouseEvent& event ) |
128 { | 143 { |
144 if ( event.RightIsDown() ) return; | |
129 if ( event.Dragging() ) { | 145 if ( event.Dragging() ) { |
130 int xv, yv, x, y; | 146 int xv, yv, x, y; |
131 m_parent->GetViewStart( &xv, &yv ); | 147 m_parent->GetViewStart( &xv, &yv ); |
132 | 148 |
133 event.GetPosition( &x, &y ); | 149 event.GetPosition( &x, &y ); |
171 else if ( rad > pi / 8 * 7 && rad < pi && dx < 0 ) { | 187 else if ( rad > pi / 8 * 7 && rad < pi && dx < 0 ) { |
172 ChangeBook( -1 ); | 188 ChangeBook( -1 ); |
173 } | 189 } |
174 // to up-right | 190 // to up-right |
175 else if ( rad > pi / 8 && rad < pi / 8 * 3 && dx > 0 ) { | 191 else if ( rad > pi / 8 && rad < pi / 8 * 3 && dx > 0 ) { |
192 MainFrame* mf = (MainFrame*)FindWindowById( ID_MAIN ); | |
193 mf->Close(); | |
176 } | 194 } |
177 // down | 195 // down |
178 else if ( rad > pi / 8 * 3 && rad < pi / 8 * 5 && dy > 0 ) { | 196 else if ( rad > pi / 8 * 3 && rad < pi / 8 * 5 && dy > 0 ) { |
179 MainFrame* mf = (MainFrame*)FindWindowById( ID_MAIN ); | 197 MainFrame* mf = (MainFrame*)FindWindowById( ID_MAIN ); |
180 mf->PrintImages(); | 198 mf->PrintImages(); |
201 /********************/ | 219 /********************/ |
202 MainFrame::MainFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) | 220 MainFrame::MainFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) |
203 : wxFrame( parent, id, title, pos, size, style ) | 221 : wxFrame( parent, id, title, pos, size, style ) |
204 { | 222 { |
205 CreateControls(); | 223 CreateControls(); |
206 LoadDB(); | 224 SetAccelerator(); |
207 LoadBitmaps( wxEmptyString ); | 225 LoadBitmaps( wxEmptyString, false ); |
208 m_timer.SetOwner( this, ID_TIMER ); | 226 m_timer.SetOwner( this, ID_TIMER ); |
209 } | 227 } |
210 | 228 |
211 MainFrame::~MainFrame() | 229 MainFrame::~MainFrame() |
212 { | 230 { |
219 BEGIN_EVENT_TABLE( MainFrame, wxFrame ) | 237 BEGIN_EVENT_TABLE( MainFrame, wxFrame ) |
220 EVT_DATAVIEW_SELECTION_CHANGED( ID_LIST, MainFrame::OnItemSelected ) | 238 EVT_DATAVIEW_SELECTION_CHANGED( ID_LIST, MainFrame::OnItemSelected ) |
221 EVT_DATAVIEW_ITEM_ACTIVATED( ID_LIST, MainFrame::OnItemDClicked ) | 239 EVT_DATAVIEW_ITEM_ACTIVATED( ID_LIST, MainFrame::OnItemDClicked ) |
222 EVT_NOTEBOOK_PAGE_CHANGED( ID_NBOOK, MainFrame::OnNBookChanged ) | 240 EVT_NOTEBOOK_PAGE_CHANGED( ID_NBOOK, MainFrame::OnNBookChanged ) |
223 EVT_BUTTON( wxID_PRINT, MainFrame::OnPrint ) | 241 EVT_BUTTON( wxID_PRINT, MainFrame::OnPrint ) |
242 EVT_BUTTON( ID_PSEARCH, MainFrame::OnPasteSearch ) | |
243 EVT_BUTTON( wxID_HELP, MainFrame::OnHelp ) | |
224 EVT_BUTTON( ID_LOGOUT, MainFrame::OnLogout ) | 244 EVT_BUTTON( ID_LOGOUT, MainFrame::OnLogout ) |
225 EVT_BUTTON( ID_TEST, MainFrame::OnTestButton ) | |
226 EVT_CLOSE( MainFrame::OnClose ) | 245 EVT_CLOSE( MainFrame::OnClose ) |
227 EVT_IDLE( MainFrame::OnIdle ) | 246 EVT_IDLE( MainFrame::OnIdle ) |
228 EVT_TIMER( ID_TIMER, MainFrame::OnTimer ) | 247 EVT_TIMER( ID_TIMER, MainFrame::OnTimer ) |
229 END_EVENT_TABLE() | 248 END_EVENT_TABLE() |
230 | 249 |
235 int r = m_dataViewListCtrl->GetSelectedRow(); | 254 int r = m_dataViewListCtrl->GetSelectedRow(); |
236 wxString ready = m_dataViewListCtrl->GetTextValue( r, 2 ); | 255 wxString ready = m_dataViewListCtrl->GetTextValue( r, 2 ); |
237 if ( ready.IsSameAs( wxT( "OK" ), true ) ) { | 256 if ( ready.IsSameAs( wxT( "OK" ), true ) ) { |
238 wxString date = m_dataViewListCtrl->GetTextValue( r, 1 ); | 257 wxString date = m_dataViewListCtrl->GetTextValue( r, 1 ); |
239 date.Replace( wxT( "-" ), wxEmptyString, true ); | 258 date.Replace( wxT( "-" ), wxEmptyString, true ); |
240 LoadBitmaps( date ); | 259 LoadBitmaps( date, false ); |
241 } else { | 260 } else { |
242 LoadBitmaps( wxEmptyString ); | 261 LoadBitmaps( wxEmptyString, false ); |
243 } | 262 } |
244 } | 263 } |
245 | 264 |
246 void MainFrame::OnItemDClicked( wxDataViewEvent& WXUNUSED(event) ) | 265 void MainFrame::OnItemDClicked( wxDataViewEvent& WXUNUSED(event) ) |
247 { | 266 { |
250 if ( status.IsSameAs( wxT( "OK" ), true ) ) return; | 269 if ( status.IsSameAs( wxT( "OK" ), true ) ) return; |
251 | 270 |
252 wxString date = m_dataViewListCtrl->GetTextValue( r, 1 ); | 271 wxString date = m_dataViewListCtrl->GetTextValue( r, 1 ); |
253 date.Replace( wxT( "-" ), wxEmptyString, true ); | 272 date.Replace( wxT( "-" ), wxEmptyString, true ); |
254 GetImages( m_hhs, date ); | 273 GetImages( m_hhs, date ); |
255 LoadBitmaps( date ); | 274 if ( LoadBitmaps( date, true ) ) |
256 | 275 m_dataViewListCtrl->SetTextValue( wxT( "OK" ), r, 2 ); |
257 m_dataViewListCtrl->SetTextValue( wxT( "OK" ), r, 2 ); | |
258 } | 276 } |
259 | 277 |
260 void MainFrame::OnNBookChanged( wxBookCtrlEvent& WXUNUSED(event) ) | 278 void MainFrame::OnNBookChanged( wxBookCtrlEvent& WXUNUSED(event) ) |
261 { | 279 { |
262 for ( int i = 0; i < m_notebook->GetPageCount(); i++ ) { | 280 for ( int i = 0; i < m_notebook->GetPageCount(); i++ ) { |
265 m_notebook->SetPageImage( m_notebook->GetSelection(), 0 ); | 283 m_notebook->SetPageImage( m_notebook->GetSelection(), 0 ); |
266 } | 284 } |
267 | 285 |
268 void MainFrame::OnClose( wxCloseEvent& WXUNUSED(event) ) // save config | 286 void MainFrame::OnClose( wxCloseEvent& WXUNUSED(event) ) // save config |
269 { | 287 { |
288 WriteLog( wxT( "[logout]" ) ); | |
270 if ( !IsIconized() && !IsMaximized() ) { | 289 if ( !IsIconized() && !IsMaximized() ) { |
271 wxGetApp().rect = this->GetRect(); | 290 wxGetApp().rect = this->GetRect(); |
272 } | 291 } |
273 Destroy(); | 292 Destroy(); |
274 } | 293 } |
275 | 294 |
295 void MainFrame::OnPasteSearch( wxCommandEvent& WXUNUSED(event) ) | |
296 { | |
297 PasteSeaarch(); | |
298 } | |
299 | |
276 void MainFrame::OnPrint( wxCommandEvent& WXUNUSED(event) ) | 300 void MainFrame::OnPrint( wxCommandEvent& WXUNUSED(event) ) |
277 { | 301 { |
278 PrintImages(); | 302 PrintImages(); |
303 } | |
304 | |
305 void MainFrame::OnHelp( wxCommandEvent& WXUNUSED(event) ) | |
306 { | |
307 wxString version, build; | |
308 version = wxString::Format( wxT( "Re:Searcher-- version %s / %s\n\n" ), RSVER, RSRELEASE ); | |
309 build = wxString::Format( wxT( "build with %s\nrunning under %s." ), wxVERSION_STRING, wxGetOsDescription() ); | |
310 | |
311 wxMessageBox( version + build, wxT( "Help" ) ); | |
312 return; | |
279 } | 313 } |
280 | 314 |
281 void MainFrame::OnLogout( wxCommandEvent& WXUNUSED(event) ) | 315 void MainFrame::OnLogout( wxCommandEvent& WXUNUSED(event) ) |
282 { | 316 { |
283 wxMessageBox("logout"); | 317 wxMessageBox("logout"); |
284 return; | 318 return; |
285 } | 319 } |
286 | 320 |
287 void MainFrame::OnTestButton( wxCommandEvent& WXUNUSED(event) ) | |
288 { | |
289 return; | |
290 } | |
291 | |
292 | |
293 void MainFrame::OnTimer( wxTimerEvent& WXUNUSED(event) ) | 321 void MainFrame::OnTimer( wxTimerEvent& WXUNUSED(event) ) |
294 { | 322 { |
295 wxMessageBox( "timer !" ); | 323 //wxMessageBox( "timer !" ); |
296 // logout | 324 // logout |
297 } | 325 } |
298 | 326 |
299 void MainFrame::OnIdle( wxIdleEvent& event ) | 327 void MainFrame::OnIdle( wxIdleEvent& event ) |
300 { | 328 { |
308 // Functions | 336 // Functions |
309 void MainFrame::CreateControls( void ) | 337 void MainFrame::CreateControls( void ) |
310 { | 338 { |
311 this->SetIcon( wxIcon( wxT( "sample" ) ) ); | 339 this->SetIcon( wxIcon( wxT( "sample" ) ) ); |
312 this->SetSizeHints( wxDefaultSize, wxDefaultSize ); | 340 this->SetSizeHints( wxDefaultSize, wxDefaultSize ); |
313 //this->SetBackgroundColour( wxColour( 0, 150, 230 ) ); | 341 this->SetBackgroundColour( wxColour( 30, 80, 40 ) ); |
314 this->SetBackgroundColour( wxColour( 153, 153, 153 ) ); | 342 //this->SetBackgroundColour( wxColour( 153, 153, 153 ) ); |
315 | 343 |
316 wxBoxSizer* bSizerTop = new wxBoxSizer( wxHORIZONTAL ); | 344 wxBoxSizer* bSizerTop = new wxBoxSizer( wxHORIZONTAL ); |
317 | 345 |
318 // Left | 346 // Left |
319 wxImageList* imgList = new wxImageList( 16, 16, false, 1 ); | 347 wxImageList* imgList = new wxImageList( 16, 16, false, 1 ); |
356 | 384 |
357 m_searchCtrl = new MySearchCtrl( this, ID_SEARCH, wxEmptyString, wxDefaultPosition, wxSize( -1, 24 ), wxTE_PROCESS_ENTER ); | 385 m_searchCtrl = new MySearchCtrl( this, ID_SEARCH, wxEmptyString, wxDefaultPosition, wxSize( -1, 24 ), wxTE_PROCESS_ENTER ); |
358 bSizerRight->Add( m_searchCtrl, 0, wxALL, 5 ); | 386 bSizerRight->Add( m_searchCtrl, 0, wxALL, 5 ); |
359 m_searchCtrl->SetFocus(); | 387 m_searchCtrl->SetFocus(); |
360 | 388 |
361 m_textCtrlName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 80, -1 ), 0 ); | 389 m_textCtrlName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 80, -1 ), wxTE_READONLY ); |
362 m_textCtrlName->SetBackgroundColour( wxColour( 180, 210, 240 ) ); | 390 m_textCtrlName->SetBackgroundColour( wxColour( 180, 210, 240 ) ); |
363 bSizerRight->Add( m_textCtrlName, 0, wxALL, 5 ); | 391 bSizerRight->Add( m_textCtrlName, 0, wxALL, 5 ); |
364 | 392 |
365 m_textCtrlAddr = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 160, -1 ), 0 ); | 393 m_textCtrlAddr = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 160, -1 ), wxTE_READONLY ); |
366 m_textCtrlAddr->SetBackgroundColour( wxColour( 180, 210, 240 ) ); | 394 m_textCtrlAddr->SetBackgroundColour( wxColour( 180, 210, 240 ) ); |
367 bSizerRight->Add( m_textCtrlAddr, 0, wxALL|wxEXPAND, 5 ); | 395 bSizerRight->Add( m_textCtrlAddr, 0, wxALL|wxEXPAND, 5 ); |
368 | 396 |
369 m_dataViewListCtrl = new wxDataViewListCtrl( this, ID_LIST, wxDefaultPosition, wxDefaultSize, wxDV_ROW_LINES|wxDV_SINGLE ); | 397 m_dataViewListCtrl = new wxDataViewListCtrl( this, ID_LIST, wxDefaultPosition, wxDefaultSize, wxDV_ROW_LINES|wxDV_SINGLE ); |
370 m_dataViewListColumnNo = m_dataViewListCtrl->AppendTextColumn( wxT( "No" ), wxDATAVIEW_CELL_INERT, 30, wxALIGN_RIGHT, wxDATAVIEW_COL_RESIZABLE|wxDATAVIEW_COL_SORTABLE ); | 398 m_dataViewListColumnNo = m_dataViewListCtrl->AppendTextColumn( wxT( "No" ), wxDATAVIEW_CELL_INERT, 30, wxALIGN_RIGHT, wxDATAVIEW_COL_RESIZABLE|wxDATAVIEW_COL_SORTABLE ); |
377 bSizerRight->Add( m_textCtrlLog, 1, wxALL|wxEXPAND, 5 ); | 405 bSizerRight->Add( m_textCtrlLog, 1, wxALL|wxEXPAND, 5 ); |
378 | 406 |
379 m_slider = new wxSlider( this, ID_SLDR, 1, 1, 5, wxDefaultPosition, wxSize( -1, 200 ), wxSL_AUTOTICKS|wxSL_INVERSE|wxSL_LABELS|wxSL_VERTICAL ); | 407 m_slider = new wxSlider( this, ID_SLDR, 1, 1, 5, wxDefaultPosition, wxSize( -1, 200 ), wxSL_AUTOTICKS|wxSL_INVERSE|wxSL_LABELS|wxSL_VERTICAL ); |
380 bSizerRight->Add( m_slider, 0, wxALL, 5 ); | 408 bSizerRight->Add( m_slider, 0, wxALL, 5 ); |
381 | 409 |
410 m_buttonPsearch = new wxButton( this, ID_PSEARCH, wxT( "Paste-Search" ), wxDefaultPosition, wxDefaultSize, 0 ); | |
411 bSizerRight->Add( m_buttonPsearch, 0, wxALL, 5 ); | |
412 | |
382 m_buttonPrint = new wxButton( this, wxID_PRINT, wxT( "Print" ), wxDefaultPosition, wxDefaultSize, 0 ); | 413 m_buttonPrint = new wxButton( this, wxID_PRINT, wxT( "Print" ), wxDefaultPosition, wxDefaultSize, 0 ); |
383 bSizerRight->Add( m_buttonPrint, 0, wxALL, 5 ); | 414 bSizerRight->Add( m_buttonPrint, 0, wxALL, 5 ); |
384 | 415 |
416 m_buttonHelp = new wxButton( this, wxID_HELP, wxT( "Help" ), wxDefaultPosition, wxDefaultSize, 0 ); | |
417 bSizerRight->Add( m_buttonHelp, 0, wxALL, 5 ); | |
418 | |
385 m_buttonLogout = new wxButton( this, ID_LOGOUT, wxT( "Logout" ), wxDefaultPosition, wxDefaultSize, 0 ); | 419 m_buttonLogout = new wxButton( this, ID_LOGOUT, wxT( "Logout" ), wxDefaultPosition, wxDefaultSize, 0 ); |
386 bSizerRight->Add( m_buttonLogout, 0, wxALL, 5 ); | 420 bSizerRight->Add( m_buttonLogout, 0, wxALL, 5 ); |
387 | |
388 m_buttonTest = new wxButton( this, ID_TEST, wxT( "Test" ), wxDefaultPosition, wxDefaultSize, 0 ); | |
389 bSizerRight->Add( m_buttonTest, 0, wxALL, 5 ); | |
390 | 421 |
391 bSizerTop->Add( bSizerRight, 0, wxEXPAND, 5 ); | 422 bSizerTop->Add( bSizerRight, 0, wxEXPAND, 5 ); |
392 | 423 |
393 this->SetSizer( bSizerTop ); | 424 this->SetSizer( bSizerTop ); |
394 this->Layout(); | 425 this->Layout(); |
400 m_staticBitmap3 = new MyStaticBitmap( m_scrolledWindow3, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString ); | 431 m_staticBitmap3 = new MyStaticBitmap( m_scrolledWindow3, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString ); |
401 m_staticBitmap4 = new MyStaticBitmap( m_scrolledWindow4, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString ); | 432 m_staticBitmap4 = new MyStaticBitmap( m_scrolledWindow4, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString ); |
402 m_staticBitmap5 = new MyStaticBitmap( m_scrolledWindow5, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString ); | 433 m_staticBitmap5 = new MyStaticBitmap( m_scrolledWindow5, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString ); |
403 } | 434 } |
404 | 435 |
436 void MainFrame::SetAccelerator( void ) | |
437 { | |
438 wxAcceleratorEntry entries[2]; | |
439 entries[0].Set( wxACCEL_CTRL, (int) 'P', wxID_PRINT ); | |
440 entries[1].Set( wxACCEL_NORMAL, WXK_F1, wxID_HELP ); | |
441 /* | |
442 entries[1].Set( wxACCEL_CTRL, (int) 'X', wxID_EXIT ); | |
443 entries[2].Set( wxACCEL_SHIFT, (int) 'A', ID_ABOUT); | |
444 entries[3].Set( wxACCEL_NORMAL, WXK_DELETE, wxID_CUT); | |
445 */ | |
446 wxAcceleratorTable accel( 2, entries ); | |
447 SetAcceleratorTable( accel ); | |
448 } | |
449 | |
405 void MainFrame::Cmd( wxString cmd ) | 450 void MainFrame::Cmd( wxString cmd ) |
406 { | 451 { |
407 m_dataViewListCtrl->DeleteAllItems(); | 452 m_dataViewListCtrl->DeleteAllItems(); |
408 LoadBitmaps( wxEmptyString ); | 453 LoadBitmaps( wxEmptyString, false ); |
454 wxRegEx reHhs( wxT( "^0[1238][0-9]{8}$" ) ); | |
409 | 455 |
410 if ( cmd.IsSameAs( wxT( "q" ), true ) || cmd.IsSameAs( wxT( "9" ), true ) ) { | 456 if ( cmd.IsSameAs( wxT( "q" ), true ) || cmd.IsSameAs( wxT( "9" ), true ) ) { |
411 Close(); | 457 Close(); |
412 return; | 458 return; |
413 } | 459 } |
414 | 460 |
415 if ( cmd.IsSameAs( wxT( "c" ), true ) || cmd.IsSameAs( wxT( "cmd" ), true ) ) { | 461 if ( cmd.IsSameAs( wxT( "c" ), true ) || cmd.IsSameAs( wxT( "cmd" ), true ) ) { |
416 Close(); | |
417 return; | 462 return; |
418 } | 463 } |
419 | 464 |
420 if ( cmd.IsSameAs( wxT( "k" ), true ) ) { | 465 if ( cmd.IsSameAs( wxT( "k" ), true ) ) { |
421 // hiragana kensaku | 466 // hiragana kensaku |
428 wxExecute( execmd ); | 473 wxExecute( execmd ); |
429 return; | 474 return; |
430 } | 475 } |
431 | 476 |
432 if ( cmd.IsSameAs( wxT( "*" ), false ) ) { | 477 if ( cmd.IsSameAs( wxT( "*" ), false ) ) { |
433 // cmd = clipboard // paste clipboard | 478 PasteSeaarch(); |
479 return; | |
434 } | 480 } |
435 | 481 |
436 if ( cmd.IsSameAs( wxT( "+" ), false ) ) { | 482 if ( cmd.IsSameAs( wxT( "+" ), false ) ) { |
437 // print | 483 PrintImages(); |
438 return; | 484 return; |
439 } | 485 } |
440 | 486 |
441 wxRegEx reHhs( wxT( "^0[1238][0-9]{8}$" ) ); | |
442 if ( reHhs.Matches( cmd ) ) { | 487 if ( reHhs.Matches( cmd ) ) { |
443 m_hhs = m_searchCtrl->GetValue(); | 488 m_hhs = m_searchCtrl->GetValue(); |
444 Search(); | 489 Search(); |
445 return; | 490 return; |
446 } | 491 } |
447 | 492 |
448 wxMessageBox( wxT( "Bad Input !!" ) ); | 493 wxMessageBox( wxT( "Bad Input !!" ) ); |
449 } | 494 } |
450 | 495 |
451 void MainFrame::LoadBitmap( wxScrolledWindow* sc, wxStaticBitmap* sb, wxString file ) | 496 bool MainFrame::LoadBitmap( wxScrolledWindow* sc, wxStaticBitmap* sb, wxString file ) |
452 { | 497 { |
498 sb->SetBitmap( wxNullBitmap ); | |
499 sc->Scroll( 0, 0 ); | |
500 | |
501 bool ok = true; | |
453 if ( startup ) { | 502 if ( startup ) { |
454 file = wxT( "image/hw201810.jpg" ); | 503 file = wxT( "image/hello.jpg" ); |
455 startup = false; | 504 startup = false; |
456 } | 505 } |
457 if ( !wxFileExists( file ) ) file = wxT( "image/testpattern.jpg" ); | 506 if ( !wxFileExists( file ) ) { |
507 file = wxT( "image/testpattern.jpg" ); | |
508 ok = false; | |
509 } | |
458 wxBitmap bmp( file, wxBITMAP_TYPE_JPEG ); | 510 wxBitmap bmp( file, wxBITMAP_TYPE_JPEG ); |
459 int width = bmp.GetWidth(); | 511 int width = bmp.GetWidth(); |
460 int height = bmp.GetHeight(); | 512 int height = bmp.GetHeight(); |
461 wxImage img = bmp.ConvertToImage(); | 513 wxImage img = bmp.ConvertToImage(); |
462 | 514 |
464 sc->GetSize( &ww, &wh ); | 516 sc->GetSize( &ww, &wh ); |
465 | 517 |
466 float w = ww - 30; | 518 float w = ww - 30; |
467 float h = w * height / width; | 519 float h = w * height / width; |
468 sb->SetBitmap( wxBitmap( img.Scale( w, h, wxIMAGE_QUALITY_HIGH ) ) ); | 520 sb->SetBitmap( wxBitmap( img.Scale( w, h, wxIMAGE_QUALITY_HIGH ) ) ); |
469 sc->SetScrollbars( 10, 10, w / 10, h / 10 ); | 521 sc->SetScrollbars( 10, 10, (int)w / 10, (int)h / 10 ); |
470 | 522 |
471 for ( int i = 0; i < 5; i++ ) { | 523 return ok; |
472 w *= 1.1; | 524 } |
473 h *= 1.1; | 525 |
474 //sb->SetImage( i, wxBitmap( img.Scale( w, h, wxIMAGE_QUALITY_HIGH ) ) ); | 526 bool MainFrame::LoadBitmaps( wxString date, bool reload ) |
475 } | 527 { |
476 } | 528 bool ok; |
477 | 529 ok = LoadBitmap( m_scrolledWindow1, m_staticBitmap1, wxString::Format( wxT( ".cache/%08s_1" ), date ) ); |
478 void MainFrame::LoadBitmaps( wxString date ) | 530 ok = LoadBitmap( m_scrolledWindow2, m_staticBitmap2, wxString::Format( wxT( ".cache/%08s_2" ), date ) ); |
479 { | 531 ok = LoadBitmap( m_scrolledWindow3, m_staticBitmap3, wxString::Format( wxT( ".cache/%08s_3" ), date ) ); |
480 LoadBitmap( m_scrolledWindow1, m_staticBitmap1, wxString::Format( wxT( ".cache/%08s_1" ), date ) ); | 532 ok = LoadBitmap( m_scrolledWindow4, m_staticBitmap4, wxString::Format( wxT( ".cache/%08s_4" ), date ) ); |
481 LoadBitmap( m_scrolledWindow2, m_staticBitmap2, wxString::Format( wxT( ".cache/%08s_2" ), date ) ); | 533 ok = LoadBitmap( m_scrolledWindow5, m_staticBitmap5, wxString::Format( wxT( ".cache/%08s_5" ), date ) ); |
482 LoadBitmap( m_scrolledWindow3, m_staticBitmap3, wxString::Format( wxT( ".cache/%08s_3" ), date ) ); | 534 |
483 LoadBitmap( m_scrolledWindow4, m_staticBitmap4, wxString::Format( wxT( ".cache/%08s_4" ), date ) ); | 535 if ( !ok && reload ) { |
484 LoadBitmap( m_scrolledWindow5, m_staticBitmap5, wxString::Format( wxT( ".cache/%08s_5" ), date ) ); | 536 wxSleep( 5 ); |
537 LoadBitmaps( date, false ); | |
538 } | |
539 return ok; | |
485 } | 540 } |
486 | 541 |
487 void MainFrame::GetImages( wxString hhs, wxString date ) | 542 void MainFrame::GetImages( wxString hhs, wxString date ) |
488 { | 543 { |
489 wxArrayString args; // http get | 544 wxArrayString args; // http get |
490 args.Add( wxT( "client.exe" ) ); | 545 args.Add( wxT( "client.exe" ) ); |
491 args.Add( m_server ); | 546 args.Add( m_server ); |
492 args.Add( hhs ); | 547 args.Add( hhs ); |
493 args.Add( date ); | 548 args.Add( date ); |
494 | 549 |
495 //wxMessageBox( wxJoin( args, ' ', '\\' ) ); | |
496 int estimate = 5; | 550 int estimate = 5; |
497 wxProgressDialog pd( wxT( "Connecting Server" ), wxT( "Start..." ), estimate, NULL, wxPD_APP_MODAL|wxPD_ELAPSED_TIME|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE ); | 551 wxProgressDialog pd( wxT( "Connecting Server" ), wxT( "Start..." ), estimate, NULL, wxPD_APP_MODAL|wxPD_ELAPSED_TIME|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE ); |
498 pd.SetSize( wxSize( 320, 140 ) ); | 552 pd.SetSize( wxSize( 320, 140 ) ); |
499 | 553 |
500 wxExecute( wxJoin( args, ' ', '\\' ), wxEXEC_ASYNC|wxEXEC_HIDE_CONSOLE ); | 554 wxExecute( wxJoin( args, ' ', '\\' ), wxEXEC_ASYNC|wxEXEC_HIDE_CONSOLE ); |
504 } | 558 } |
505 } | 559 } |
506 | 560 |
507 void MainFrame::Search( void ) | 561 void MainFrame::Search( void ) |
508 { | 562 { |
563 // hhs info | |
564 if ( hhash.count( m_hhs ) ) { | |
565 m_textCtrlName->SetValue( hhash[ m_hhs ]->name ); | |
566 m_textCtrlAddr->SetValue( hhash[ m_hhs ]->addr ); | |
567 } | |
568 | |
569 // index | |
509 wxString date; | 570 wxString date; |
510 int match_cnt = 0; | 571 int match_cnt = 0; |
511 for ( int i = 0; i < m_index.GetCount(); i++ ) { | 572 for ( int i = 0; i < m_index.GetCount(); i++ ) { |
512 if ( m_index[i].StartsWith( m_hhs, &date ) ) { | 573 if ( m_index[i].StartsWith( m_hhs, &date ) ) { |
513 wxVector<wxVariant> data; | 574 wxVector<wxVariant> data; |
517 data.push_back( wxEmptyString ); | 578 data.push_back( wxEmptyString ); |
518 m_dataViewListCtrl->AppendItem( data ); | 579 m_dataViewListCtrl->AppendItem( data ); |
519 data.clear(); | 580 data.clear(); |
520 } | 581 } |
521 } | 582 } |
522 if ( match_cnt == 0 ) wxMessageBox( wxT( "Not Matched !!" ) ); | 583 |
584 if ( match_cnt == 0 ) { | |
585 wxMessageBox( wxT( "Not Matched !!" ) ); | |
586 } else { | |
587 wxString date = m_dataViewListCtrl->GetTextValue( 0, 1 ); | |
588 date.Replace( wxT( "-" ), wxEmptyString, true ); | |
589 GetImages( m_hhs, date ); | |
590 if ( LoadBitmaps( date, true ) ) { | |
591 m_dataViewListCtrl->SetTextValue( wxT( "OK" ), 0, 2 ); | |
592 m_dataViewListCtrl->SelectRow( 0 ); | |
593 } | |
594 } | |
595 | |
596 WriteLog( wxT( "[search] " ) + m_hhs ); | |
523 } | 597 } |
524 | 598 |
525 void MainFrame::LoadDB( void ) | 599 void MainFrame::LoadDB( void ) |
526 { | 600 { |
601 wxProgressDialog pd( wxT( "Load Data" ), wxT( "Now loading..." ), 100, NULL, wxPD_APP_MODAL|wxPD_ELAPSED_TIME|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE ); | |
602 pd.SetSize( wxSize( 320, 140 ) ); | |
603 | |
604 // index | |
527 wxTextFile file; | 605 wxTextFile file; |
528 file.Open( wxT( "index.db" ) ); | 606 file.Open( wxT( "index.db" ) ); |
529 for ( int i = 0; i < file.GetLineCount(); i++ ) | 607 for ( int i = 0; i < file.GetLineCount(); i++ ) |
530 m_index.Add( file.GetLine( i ) ); | 608 m_index.Add( file.GetLine( i ) ); |
531 file.Close(); | 609 file.Close(); |
532 m_index.Sort( true ); | 610 m_index.Sort( true ); |
533 | 611 |
534 /* | 612 // decrypto |
535 file.Open( wxT( "hhs.db" ) ); | 613 wxString key = wxT( "12345678900123456789abcdefabcdef" ); |
536 for ( int i = 0; i < file.GetLineCount(); i++ ) { | 614 wxArrayString args; |
537 // | 615 args.Add( wxT( "crypto.exe" ) ); |
538 } | 616 args.Add( wxT( "-d" ) ); |
539 file.Close(); | 617 args.Add( wxT( "hhs.db" ) ); |
540 */ | 618 args.Add( wxT( "-k" ) ); |
619 args.Add( key ); | |
620 | |
621 wxArrayString output, errors; | |
622 wxExecute( wxJoin( args, ' ', '\\' ), output, errors ); | |
623 | |
624 for ( int i = 0; i < 100; i++ ) { | |
625 wxMilliSleep( 2 ); | |
626 pd.Update( i, wxString::Format( wxT( "Now loding ... ( %0.1f %% )" ), (float)i ) ); | |
627 } | |
628 if ( errors.GetCount() > 0 ) { | |
629 wxMessageBox( errors[0] ); | |
630 return; | |
631 } | |
632 for ( int i = 0; i < output.GetCount(); i++ ) { | |
633 wxArrayString buf = wxSplit( output[i], ',', '\\' ); | |
634 hhash[ buf[0] ] = new HhsClass( buf ); // no, birth, name, kana, addr, sex | |
635 } | |
636 } | |
637 | |
638 void MainFrame::PasteSeaarch( void ) | |
639 { | |
640 wxString s; | |
641 if ( wxTheClipboard->Open() ) { | |
642 if ( wxTheClipboard->IsSupported( wxDF_TEXT ) ) { | |
643 wxTextDataObject data; | |
644 wxTheClipboard->GetData( data ); | |
645 s = data.GetText(); | |
646 } | |
647 wxTheClipboard->Close(); | |
648 } | |
649 | |
650 s.Replace( wxT(" "), wxT(""), true ); | |
651 wxRegEx reHhs( wxT( "^0[1238][0-9]{8}$" ) ); | |
652 if ( reHhs.Matches( s ) ) { | |
653 m_searchCtrl->SetValue( s ); | |
654 m_hhs = m_searchCtrl->GetValue(); | |
655 Search(); | |
656 return; | |
657 } | |
658 wxMessageBox( wxT( "Bad Input !!" ) ); | |
541 } | 659 } |
542 | 660 |
543 void MainFrame::PrintImages( void ) | 661 void MainFrame::PrintImages( void ) |
544 { | 662 { |
545 int r = m_dataViewListCtrl->GetSelectedRow(); | 663 int r = m_dataViewListCtrl->GetSelectedRow(); |
576 wxPrintDialogData pd; | 694 wxPrintDialogData pd; |
577 wxPrinter p( &pd ); | 695 wxPrinter p( &pd ); |
578 | 696 |
579 hpout.SetHtmlText( html, wxEmptyString, false ); | 697 hpout.SetHtmlText( html, wxEmptyString, false ); |
580 p.Print( NULL, &hpout, true ); | 698 p.Print( NULL, &hpout, true ); |
699 | |
700 WriteLog( wxT( "[print]" ) ); | |
581 } | 701 } |
582 | 702 |
583 void MainFrame::RemoveFile( wxString pattern ) | 703 void MainFrame::RemoveFile( wxString pattern ) |
584 { | 704 { |
585 wxString file = wxFindFirstFile( pattern ); | 705 wxString file = wxFindFirstFile( pattern ); |
587 wxRemoveFile( file ); | 707 wxRemoveFile( file ); |
588 file = wxFindNextFile(); | 708 file = wxFindNextFile(); |
589 } | 709 } |
590 } | 710 } |
591 | 711 |
712 void MainFrame::WriteLog( wxString msg ) | |
713 { | |
714 wxDateTime now = wxDateTime::Now(); | |
715 wxString file = wxGetCwd() + wxFILE_SEP_PATH + wxT( "log" ) + wxFILE_SEP_PATH + now.Format( wxT( "%Y%m%d" ) ) + wxT( ".log" ); | |
716 | |
717 wxTextFile logfile; | |
718 if ( !wxFileExists( file ) ) logfile.Create( file ); | |
719 | |
720 logfile.Open( file ); | |
721 logfile.AddLine( now.Format( wxT("%Y-%m-%d %H:%M:%S ") ) + msg ); | |
722 logfile.Write(); | |
723 logfile.Close(); | |
724 } | |
725 | |
592 void MainFrame::InDevelop( bool flag ) | 726 void MainFrame::InDevelop( bool flag ) |
593 { | 727 { |
594 if ( !flag ) return; | 728 if ( !flag ) return; |
595 | 729 |
730 bool he = false; | |
731 m_buttonHelp->Enable( he ); | |
732 m_buttonHelp->Show( he ); | |
733 | |
596 bool lo = false; | 734 bool lo = false; |
597 m_buttonLogout->Enable( lo ); | 735 m_buttonLogout->Enable( lo ); |
598 m_buttonLogout->Show( lo ); | 736 m_buttonLogout->Show( lo ); |
599 | 737 |
600 bool sl = false; | 738 bool sl = false; |
601 m_slider->Enable( sl ); | 739 m_slider->Enable( sl ); |
602 m_slider->Show( sl ); | 740 m_slider->Show( sl ); |
603 | 741 |
604 bool tb = false; | |
605 m_buttonTest->Enable( tb ); | |
606 m_buttonTest->Show( tb ); | |
607 | |
608 return; | 742 return; |
609 | 743 } |
610 // search | 744 |
611 m_searchCtrl->SetValue( wxT( "0100122642" ) ); | |
612 } | |
613 |