comparison src/preview.cpp @ 4:d924b09ea2f3

thumbnail by ListCtrl & ImageList.
author pyon@macmini
date Sat, 09 Apr 2011 15:03:03 +0900
parents 75fefb53d983
children 0f566397974e
comparison
equal deleted inserted replaced
3:75fefb53d983 4:d924b09ea2f3
13 13
14 14
15 // constructor 15 // constructor
16 FramePreview::FramePreview( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) 16 FramePreview::FramePreview( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
17 { 17 {
18 this->SetSize( 1600, 900 ); 18 this->SetSize( 1600, 950 );
19 19
20 wxBoxSizer* bSizer; 20 wxBoxSizer* bSizer;
21 bSizer = new wxBoxSizer( wxHORIZONTAL ); 21 bSizer = new wxBoxSizer( wxHORIZONTAL );
22 22
23 // LeftPain ( thumbnail ) 23 // LeftPain ( thumbnail )
24 wxBoxSizer* bSizerL; 24 wxBoxSizer* bSizerL;
25 bSizerL = new wxBoxSizer( wxVERTICAL ); 25 bSizerL = new wxBoxSizer( wxVERTICAL );
26 26
27 m_staticText1 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); 27 m_listCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxSize( 140, 900 ), wxLC_ICON|wxLC_SINGLE_SEL );
28 bSizerL->Add( m_staticText1, 0, wxTOP|wxALIGN_CENTRE, 5 ); 28 bSizerL->Add( m_listCtrl, 1, wxEXPAND|wxALL|wxALIGN_CENTRE, 5 );
29 m_bitmap1 = new wxStaticBitmap( this, ID_IMG1, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); 29 m_imageList = new wxImageList( 105, 148 );
30 bSizerL->Add( m_bitmap1, 0, wxALL|wxALIGN_CENTRE, 5 ); 30 m_listCtrl->AssignImageList( m_imageList, wxIMAGE_LIST_NORMAL );
31 m_staticText2 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
32 bSizerL->Add( m_staticText2, 0, wxTOP|wxALIGN_CENTRE, 5 );
33 m_bitmap2 = new wxStaticBitmap( this, ID_IMG2, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
34 bSizerL->Add( m_bitmap2, 0, wxALL|wxALIGN_CENTRE, 5 );
35 m_staticText3 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
36 bSizerL->Add( m_staticText3, 0, wxTOP|wxALIGN_CENTRE, 5 );
37 m_bitmap3 = new wxStaticBitmap( this, ID_IMG3, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
38 bSizerL->Add( m_bitmap3, 0, wxALL|wxALIGN_CENTRE, 5 );
39 m_staticText4 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
40 bSizerL->Add( m_staticText4, 0, wxTOP|wxALIGN_CENTRE, 5 );
41 m_bitmap4 = new wxStaticBitmap( this, ID_IMG4, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
42 bSizerL->Add( m_bitmap4, 0, wxALL|wxALIGN_CENTRE, 5 );
43 m_staticText5 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
44 bSizerL->Add( m_staticText5, 0, wxTOP|wxALIGN_CENTRE, 5 );
45 m_bitmap5 = new wxStaticBitmap( this, ID_IMG5, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
46 bSizerL->Add( m_bitmap5, 0, wxALL|wxALIGN_CENTRE, 5 );
47 31
48 bSizer->Add( bSizerL, 0, wxEXPAND, 5 ); 32 bSizer->Add( bSizerL, 0, wxEXPAND, 5 );
49 33
50 // MainPain ( preview ) 34 // MainPain ( preview )
51 m_scrolledWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL ); 35 m_scrolledWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
52 m_scrolledWindow->SetScrollRate( 5, 5 ); 36 m_scrolledWindow->SetScrollbars( 10, 10, 83, 117 );
37 //m_scrolledWindow->SetScrollRate( 5, 5 );
38 m_bitmap = new wxStaticBitmap( m_scrolledWindow, ID_IMG, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
53 bSizer->Add( m_scrolledWindow, 1, wxEXPAND | wxALL, 5 ); 39 bSizer->Add( m_scrolledWindow, 1, wxEXPAND | wxALL, 5 );
54 m_bitmap = new wxStaticBitmap( this, ID_IMG, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); 40 //bSizer->Add( m_bitmap, 0, wxALL, 5 );
55 bSizer->Add( m_bitmap, 0, wxALL, 5 );
56 41
57 // RightPain ( manip ) 42 // RightPain ( manip )
58 wxBoxSizer* bSizerR; 43 wxBoxSizer* bSizerR;
59 bSizerR = new wxBoxSizer( wxVERTICAL ); 44 bSizerR = new wxBoxSizer( wxVERTICAL );
60 45
115 wxDir dir(path); 100 wxDir dir(path);
116 wxString file; 101 wxString file;
117 if ( !dir.IsOpened() ) return; 102 if ( !dir.IsOpened() ) return;
118 103
119 bool cout = dir.GetFirst( &file, wxT("*.jpg"), wxDIR_FILES ); 104 bool cout = dir.GetFirst( &file, wxT("*.jpg"), wxDIR_FILES );
120 SetThumbnail( this->m_staticText1, this->m_bitmap1, path, file ); 105 if ( cout ) {
121 dir.GetNext( &file ); 106 wxString mfile = path + wxFILE_SEP_PATH + file;
122 SetThumbnail( this->m_staticText2, this->m_bitmap2, path, file ); 107 wxImage img( mfile, wxBITMAP_TYPE_JPEG );
123 dir.GetNext( &file ); 108 wxBitmap bmp( img.Scale( 640, 877, wxIMAGE_QUALITY_HIGH ) );
124 SetThumbnail( this->m_staticText3, this->m_bitmap3, path, file ); 109 m_bitmap->SetBitmap( bmp);
125 dir.GetNext( &file ); 110 }
126 SetThumbnail( this->m_staticText4, this->m_bitmap4, path, file ); 111 int i=0;
127 dir.GetNext( &file ); 112 while ( cout ) {
128 SetThumbnail( this->m_staticText5, this->m_bitmap5, path, file ); 113 m_listCtrl->InsertItem( i, file, i );
114 file = path + wxFILE_SEP_PATH + file;
115 wxImage img( file, wxBITMAP_TYPE_JPEG );
116 wxBitmap bmp( img.Scale( 105, 148, wxIMAGE_QUALITY_HIGH ) );
117 m_imageList->Add( bmp );
118 i++;
119 cout = dir.GetNext( &file );
120 }
129 121
130 return; 122 return;
131 } 123 }
132 124
133 void FramePreview::SetThumbnail( wxStaticText* st, wxStaticBitmap* sb, wxString path, wxString file )
134 {
135 st->SetLabel(file);
136 file = path + wxFILE_SEP_PATH + file;
137 wxImage img( file, wxBITMAP_TYPE_JPEG );
138 wxBitmap bmp( img.Scale( 105, 148, wxIMAGE_QUALITY_HIGH ) );
139 sb->SetBitmap( bmp );
140 125
141 return;
142 }