comparison src/myframe.cpp @ 15:de222bc84e48

Implement Mouse Gesture in Preview Dialog.
author pyon@macmini
date Sun, 15 Jun 2014 16:45:52 +0900
parents bbd65edf71d4
children 1ba97995f642
comparison
equal deleted inserted replaced
14:ac17a73e39b3 15:de222bc84e48
1 // Filename : myframe.cpp 1 // Filename : myframe.cpp
2 // Last Change: 23-May-2014. 2 // Last Change: 05-Jun-2014.
3 // 3 //
4 #include "main.h" 4 #include "main.h"
5 #include "db.h" 5 #include "db.h"
6 #include "about.h" 6 #include "about.h"
7 #include "kana.h" 7 #include "kana.h"
149 149
150 // Functions 150 // Functions
151 /* サムネイル表示 */ 151 /* サムネイル表示 */
152 void ThumbnailPanel::SetCacheImages( wxString dirpath ) 152 void ThumbnailPanel::SetCacheImages( wxString dirpath )
153 { 153 {
154 wxBitmap bmp;
155 wxString thumb = wxGetCwd() + wxFILE_SEP_PATH + wxT("image") + wxFILE_SEP_PATH + wxT("thumbnail.png");
156
154 wxDir dir( dirpath ); 157 wxDir dir( dirpath );
155 if ( !dir.IsOpened() ) return; 158 if ( !dir.IsOpened() ) return;
156 159
157 m_imagefiles.Clear(); 160 m_imagefiles.Clear();
158 wxDir::GetAllFiles( dirpath, &m_imagefiles, wxT("*.jpg"), wxDIR_FILES ); 161 wxDir::GetAllFiles( dirpath, &m_imagefiles, wxT("*.jpg"), wxDIR_FILES );
159 162
163 m_cachefiles.Clear();
160 wxString cachedir = wxT("cache") + dirpath.AfterLast( ':' ); 164 wxString cachedir = wxT("cache") + dirpath.AfterLast( ':' );
161 wxDir cdir( cachedir ); 165 wxDir cdir( cachedir );
162 if ( !cdir.IsOpened() ) return; 166 if ( !cdir.IsOpened() ) {
163 167 bmp.LoadFile( thumb, wxBITMAP_TYPE_PNG );
164 m_cachefiles.Clear(); 168 m_bitmap0->SetBitmap( bmp );
169 m_bitmap1->SetBitmap( bmp );
170 m_bitmap2->SetBitmap( bmp );
171 m_bitmap3->SetBitmap( bmp );
172 m_bitmap4->SetBitmap( bmp );
173 m_bitmap5->SetBitmap( bmp );
174 return;
175 }
176
165 wxDir::GetAllFiles( cachedir, &m_cachefiles, wxT("*.png"), wxDIR_FILES ); 177 wxDir::GetAllFiles( cachedir, &m_cachefiles, wxT("*.png"), wxDIR_FILES );
166 178
167 wxString thumb = wxGetCwd() + wxFILE_SEP_PATH + wxT("image") + wxFILE_SEP_PATH + wxT("thumbnail.png");
168 int n = m_cachefiles.GetCount(); 179 int n = m_cachefiles.GetCount();
169 if ( n < 6 ) { 180 if ( n < 6 ) {
170 while ( n < 6 ) { 181 while ( n < 6 ) {
171 m_cachefiles.Add( thumb ); 182 m_cachefiles.Add( thumb );
172 n++; 183 n++;
173 } 184 }
174 } 185 }
175 186
176 wxBitmap bmp;
177 bmp.LoadFile( m_cachefiles[0], wxBITMAP_TYPE_PNG ); m_bitmap0->SetBitmap( bmp ); 187 bmp.LoadFile( m_cachefiles[0], wxBITMAP_TYPE_PNG ); m_bitmap0->SetBitmap( bmp );
178 bmp.LoadFile( m_cachefiles[1], wxBITMAP_TYPE_PNG ); m_bitmap1->SetBitmap( bmp ); 188 bmp.LoadFile( m_cachefiles[1], wxBITMAP_TYPE_PNG ); m_bitmap1->SetBitmap( bmp );
179 bmp.LoadFile( m_cachefiles[2], wxBITMAP_TYPE_PNG ); m_bitmap2->SetBitmap( bmp ); 189 bmp.LoadFile( m_cachefiles[2], wxBITMAP_TYPE_PNG ); m_bitmap2->SetBitmap( bmp );
180 bmp.LoadFile( m_cachefiles[3], wxBITMAP_TYPE_PNG ); m_bitmap3->SetBitmap( bmp ); 190 bmp.LoadFile( m_cachefiles[3], wxBITMAP_TYPE_PNG ); m_bitmap3->SetBitmap( bmp );
181 bmp.LoadFile( m_cachefiles[4], wxBITMAP_TYPE_PNG ); m_bitmap4->SetBitmap( bmp ); 191 bmp.LoadFile( m_cachefiles[4], wxBITMAP_TYPE_PNG ); m_bitmap4->SetBitmap( bmp );
311 #endif 321 #endif
312 m_searchBox->ShowCancelButton( false ); 322 m_searchBox->ShowCancelButton( false );
313 m_searchBox->SetFocus(); 323 m_searchBox->SetFocus();
314 bSizerCmd->Add( m_searchBox, 1, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); 324 bSizerCmd->Add( m_searchBox, 1, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
315 325
326 m_buttonPaste = new wxButton( m_panelMain, ID_PASTE, wxT("貼付検索"), wxDefaultPosition, wxSize( 65, -1 ), 0 );
327 bSizerCmd->Add( m_buttonPaste, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 10 );
328
316 m_buttonKana = new wxButton( m_panelMain, ID_KANA, wxT("カナ検索"), wxDefaultPosition, wxSize( 65, -1 ), 0 ); 329 m_buttonKana = new wxButton( m_panelMain, ID_KANA, wxT("カナ検索"), wxDefaultPosition, wxSize( 65, -1 ), 0 );
317 bSizerCmd->Add( m_buttonKana, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 20 ); 330 bSizerCmd->Add( m_buttonKana, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
318 331
319 m_buttonHist = new wxButton( m_panelMain, ID_HIST, wxT("検索履歴"), wxDefaultPosition, wxSize( 65, -1 ), 0 ); 332 m_buttonHist = new wxButton( m_panelMain, ID_HIST, wxT("検索履歴"), wxDefaultPosition, wxSize( 65, -1 ), 0 );
320 bSizerCmd->Add( m_buttonHist, 0, wxALL, 5 ); 333 bSizerCmd->Add( m_buttonHist, 0, wxALL, 5 );
321 334
322 // 335 //
358 EVT_MENU( ID_MNMASKPARAM, MyFrame::OnMaskParam ) 371 EVT_MENU( ID_MNMASKPARAM, MyFrame::OnMaskParam )
359 EVT_MENU( ID_MNMARKPARAM, MyFrame::OnMarkParam ) 372 EVT_MENU( ID_MNMARKPARAM, MyFrame::OnMarkParam )
360 EVT_MENU( ID_MNAPPDIR, MyFrame::OnOpenAppDir ) 373 EVT_MENU( ID_MNAPPDIR, MyFrame::OnOpenAppDir )
361 EVT_LIST_ITEM_SELECTED( ID_LIST, MyFrame::OnSelectItem ) 374 EVT_LIST_ITEM_SELECTED( ID_LIST, MyFrame::OnSelectItem )
362 EVT_LIST_ITEM_ACTIVATED( ID_LIST, MyFrame::OnDClickItem ) 375 EVT_LIST_ITEM_ACTIVATED( ID_LIST, MyFrame::OnDClickItem )
363 EVT_BUTTON( ID_KANA, MyFrame::OnKana ) 376 EVT_BUTTON( ID_PASTE, MyFrame::OnPaste )
364 EVT_BUTTON( ID_HIST, MyFrame::OnHistory ) 377 EVT_BUTTON( ID_KANA, MyFrame::OnKana )
378 EVT_BUTTON( ID_HIST, MyFrame::OnHistory )
365 EVT_TEXT_ENTER( ID_SEARCH, MyFrame::OnCommand ) 379 EVT_TEXT_ENTER( ID_SEARCH, MyFrame::OnCommand )
366 EVT_SIZE( MyFrame::OnWinSize ) 380 EVT_SIZE( MyFrame::OnWinSize )
367 EVT_MOVE( MyFrame::OnWinMove ) 381 EVT_MOVE( MyFrame::OnWinMove )
368 EVT_CLOSE( MyFrame::SaveConfig ) 382 EVT_CLOSE( MyFrame::SaveConfig )
369 END_EVENT_TABLE() 383 END_EVENT_TABLE()
709 wxString dir = item.GetText(); 723 wxString dir = item.GetText();
710 wxString execmd = wxT("explorer ") + dir; 724 wxString execmd = wxT("explorer ") + dir;
711 wxExecute( execmd ); 725 wxExecute( execmd );
712 } 726 }
713 727
728 /* 貼付検索 */
729 void MyFrame::OnPaste( wxCommandEvent& WXUNUSED(event) )
730 {
731 wxString s;
732 if ( wxTheClipboard->Open() ) {
733 if ( wxTheClipboard->IsSupported( wxDF_TEXT ) ) {
734 wxTextDataObject data;
735 wxTheClipboard->GetData( data );
736 s = data.GetText();
737 }
738 wxTheClipboard->Close();
739 }
740
741 wxRegEx reHhs( wxT("^0[1238][0-9]{8}$") );
742 if ( reHhs.Matches( s ) ) {
743 m_hhsno = s;
744 UpdateList( m_hhsno );
745 UpdateThumbmail( 0 );
746 return;
747 }
748 else {
749 wxMessageBox( wxT("被保険者番号ではありません.") );
750 }
751 }
752
714 /* カナ検索ダイアログ */ 753 /* カナ検索ダイアログ */
715 void MyFrame::OnKana( wxCommandEvent& WXUNUSED(event) ) 754 void MyFrame::OnKana( wxCommandEvent& WXUNUSED(event) )
716 { 755 {
717 KanaDialog* kana = new KanaDialog( this, wxID_ANY, wxT("カナ氏名で被保番を検索"), wxDefaultPosition, wxSize( 640, 600 ), wxCAPTION|wxFRAME_NO_TASKBAR|wxRESIZE_BORDER|wxSTAY_ON_TOP|wxTAB_TRAVERSAL ); 756 KanaDialog* kana = new KanaDialog( this, wxID_ANY, wxT("カナ氏名で被保番を検索"), wxDefaultPosition, wxSize( 640, 600 ), wxCAPTION|wxFRAME_NO_TASKBAR|wxRESIZE_BORDER|wxSTAY_ON_TOP|wxTAB_TRAVERSAL );
718 kana->ShowWithEffect( wxSHOW_EFFECT_SLIDE_TO_BOTTOM ); 757 kana->ShowWithEffect( wxSHOW_EFFECT_SLIDE_TO_BOTTOM );