annotate src/dirview.cpp @ 40:ce5b61376fd0 v2.7 tip

complete dirview.
author pyon@macmini
date Fri, 25 Nov 2011 22:08:47 +0900
parents 044cc2f5af81
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
1 // Filename : dirview.cpp
40
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
2 // Last Change: 25-Nov-2011.
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
3 //
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
4
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
5 #include "dirview.h"
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
6
40
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
7 #define THUMB_W 240
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
8 #define THUMB_H 340
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
9
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
10 // frame constructor
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
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 )
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
12 {
40
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
13 m_parent = parent;
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
14 this->SetBackgroundColour( wxColour(wxT("WHEAT")) );
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
15
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
16 wxBoxSizer* bSizerTop = new wxBoxSizer( wxHORIZONTAL );
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
17
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
18 m_listCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_ICON );
40
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
19 m_listCtrl->SetBackgroundColour(wxT("LIGHT GREY"));
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
20 bSizerTop->Add( m_listCtrl, 1, wxEXPAND|wxALL, 5 );
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
21
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
22 wxBoxSizer* bSizerButton = new wxBoxSizer( wxVERTICAL );
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
23
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
24 m_buttonExplorer = new wxButton( this, ID_BUTTONEXPLR, wxT("フォルダオープン"), wxDefaultPosition, wxDefaultSize, 0 );
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
25 bSizerButton->Add( m_buttonExplorer, 1, wxALL, 5 );
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
26 m_buttonClose = new wxButton( this, ID_BUTTONCLOSE, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 );
40
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
27 bSizerButton->Add( m_buttonClose, 1, wxALIGN_RIGHT|wxALL, 5 );
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
28
40
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
29 bSizerTop->Add( bSizerButton, 0, wxALIGN_BOTTOM|wxALL, 5 );
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
30
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
31 this->SetSizer( bSizerTop );
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
32 this->Layout();
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
33
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
34 this->Centre( wxBOTH );
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
35 }
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
36
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
37 // destructor
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
38 DirViewFrame::~DirViewFrame()
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
39 {
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
40 }
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
41
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
42 // Event Table
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
43 BEGIN_EVENT_TABLE( DirViewFrame, wxFrame )
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
44 EVT_BUTTON( ID_BUTTONEXPLR, DirViewFrame::OnExplorer )
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
45 EVT_BUTTON( ID_BUTTONCLOSE, DirViewFrame::OnClose )
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
46 END_EVENT_TABLE()
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
47
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
48 // Event Handlers
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
49 void DirViewFrame::OnExplorer(wxCommandEvent& WXUNUSED(event))
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
50 {
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
51 wxString execmd = wxT("explorer ") + m_dir; // hhsdir
40
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
52 wxExecute( execmd );
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
53 //wxMessageBox( execmd );
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
54 Close(true);
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
55 }
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
56
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
57 void DirViewFrame::OnClose(wxCommandEvent& WXUNUSED(event))
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
58 {
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
59 Close(true);
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
60 }
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
61
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
62 // Functions
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
63 void DirViewFrame::LoadListImage()
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
64 {
40
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
65 SetTitle( m_dir );
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
66 wxRect rect( m_parent->GetScreenPosition(), wxSize(1800,420) );
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
67 SetSize( rect );
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
68 return;
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
69
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
70 wxImageList* imageList = new wxImageList( THUMB_W, THUMB_H );
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
71 m_listCtrl->AssignImageList( imageList, wxIMAGE_LIST_NORMAL );
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
72
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
73 wxArrayString filenames;
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
74 unsigned int n = wxDir::GetAllFiles( m_dir, &filenames, wxT("*.jpg"), wxDIR_FILES );
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
75 for ( int i=0; i<n; i++ ) {
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
76 wxImage image( filenames[i], wxBITMAP_TYPE_JPEG );
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
77 wxImage thumbnail = image.Scale( THUMB_W, THUMB_H, wxIMAGE_QUALITY_HIGH );
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
78 wxBitmap bmp( thumbnail );
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
79 imageList->Add( bmp );
40
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
80 wxFileName f( filenames[i] );
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
81 m_listCtrl->InsertItem( i, f.GetFullName(), i );
ce5b61376fd0 complete dirview.
pyon@macmini
parents: 38
diff changeset
82 m_listCtrl->SetItem( i, 0, f.GetFullName(), i );
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
83 }
19
868ccd73e238 directory viewer
pyon@macmini
parents:
diff changeset
84 }
38
044cc2f5af81 small fix.
pyon@macmini
parents: 19
diff changeset
85