1
|
1 // Filename : preview.cpp
|
3
|
2 // Last Change: 09-Apr-2011.
|
1
|
3 //
|
|
4
|
|
5 #include "preview.h"
|
|
6
|
|
7 // for all others, include the necessary headers (this file is usually all you
|
|
8 // need because it includes almost all "standard" wxWidgets headers)
|
|
9 #ifndef WX_PRECOMP
|
|
10 #include "wx/utils.h"
|
3
|
11 #include "wx/dir.h"
|
1
|
12 #endif
|
|
13
|
|
14
|
3
|
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 )
|
1
|
17 {
|
3
|
18 this->SetSize( 1600, 900 );
|
1
|
19
|
|
20 wxBoxSizer* bSizer;
|
|
21 bSizer = new wxBoxSizer( wxHORIZONTAL );
|
|
22
|
3
|
23 // LeftPain ( thumbnail )
|
1
|
24 wxBoxSizer* bSizerL;
|
|
25 bSizerL = new wxBoxSizer( wxVERTICAL );
|
|
26
|
3
|
27 m_staticText1 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
28 bSizerL->Add( m_staticText1, 0, wxTOP|wxALIGN_CENTRE, 5 );
|
1
|
29 m_bitmap1 = new wxStaticBitmap( this, ID_IMG1, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
3
|
30 bSizerL->Add( m_bitmap1, 0, wxALL|wxALIGN_CENTRE, 5 );
|
|
31 m_staticText2 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
32 bSizerL->Add( m_staticText2, 0, wxTOP|wxALIGN_CENTRE, 5 );
|
1
|
33 m_bitmap2 = new wxStaticBitmap( this, ID_IMG2, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
3
|
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 );
|
1
|
37 m_bitmap3 = new wxStaticBitmap( this, ID_IMG3, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
3
|
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 );
|
1
|
41 m_bitmap4 = new wxStaticBitmap( this, ID_IMG4, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
3
|
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 );
|
1
|
45 m_bitmap5 = new wxStaticBitmap( this, ID_IMG5, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
3
|
46 bSizerL->Add( m_bitmap5, 0, wxALL|wxALIGN_CENTRE, 5 );
|
1
|
47
|
|
48 bSizer->Add( bSizerL, 0, wxEXPAND, 5 );
|
|
49
|
3
|
50 // MainPain ( preview )
|
1
|
51 m_scrolledWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
|
|
52 m_scrolledWindow->SetScrollRate( 5, 5 );
|
|
53 bSizer->Add( m_scrolledWindow, 1, wxEXPAND | wxALL, 5 );
|
|
54 m_bitmap = new wxStaticBitmap( this, ID_IMG, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
|
55 bSizer->Add( m_bitmap, 0, wxALL, 5 );
|
|
56
|
3
|
57 // RightPain ( manip )
|
1
|
58 wxBoxSizer* bSizerR;
|
|
59 bSizerR = new wxBoxSizer( wxVERTICAL );
|
|
60
|
|
61 m_staticText = new wxStaticText( this, wxID_ANY, wxT("倍率"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
62 bSizerR->Add( m_staticText, 0, wxALL, 5 );
|
|
63 m_textCtrl = new wxTextCtrl( this, ID_MGNFY, wxT("100%"), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
|
|
64 m_textCtrl->SetMaxLength( 4 );
|
|
65 bSizerR->Add( m_textCtrl, 0, wxALL, 5 );
|
|
66 m_staticTextLarge = new wxStaticText( this, wxID_ANY, wxT("[+]"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
67 bSizerR->Add( m_staticTextLarge, 0, wxALL, 5 );
|
|
68 m_slider = new wxSlider( this, ID_SLDR, 0, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_LEFT|wxSL_VERTICAL );
|
|
69 bSizerR->Add( m_slider, 0, wxALL, 5 );
|
|
70 m_staticTextSmall = new wxStaticText( this, wxID_ANY, wxT("[-]"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
71 bSizerR->Add( m_staticTextSmall, 0, wxALL, 5 );
|
|
72
|
|
73 bSizerR->Add( 0, 0, 1, wxEXPAND, 5 );
|
|
74
|
|
75 m_buttonPrint = new wxButton( this, ID_PRINT, wxT("印刷"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
76 bSizerR->Add( m_buttonPrint, 0, wxALL, 5 );
|
|
77 m_buttonPrintAll = new wxButton( this, ID_PRTALL, wxT("一括印刷"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
78 bSizerR->Add( m_buttonPrintAll, 0, wxALL, 5 );
|
|
79 m_buttonClose = new wxButton( this, ID_CLSFRM, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
80 bSizerR->Add( m_buttonClose, 0, wxALL, 5 );
|
|
81
|
|
82 bSizer->Add( bSizerR, 0, wxEXPAND, 5 );
|
|
83
|
|
84 this->SetSizer( bSizer );
|
|
85 this->Layout();
|
|
86
|
|
87 this->Centre( wxBOTH );
|
3
|
88
|
|
89 LoadImages( wxEmptyString );
|
1
|
90 }
|
|
91
|
3
|
92 // destructor
|
|
93 FramePreview::~FramePreview()
|
1
|
94 {
|
|
95 }
|
|
96
|
3
|
97 // Event Table
|
|
98 BEGIN_EVENT_TABLE( FramePreview, wxFrame )
|
|
99 //EVT_BUTTON( ID_PRINT, FramePreview::PrintImage )
|
|
100 //EVT_BUTTON( ID_PRTALL, FramePreview::PrintAllImages )
|
|
101 EVT_BUTTON( ID_CLSFRM, FramePreview::CloseFrame )
|
|
102 END_EVENT_TABLE()
|
|
103
|
|
104 // Event Handlers
|
|
105 void FramePreview::CloseFrame(wxCommandEvent& WXUNUSED(event))
|
|
106 {
|
|
107 this->Close();
|
|
108 return;
|
|
109 }
|
|
110
|
|
111 // Functions
|
|
112 void FramePreview::LoadImages(wxString path)
|
|
113 {
|
|
114 path = wxGetCwd() + wxT("/testdrive"); // now test!
|
|
115 wxDir dir(path);
|
|
116 wxString file;
|
|
117 if ( !dir.IsOpened() ) return;
|
|
118
|
|
119 bool cout = dir.GetFirst( &file, wxT("*.jpg"), wxDIR_FILES );
|
|
120 SetThumbnail( this->m_staticText1, this->m_bitmap1, path, file );
|
|
121 dir.GetNext( &file );
|
|
122 SetThumbnail( this->m_staticText2, this->m_bitmap2, path, file );
|
|
123 dir.GetNext( &file );
|
|
124 SetThumbnail( this->m_staticText3, this->m_bitmap3, path, file );
|
|
125 dir.GetNext( &file );
|
|
126 SetThumbnail( this->m_staticText4, this->m_bitmap4, path, file );
|
|
127 dir.GetNext( &file );
|
|
128 SetThumbnail( this->m_staticText5, this->m_bitmap5, path, file );
|
|
129
|
|
130 return;
|
|
131 }
|
|
132
|
|
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
|
|
141 return;
|
|
142 }
|