Mercurial > mercurial > hgweb_searcher03.cgi
diff 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 |
line wrap: on
line diff
--- a/src/myframe.cpp Thu Jun 05 04:19:03 2014 +0900 +++ b/src/myframe.cpp Sun Jun 15 16:45:52 2014 +0900 @@ -1,5 +1,5 @@ // Filename : myframe.cpp -// Last Change: 23-May-2014. +// Last Change: 05-Jun-2014. // #include "main.h" #include "db.h" @@ -151,20 +151,31 @@ /* サムネイル表示 */ void ThumbnailPanel::SetCacheImages( wxString dirpath ) { + wxBitmap bmp; + wxString thumb = wxGetCwd() + wxFILE_SEP_PATH + wxT("image") + wxFILE_SEP_PATH + wxT("thumbnail.png"); + wxDir dir( dirpath ); if ( !dir.IsOpened() ) return; m_imagefiles.Clear(); wxDir::GetAllFiles( dirpath, &m_imagefiles, wxT("*.jpg"), wxDIR_FILES ); + m_cachefiles.Clear(); wxString cachedir = wxT("cache") + dirpath.AfterLast( ':' ); wxDir cdir( cachedir ); - if ( !cdir.IsOpened() ) return; + if ( !cdir.IsOpened() ) { + bmp.LoadFile( thumb, wxBITMAP_TYPE_PNG ); + m_bitmap0->SetBitmap( bmp ); + m_bitmap1->SetBitmap( bmp ); + m_bitmap2->SetBitmap( bmp ); + m_bitmap3->SetBitmap( bmp ); + m_bitmap4->SetBitmap( bmp ); + m_bitmap5->SetBitmap( bmp ); + return; + } - m_cachefiles.Clear(); wxDir::GetAllFiles( cachedir, &m_cachefiles, wxT("*.png"), wxDIR_FILES ); - wxString thumb = wxGetCwd() + wxFILE_SEP_PATH + wxT("image") + wxFILE_SEP_PATH + wxT("thumbnail.png"); int n = m_cachefiles.GetCount(); if ( n < 6 ) { while ( n < 6 ) { @@ -173,7 +184,6 @@ } } - wxBitmap bmp; bmp.LoadFile( m_cachefiles[0], wxBITMAP_TYPE_PNG ); m_bitmap0->SetBitmap( bmp ); bmp.LoadFile( m_cachefiles[1], wxBITMAP_TYPE_PNG ); m_bitmap1->SetBitmap( bmp ); bmp.LoadFile( m_cachefiles[2], wxBITMAP_TYPE_PNG ); m_bitmap2->SetBitmap( bmp ); @@ -313,8 +323,11 @@ m_searchBox->SetFocus(); bSizerCmd->Add( m_searchBox, 1, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + m_buttonPaste = new wxButton( m_panelMain, ID_PASTE, wxT("貼付検索"), wxDefaultPosition, wxSize( 65, -1 ), 0 ); + bSizerCmd->Add( m_buttonPaste, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 10 ); + m_buttonKana = new wxButton( m_panelMain, ID_KANA, wxT("カナ検索"), wxDefaultPosition, wxSize( 65, -1 ), 0 ); - bSizerCmd->Add( m_buttonKana, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 20 ); + bSizerCmd->Add( m_buttonKana, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); m_buttonHist = new wxButton( m_panelMain, ID_HIST, wxT("検索履歴"), wxDefaultPosition, wxSize( 65, -1 ), 0 ); bSizerCmd->Add( m_buttonHist, 0, wxALL, 5 ); @@ -360,8 +373,9 @@ EVT_MENU( ID_MNAPPDIR, MyFrame::OnOpenAppDir ) EVT_LIST_ITEM_SELECTED( ID_LIST, MyFrame::OnSelectItem ) EVT_LIST_ITEM_ACTIVATED( ID_LIST, MyFrame::OnDClickItem ) - EVT_BUTTON( ID_KANA, MyFrame::OnKana ) - EVT_BUTTON( ID_HIST, MyFrame::OnHistory ) + EVT_BUTTON( ID_PASTE, MyFrame::OnPaste ) + EVT_BUTTON( ID_KANA, MyFrame::OnKana ) + EVT_BUTTON( ID_HIST, MyFrame::OnHistory ) EVT_TEXT_ENTER( ID_SEARCH, MyFrame::OnCommand ) EVT_SIZE( MyFrame::OnWinSize ) EVT_MOVE( MyFrame::OnWinMove ) @@ -711,6 +725,31 @@ wxExecute( execmd ); } +/* 貼付検索 */ +void MyFrame::OnPaste( wxCommandEvent& WXUNUSED(event) ) +{ + wxString s; + if ( wxTheClipboard->Open() ) { + if ( wxTheClipboard->IsSupported( wxDF_TEXT ) ) { + wxTextDataObject data; + wxTheClipboard->GetData( data ); + s = data.GetText(); + } + wxTheClipboard->Close(); + } + + wxRegEx reHhs( wxT("^0[1238][0-9]{8}$") ); + if ( reHhs.Matches( s ) ) { + m_hhsno = s; + UpdateList( m_hhsno ); + UpdateThumbmail( 0 ); + return; + } + else { + wxMessageBox( wxT("被保険者番号ではありません.") ); + } +} + /* カナ検索ダイアログ */ void MyFrame::OnKana( wxCommandEvent& WXUNUSED(event) ) {