Mercurial > mercurial > hgweb_mover2.cgi
comparison src/dirview.cpp @ 38:044cc2f5af81 v2.4 v2.7
small fix.
| author | pyon@macmini |
|---|---|
| date | Thu, 24 Nov 2011 22:26:15 +0900 |
| parents | 868ccd73e238 |
| children | ce5b61376fd0 |
comparison
equal
deleted
inserted
replaced
| 37:3b54f3deeed9 | 38:044cc2f5af81 |
|---|---|
| 1 | |
| 2 // Filename : dirview.cpp | 1 // Filename : dirview.cpp |
| 3 // Last Change: 24-Oct-2011. | 2 // Last Change: 24-Nov-2011. |
| 4 // | 3 // |
| 5 | 4 |
| 6 #include "dirview.h" | 5 #include "dirview.h" |
| 7 | 6 |
| 7 #define THUMB_W 160 | |
| 8 #define THUMB_H 226 | |
| 9 | |
| 8 // frame constructor | 10 // frame constructor |
| 9 DirViewFrame::DirViewFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) | 11 DirViewFrame::DirViewFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) |
| 10 { | 12 { |
| 11 this->SetSizeHints( wxDefaultSize, wxDefaultSize ); | |
| 12 this->SetBackgroundColour( wxColour(wxT("WHEAT")) ); | 13 this->SetBackgroundColour( wxColour(wxT("WHEAT")) ); |
| 13 | 14 |
| 14 wxBoxSizer* bSizer; | 15 wxBoxSizer* bSizerTop = new wxBoxSizer( wxHORIZONTAL ); |
| 15 bSizer = new wxBoxSizer( wxHORIZONTAL ); | |
| 16 | 16 |
| 17 m_listCtrlAll = new wxListCtrl( this, ID_LISTCTRLALL, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL ); | 17 m_listCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_ICON ); |
| 18 itemCol.SetText( wxT("$BDLHV(B") ); | 18 bSizerTop->Add( m_listCtrl, 1, wxEXPAND|wxALL, 5 ); |
| 19 m_listCtrlAll->InsertColumn( 0, itemCol ); | 19 |
| 20 m_listCtrlAll->SetColumnWidth( 0, 100 ); | 20 wxBoxSizer* bSizerButton = new wxBoxSizer( wxVERTICAL ); |
| 21 itemCol.SetText( wxT("$BHoJ]81<THV9f(B") ); | 21 |
| 22 m_listCtrlAll->InsertColumn( 1, itemCol ); | 22 m_buttonExplorer = new wxButton( this, ID_BUTTONEXPLR, wxT("フォルダオープン"), wxDefaultPosition, wxDefaultSize, 0 ); |
| 23 m_listCtrlAll->SetColumnWidth( 1, 180 ); | 23 bSizerButton->Add( m_buttonExplorer, 1, wxALL, 5 ); |
| 24 itemCol.SetText( wxT("$B%U%!%$%k?t(B") ); | 24 m_buttonClose = new wxButton( this, ID_BUTTONCLOSE, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 ); |
| 25 m_listCtrlAll->InsertColumn( 2, itemCol ); | 25 bSizerButton->Add( m_buttonClose, 1, wxALL, 5 ); |
| 26 m_listCtrlAll->SetColumnWidth( 1, 100 ); | |
| 27 bSizer->Add( m_listCtrlAll, 0, wxALL|wxEXPAND, 5 ); | |
| 28 | 26 |
| 29 m_listCtrlThumbnail = new wxListCtrl( this, ID_LISTCTRLTHUMB, wxDefaultPosition, wxDefaultSize, wxLC_ICON ); | 27 bSizerTop->Add( bSizerButton, 0, wxALL, 5 ); |
| 30 bSizer->Add( m_listCtrlThumbnail, 0, wxALL|wxEXPAND, 5 ); | 28 |
| 31 | 29 this->SetSizer( bSizerTop ); |
| 32 m_bitmapPreview = new wxStaticBitmap( this, ID_BITMAPPREVIEW, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); | |
| 33 bSizer->Add( m_bitmapPreview, 1, wxALL|wxEXPAND, 5 ); | |
| 34 | |
| 35 this->SetSizer( bSizer ); | |
| 36 this->Layout(); | 30 this->Layout(); |
| 37 | 31 |
| 38 this->Centre( wxBOTH ); | 32 this->Centre( wxBOTH ); |
| 33 this->LoadListImage(); | |
| 39 } | 34 } |
| 40 | 35 |
| 41 // destructor | 36 // destructor |
| 42 DirViewFrame::~DirViewFrame() | 37 DirViewFrame::~DirViewFrame() |
| 43 { | 38 { |
| 44 } | 39 } |
| 45 | 40 |
| 46 // Event Table | 41 // Event Table |
| 47 BEGIN_EVENT_TABLE( MyFrame, wxFrame ) | 42 BEGIN_EVENT_TABLE( DirViewFrame, wxFrame ) |
| 48 EVT_LIST_ITEM_SELECTED( ID_LISTCTRLALL, DirViewFrame::OnThumbnail ) | 43 EVT_BUTTON( ID_BUTTONEXPLR, DirViewFrame::OnExplorer ) |
| 49 EVT_LIST_ITEM_SELECTED( ID_LISTCTRLTHUMB, DirViewFrame::OnPreview ) | 44 EVT_BUTTON( ID_BUTTONCLOSE, DirViewFrame::OnClose ) |
| 50 END_EVENT_TABLE() | 45 END_EVENT_TABLE() |
| 51 | 46 |
| 52 // Event Handlers | 47 // Event Handlers |
| 53 void DirViewFrame::OnThumbnail(wxListEvent& event) | 48 void DirViewFrame::OnExplorer(wxCommandEvent& WXUNUSED(event)) |
| 54 { | 49 { |
| 55 m_listCtrlThumbnail->DeleteAllItems(); | 50 wxString execmd = wxT("explorer ") + m_dir; // hhsdir |
| 56 /* | 51 //wxExecute( execmd ); |
| 57 m_imageList->RemoveAll(); | 52 wxMessageBox( execmd ); |
| 58 wxDir dir(m_dir); | 53 Close(true); |
| 59 wxString filename; | |
| 60 if ( !dir.IsOpened() ) return; | |
| 61 | |
| 62 bool cout = dir.GetFirst( &filename, wxT("*.jpg"), wxDIR_FILES ); | |
| 63 | |
| 64 int i=0; | |
| 65 wxListItem item; | |
| 66 while ( cout ) { | |
| 67 wxString f = m_dir + wxFILE_SEP_PATH + filename; | |
| 68 wxFile file( f ); | |
| 69 long len = file.Length(); | |
| 70 if ( !m_checkBox->IsChecked() && len > 150000 ) { | |
| 71 cout = dir.GetNext( &filename ); | |
| 72 continue; | |
| 73 } | |
| 74 | |
| 75 item.SetId(i); | |
| 76 item.SetMask(wxLIST_MASK_STATE|wxLIST_MASK_TEXT|wxLIST_MASK_IMAGE); | |
| 77 item.SetStateMask(wxLIST_STATE_SELECTED); | |
| 78 item.SetState(wxLIST_STATE_SELECTED); | |
| 79 item.SetImage(i); | |
| 80 item.SetText(filename); | |
| 81 m_listCtrl->InsertItem( item ); | |
| 82 m_listCtrl->SetItem( item ); | |
| 83 | |
| 84 wxImage img( f, wxBITMAP_TYPE_JPEG ); | |
| 85 wxBitmap bmp( img.Scale( 63, 89, wxIMAGE_QUALITY_HIGH ) ); | |
| 86 m_imageList->Add( bmp ); | |
| 87 cout = dir.GetNext( &filename ); | |
| 88 i++; | |
| 89 } | |
| 90 */ | |
| 91 | |
| 92 return; | |
| 93 } | 54 } |
| 94 | 55 |
| 95 void DirViewFrame::OnPreview(wxListEvent& event) | 56 void DirViewFrame::OnClose(wxCommandEvent& WXUNUSED(event)) |
| 96 { | 57 { |
| 58 Close(true); | |
| 97 } | 59 } |
| 98 | 60 |
| 99 // Functions | 61 // Functions |
| 100 void DirViewFrame::ListAll(void) | 62 void DirViewFrame::LoadListImage() |
| 101 { | 63 { |
| 64 wxImageList* imageList = new wxImageList( THUMB_W, THUMB_H ); | |
| 65 m_listCtrl->AssignImageList( imageList, wxIMAGE_LIST_NORMAL ); | |
| 66 | |
| 67 wxArrayString filenames; | |
| 68 unsigned int n = wxDir::GetAllFiles( m_dir, &filenames, wxT("*.jpg"), wxDIR_FILES ); | |
| 69 for ( int i=0; i<n; i++ ) { | |
| 70 wxImage image( filenames[i], wxBITMAP_TYPE_JPEG ); | |
| 71 wxImage thumbnail = image.Scale( THUMB_W, THUMB_H, wxIMAGE_QUALITY_HIGH ); | |
| 72 wxBitmap bmp( thumbnail ); | |
| 73 imageList->Add( bmp ); | |
| 74 m_listCtrl->InsertItem( i, filenames[i], i ); | |
| 75 m_listCtrl->SetItem( i, 0, filenames[i], i ); | |
| 76 } | |
| 102 } | 77 } |
| 78 |
