Mercurial > mercurial > hgweb_searcher2.cgi
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 } |