Mercurial > mercurial > hgweb_rsearcher.cgi
comparison src/rsearcher.cpp @ 9:ae89ce4793d8
add satellite-view.
author | pyon@macmini |
---|---|
date | Wed, 31 Oct 2018 20:10:29 +0900 |
parents | 82f9af6aa7e4 |
children | 36811fd22bd2 |
comparison
equal
deleted
inserted
replaced
8:82f9af6aa7e4 | 9:ae89ce4793d8 |
---|---|
1 // Filename : rsearcher.cpp | 1 // Filename : rsearcher.cpp |
2 // Last Change: 2018-10-30 ‰Î 11:19:28. | 2 // Last Change: 2018-10-31 æ°´ 16:39:35. |
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 <wx/clipbrd.h> |
89 /********************/ | 89 /********************/ |
90 MyStaticBitmap::MyStaticBitmap( wxScrolledWindow *parent, wxWindowID id, const wxBitmap &label, const wxPoint &pos, const wxSize &size, long style, const wxString &name ) | 90 MyStaticBitmap::MyStaticBitmap( wxScrolledWindow *parent, wxWindowID id, const wxBitmap &label, const wxPoint &pos, const wxSize &size, long style, const wxString &name ) |
91 : wxStaticBitmap( parent, id, label, pos, size, style, name ) | 91 : wxStaticBitmap( parent, id, label, pos, size, style, name ) |
92 { | 92 { |
93 m_parent = parent; | 93 m_parent = parent; |
94 Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( OnLeftDown ), NULL, this ); | 94 Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( OnLeftDown ), NULL, this ); |
95 Connect( wxEVT_LEFT_UP, wxMouseEventHandler( OnLeftUp ), NULL, this ); | 95 Connect( wxEVT_LEFT_UP, wxMouseEventHandler( OnLeftUp ), NULL, this ); |
96 Connect( wxEVT_MOTION, wxMouseEventHandler( OnMotion ), NULL, this ); | 96 Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( OnLeftDClick ), NULL, this ); |
97 Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( OnWheel ), NULL, this ); | 97 Connect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( OnRightDClick ), NULL, this ); |
98 | 98 Connect( wxEVT_MOTION, wxMouseEventHandler( OnMotion ), NULL, this ); |
99 Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OnStartRGesture ), NULL, this ); | 99 Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( OnWheel ), NULL, this ); |
100 Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( OnEndRGesture ), NULL, this ); | 100 Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OnStartRGesture ), NULL, this ); |
101 Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( OnEndRGesture ), NULL, this ); | |
101 } | 102 } |
102 | 103 |
103 MyStaticBitmap::~MyStaticBitmap() | 104 MyStaticBitmap::~MyStaticBitmap() |
104 { | 105 { |
105 Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( OnLeftDown ), NULL, this ); | 106 Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( OnLeftDown ), NULL, this ); |
106 Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( OnLeftUp ), NULL, this ); | 107 Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( OnLeftUp ), NULL, this ); |
107 Disconnect( wxEVT_MOTION, wxMouseEventHandler( OnMotion ), NULL, this ); | 108 Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( OnLeftDClick ), NULL, this ); |
108 Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( OnWheel ), NULL, this ); | 109 Disconnect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( OnRightDClick ), NULL, this ); |
109 | 110 Disconnect( wxEVT_MOTION, wxMouseEventHandler( OnMotion ), NULL, this ); |
110 Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OnStartRGesture ), NULL, this ); | 111 Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( OnWheel ), NULL, this ); |
111 Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( OnEndRGesture ), NULL, this ); | 112 Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OnStartRGesture ), NULL, this ); |
113 Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( OnEndRGesture ), NULL, this ); | |
112 } | 114 } |
113 | 115 |
114 // Event Handlers | 116 // Event Handlers |
115 void MyStaticBitmap::OnWheel( wxMouseEvent& event ) | 117 void MyStaticBitmap::OnWheel( wxMouseEvent& event ) |
116 { | 118 { |
119 /* | |
117 if ( event.ControlDown() ) { | 120 if ( event.ControlDown() ) { |
118 if ( event.GetWheelRotation() < 0 ) { | 121 if ( event.GetWheelRotation() < 0 ) { |
119 //if ( m_zoom < 4 ) m_zoom++; | |
120 } | 122 } |
121 else { | 123 else { |
122 //if ( m_zoom > 0 ) m_zoom--; | |
123 } | 124 } |
124 return; | 125 return; |
125 } | 126 } |
126 event.Skip(); | 127 event.Skip(); |
128 */ | |
127 } | 129 } |
128 | 130 |
129 void MyStaticBitmap::OnLeftDown( wxMouseEvent& event ) | 131 void MyStaticBitmap::OnLeftDown( wxMouseEvent& event ) |
130 { | 132 { |
131 event.GetPosition( &m_dragx, &m_dragy ); | 133 event.GetPosition( &m_dragx, &m_dragy ); |
133 } | 135 } |
134 | 136 |
135 void MyStaticBitmap::OnLeftUp( wxMouseEvent& WXUNUSED(event) ) | 137 void MyStaticBitmap::OnLeftUp( wxMouseEvent& WXUNUSED(event) ) |
136 { | 138 { |
137 SetCursor( wxCursor( wxCURSOR_ARROW ) ); | 139 SetCursor( wxCursor( wxCURSOR_ARROW ) ); |
140 } | |
141 | |
142 void MyStaticBitmap::OnLeftDClick( wxMouseEvent& event ) | |
143 { | |
144 if ( with_stl ) return; | |
145 MainFrame* mf = (MainFrame*)FindWindowById( ID_MAIN ); | |
146 mf->ChangeCZoom( 1 ); | |
147 } | |
148 | |
149 void MyStaticBitmap::OnRightDClick( wxMouseEvent& event ) | |
150 { | |
151 if ( with_stl ) return; | |
152 MainFrame* mf = (MainFrame*)FindWindowById( ID_MAIN ); | |
153 mf->ChangeCZoom( -1 ); | |
138 } | 154 } |
139 | 155 |
140 void MyStaticBitmap::OnMotion( wxMouseEvent& event ) | 156 void MyStaticBitmap::OnMotion( wxMouseEvent& event ) |
141 { | 157 { |
142 if ( event.RightIsDown() ) return; | 158 if ( event.RightIsDown() ) return; |
167 } | 183 } |
168 | 184 |
169 /* right-gesture: judge */ | 185 /* right-gesture: judge */ |
170 void MyStaticBitmap::OnEndRGesture( wxMouseEvent& event ) | 186 void MyStaticBitmap::OnEndRGesture( wxMouseEvent& event ) |
171 { | 187 { |
188 if ( with_stl ) return; | |
172 int x, y; | 189 int x, y; |
173 event.GetPosition( &x, &y ); | 190 event.GetPosition( &x, &y ); |
174 | 191 |
175 int dx = x - cx; | 192 int dx = x - cx; |
176 int dy = y - cy; | 193 int dy = y - cy; |
208 nb->SetSelection( ++n ); | 225 nb->SetSelection( ++n ); |
209 } else { | 226 } else { |
210 if ( n == 0 ) return; | 227 if ( n == 0 ) return; |
211 nb->SetSelection( --n ); | 228 nb->SetSelection( --n ); |
212 } | 229 } |
230 } | |
231 | |
232 /********************/ | |
233 /** SatteliteView **/ | |
234 /********************/ | |
235 StlFrame::StlFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) | |
236 : wxFrame( parent, id, title, pos, size, style ) | |
237 { | |
238 wxBoxSizer* bSizerTop = new wxBoxSizer( wxHORIZONTAL ); | |
239 | |
240 m_scrolledWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL ); | |
241 m_scrolledWindow->SetScrollRate( 5, 5 ); | |
242 | |
243 m_staticBitmap = new MyStaticBitmap( m_scrolledWindow, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString ); | |
244 m_staticBitmap->WithSatellite( true ); | |
245 | |
246 bSizerTop->Add( m_scrolledWindow, 1, wxEXPAND|wxALL, 0 ); | |
247 | |
248 this->SetSizer( bSizerTop ); | |
249 this->Layout(); | |
250 } | |
251 | |
252 StlFrame::~StlFrame() | |
253 { | |
213 } | 254 } |
214 | 255 |
215 /********************/ | 256 /********************/ |
216 /** Main Frame **/ | 257 /** Main Frame **/ |
217 /********************/ | 258 /********************/ |
242 // shortcut-key | 283 // shortcut-key |
243 EVT_BUTTON( ID_FOCUS, MainFrame::OnFocus ) | 284 EVT_BUTTON( ID_FOCUS, MainFrame::OnFocus ) |
244 EVT_BUTTON( ID_PZOOM, MainFrame::OnPlusZoom ) | 285 EVT_BUTTON( ID_PZOOM, MainFrame::OnPlusZoom ) |
245 EVT_BUTTON( ID_MZOOM, MainFrame::OnMinusZoom ) | 286 EVT_BUTTON( ID_MZOOM, MainFrame::OnMinusZoom ) |
246 EVT_BUTTON( ID_DARK, MainFrame::OnDark ) | 287 EVT_BUTTON( ID_DARK, MainFrame::OnDark ) |
288 EVT_BUTTON( ID_SWIN, MainFrame::OnSatellite ) | |
247 EVT_BUTTON( wxID_HELP, MainFrame::OnHelp ) | 289 EVT_BUTTON( wxID_HELP, MainFrame::OnHelp ) |
248 EVT_BUTTON( wxID_CLOSE, MainFrame::OnBClose ) | 290 EVT_BUTTON( wxID_CLOSE, MainFrame::OnBClose ) |
249 EVT_BUTTON( ID_LOGOUT, MainFrame::OnLogout ) | 291 EVT_BUTTON( ID_LOGOUT, MainFrame::OnLogout ) |
250 END_EVENT_TABLE() | 292 END_EVENT_TABLE() |
251 | 293 |
252 | 294 |
253 // Event Handler | 295 // Event Handler |
254 void MainFrame::OnItemSelected( wxDataViewEvent& WXUNUSED(event) ) | 296 void MainFrame::OnItemSelected( wxDataViewEvent& WXUNUSED(event) ) |
255 { | 297 { |
256 int r = m_dataViewListCtrl->GetSelectedRow(); | 298 int r = m_dataViewListCtrl->GetSelectedRow(); |
299 if ( r == wxNOT_FOUND ) return; | |
300 | |
257 wxString ready = m_dataViewListCtrl->GetTextValue( r, 2 ); | 301 wxString ready = m_dataViewListCtrl->GetTextValue( r, 2 ); |
258 if ( ready.IsSameAs( wxT( "OK" ), true ) ) { | 302 if ( ready.IsSameAs( wxT( "OK" ), true ) ) { |
259 wxString date = m_dataViewListCtrl->GetTextValue( r, 1 ); | 303 wxString date = m_dataViewListCtrl->GetTextValue( r, 1 ); |
260 date.Replace( wxT( "-" ), wxEmptyString, true ); | 304 date.Replace( wxT( "-" ), wxEmptyString, true ); |
261 LoadBitmaps( date, false ); | 305 LoadBitmaps( date, false ); |
329 ChangeColor( m_staticBitmap2 ); | 373 ChangeColor( m_staticBitmap2 ); |
330 ChangeColor( m_staticBitmap3 ); | 374 ChangeColor( m_staticBitmap3 ); |
331 ChangeColor( m_staticBitmap4 ); | 375 ChangeColor( m_staticBitmap4 ); |
332 ChangeColor( m_staticBitmap5 ); | 376 ChangeColor( m_staticBitmap5 ); |
333 m_dark = !m_dark; | 377 m_dark = !m_dark; |
378 } | |
379 | |
380 void MainFrame::OnSatellite( wxCommandEvent& WXUNUSED(event ) ) | |
381 { | |
382 int n = m_notebook->GetSelection(); | |
383 StlFrame *stl = new StlFrame( this, wxID_ANY, wxT( "Re:Searcher - satellite view" ), wxPoint( 0, 0 ), wxSize( 500, 600 ), wxFRAME_NO_TASKBAR|wxCLOSE_BOX|wxCAPTION|wxRESIZE_BORDER ); | |
384 wxBitmap bmp; | |
385 if ( n == 0 ) bmp = m_staticBitmap1->GetBitmap(); | |
386 if ( n == 1 ) bmp = m_staticBitmap2->GetBitmap(); | |
387 if ( n == 2 ) bmp = m_staticBitmap3->GetBitmap(); | |
388 if ( n == 3 ) bmp = m_staticBitmap4->GetBitmap(); | |
389 if ( n == 4 ) bmp = m_staticBitmap5->GetBitmap(); | |
390 stl->SetBitmap( bmp ); | |
391 | |
392 int w = bmp.GetWidth(); | |
393 int h = bmp.GetHeight(); | |
394 stl->SetScroll( w, h ); | |
395 | |
396 stl->Show(); | |
334 } | 397 } |
335 | 398 |
336 void MainFrame::OnHelp( wxCommandEvent& WXUNUSED(event) ) | 399 void MainFrame::OnHelp( wxCommandEvent& WXUNUSED(event) ) |
337 { | 400 { |
338 wxString version, build; | 401 wxString version, build; |
454 m_buttonPzoom->Hide(); | 517 m_buttonPzoom->Hide(); |
455 m_buttonMzoom = new wxButton( this, ID_MZOOM, wxT( "zoom" ), wxDefaultPosition, wxDefaultSize, 0 ); | 518 m_buttonMzoom = new wxButton( this, ID_MZOOM, wxT( "zoom" ), wxDefaultPosition, wxDefaultSize, 0 ); |
456 m_buttonMzoom->Hide(); | 519 m_buttonMzoom->Hide(); |
457 m_buttonDark = new wxButton( this, ID_DARK, wxT( "Dark" ), wxDefaultPosition, wxDefaultSize, 0 ); | 520 m_buttonDark = new wxButton( this, ID_DARK, wxT( "Dark" ), wxDefaultPosition, wxDefaultSize, 0 ); |
458 m_buttonDark->Hide(); | 521 m_buttonDark->Hide(); |
522 m_buttonSatellite = new wxButton( this, ID_SWIN, wxT( "Satellite" ), wxDefaultPosition, wxDefaultSize, 0 ); | |
523 m_buttonSatellite->Hide(); | |
459 m_buttonClose = new wxButton( this, wxID_CLOSE, wxT( "Close" ), wxDefaultPosition, wxDefaultSize, 0 ); | 524 m_buttonClose = new wxButton( this, wxID_CLOSE, wxT( "Close" ), wxDefaultPosition, wxDefaultSize, 0 ); |
460 m_buttonClose->Hide(); | 525 m_buttonClose->Hide(); |
461 m_buttonHelp = new wxButton( this, wxID_HELP, wxT( "Help" ), wxDefaultPosition, wxDefaultSize, 0 ); | 526 m_buttonHelp = new wxButton( this, wxID_HELP, wxT( "Help" ), wxDefaultPosition, wxDefaultSize, 0 ); |
462 m_buttonHelp->Hide(); | 527 m_buttonHelp->Hide(); |
463 | 528 |
475 m_staticBitmap5 = new MyStaticBitmap( m_scrolledWindow5, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString ); | 540 m_staticBitmap5 = new MyStaticBitmap( m_scrolledWindow5, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString ); |
476 } | 541 } |
477 | 542 |
478 void MainFrame::SetAccelerator( void ) | 543 void MainFrame::SetAccelerator( void ) |
479 { | 544 { |
480 wxAcceleratorEntry entries[8]; | 545 wxAcceleratorEntry entries[9]; |
481 entries[0].Set( wxACCEL_CTRL, (int)'P', wxID_PRINT ); | 546 entries[0].Set( wxACCEL_CTRL, (int)'P', wxID_PRINT ); |
482 entries[1].Set( wxACCEL_NORMAL, WXK_F1, wxID_HELP ); | 547 entries[1].Set( wxACCEL_NORMAL, WXK_F1, wxID_HELP ); |
483 entries[2].Set( wxACCEL_NORMAL, WXK_F4, ID_FOCUS ); | 548 entries[2].Set( wxACCEL_NORMAL, WXK_F4, ID_FOCUS ); |
484 entries[3].Set( wxACCEL_NORMAL, (int)'Z', ID_PZOOM ); | 549 entries[3].Set( wxACCEL_NORMAL, (int)'Z', ID_PZOOM ); |
485 entries[4].Set( wxACCEL_NORMAL, (int)'X', ID_MZOOM ); | 550 entries[4].Set( wxACCEL_NORMAL, (int)'X', ID_MZOOM ); |
486 entries[5].Set( wxACCEL_NORMAL, (int)'D', ID_DARK ); | 551 entries[5].Set( wxACCEL_NORMAL, (int)'D', ID_DARK ); |
487 entries[6].Set( wxACCEL_SHIFT, (int)'Q', wxID_CLOSE ); | 552 entries[6].Set( wxACCEL_CTRL, (int)'Q', wxID_CLOSE ); |
488 entries[7].Set( wxACCEL_SHIFT, (int)'L', ID_DARK ); // now building ( logout ) | 553 entries[7].Set( wxACCEL_SHIFT, (int)'W', ID_SWIN ); |
554 entries[8].Set( wxACCEL_SHIFT, (int)'L', ID_DARK ); // now building ( logout ) | |
489 wxAcceleratorTable accel( 8, entries ); | 555 wxAcceleratorTable accel( 8, entries ); |
490 SetAcceleratorTable( accel ); | 556 SetAcceleratorTable( accel ); |
491 } | 557 } |
492 | 558 |
493 void MainFrame::Cmd( wxString cmd ) | 559 void MainFrame::Cmd( wxString cmd ) |
642 sb->SetBitmap( wxBitmap( img ) ); | 708 sb->SetBitmap( wxBitmap( img ) ); |
643 } | 709 } |
644 | 710 |
645 void MainFrame::GetImages( wxString hhs, wxString date ) | 711 void MainFrame::GetImages( wxString hhs, wxString date ) |
646 { | 712 { |
647 //GetImages2( hhs, date); return; // here comment out ( by client.exe & return ) | |
648 | |
649 int estimate = http.GetImagesSize( hhs, date ) / 1000000; | 713 int estimate = http.GetImagesSize( hhs, date ) / 1000000; |
650 wxProgressDialog pd( wxT( "Connecting Server" ), wxT( "Start..." ), estimate, NULL, wxPD_APP_MODAL|wxPD_ELAPSED_TIME|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE ); | 714 wxProgressDialog pd( wxT( "Connecting Server" ), wxT( "Start..." ), estimate, NULL, wxPD_APP_MODAL|wxPD_ELAPSED_TIME|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE ); |
651 pd.SetSize( wxSize( 320, 140 ) ); | 715 pd.SetSize( wxSize( 320, 140 ) ); |
652 | 716 |
653 http.GetImages( hhs, date ); | 717 http.GetImages( hhs, date ); |
654 for ( int i = 0; i < estimate; i++ ) { | 718 for ( int i = 0; i < estimate; i++ ) { |
655 wxMilliSleep( 1 ); | 719 wxMilliSleep( 1 ); |
656 pd.Update( i, wxT( "Now Loading..." ) ); | |
657 } | |
658 } | |
659 | |
660 void MainFrame::GetImages2( wxString hhs, wxString date ) | |
661 { | |
662 wxArrayString args; // http get | |
663 args.Add( wxT( "client.exe" ) ); | |
664 args.Add( m_server ); | |
665 args.Add( hhs ); | |
666 args.Add( date ); | |
667 | |
668 int estimate = 5; | |
669 wxProgressDialog pd( wxT( "Connecting Server" ), wxT( "Start..." ), estimate, NULL, wxPD_APP_MODAL|wxPD_ELAPSED_TIME|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE ); | |
670 pd.SetSize( wxSize( 320, 140 ) ); | |
671 | |
672 wxExecute( wxJoin( args, ' ', '\\' ), wxEXEC_ASYNC|wxEXEC_HIDE_CONSOLE ); | |
673 for ( int i = 0; i < estimate; i++ ) { | |
674 wxSleep( 1 ); | |
675 pd.Update( i, wxT( "Now Loading..." ) ); | 720 pd.Update( i, wxT( "Now Loading..." ) ); |
676 } | 721 } |
677 } | 722 } |
678 | 723 |
679 void MainFrame::Search( void ) | 724 void MainFrame::Search( void ) |