comparison src/myframe.cpp @ 3:870860d435a1

auto detect done.
author pyon@macmini
date Sun, 16 Oct 2011 00:18:18 +0900
parents e4ba3cc9b4b1
children 964129946db6
comparison
equal deleted inserted replaced
2:e4ba3cc9b4b1 3:870860d435a1
1 // Filename : myframe.cpp 1 // Filename : myframe.cpp
2 // Last Change: 15-Oct-2011. 2 // Last Change: 16-Oct-2011.
3 // 3 //
4 4
5 #include "main.h" 5 #include "main.h"
6 #include "myframe.h" 6 #include "myframe.h"
7 #include "marksheet.h" 7 #include "marksheet.h"
140 140
141 this->SetSizer( bSizerTop ); 141 this->SetSizer( bSizerTop );
142 this->Layout(); 142 this->Layout();
143 143
144 // ステータスバー 144 // ステータスバー
145 int widths[] = { -1, 150, 200, 120 }; 145 int widths[] = { 150, 250, -1, 120 };
146 m_statusBar = this->CreateStatusBar( WXSIZEOF(widths), wxST_SIZEGRIP ); 146 m_statusBar = this->CreateStatusBar( WXSIZEOF(widths), wxST_SIZEGRIP );
147 m_statusBar->SetStatusWidths( WXSIZEOF(widths), widths ); 147 m_statusBar->SetStatusWidths( WXSIZEOF(widths), widths );
148 m_statusBar->SetStatusText( wxEmptyString, 0 ); 148 m_statusBar->SetStatusText( wxEmptyString, 0 );
149 149
150 this->Centre( wxBOTH ); 150 this->Centre( wxBOTH );
160 EVT_SIZE( MyFrame::OnWinSize ) 160 EVT_SIZE( MyFrame::OnWinSize )
161 EVT_MOVE( MyFrame::OnWinMove ) 161 EVT_MOVE( MyFrame::OnWinMove )
162 EVT_MENU( ID_MENUITEMPARAM, MyFrame::OnParam ) 162 EVT_MENU( ID_MENUITEMPARAM, MyFrame::OnParam )
163 EVT_MENU( ID_MENUITEMAPPDIR, MyFrame::OnOpenAppDir ) 163 EVT_MENU( ID_MENUITEMAPPDIR, MyFrame::OnOpenAppDir )
164 EVT_MENU( wxID_EXIT, MyFrame::OnQuit ) 164 EVT_MENU( wxID_EXIT, MyFrame::OnQuit )
165 EVT_BUTTON( ID_BUTTONMKDIR, MyFrame::OnMakeDir )
165 EVT_BUTTON( ID_BUTTONDETECT, MyFrame::OnDetect ) 166 EVT_BUTTON( ID_BUTTONDETECT, MyFrame::OnDetect )
166 EVT_BUTTON( ID_BUTTONMOVE, MyFrame::OnMove ) 167 EVT_BUTTON( ID_BUTTONMOVE, MyFrame::OnMove )
167 EVT_BUTTON( ID_BUTTONMD, MyFrame::OnMoveAndDetect ) 168 EVT_BUTTON( ID_BUTTONMD, MyFrame::OnMoveAndDetect )
168 //EVT_BUTTON( ID_BUTTONDEL, MyFrame::Delete ) 169 //EVT_BUTTON( ID_BUTTONDEL, MyFrame::Delete )
169 //EVT_BUTTON( ID_BUTTONUNDO, MyFrame::Undo ) 170 //EVT_BUTTON( ID_BUTTONUNDO, MyFrame::Undo )
170 //EVT_LIST_ITEM_MIDDLE_CLICK( ID_LISTCTRLVIEW, MyFrame::ToggleSelect ) 171 EVT_LIST_ITEM_SELECTED( ID_LISTCTRLVIEW, MyFrame::GetImageInfo )
171 EVT_LIST_ITEM_RIGHT_CLICK( ID_LISTCTRLVIEW, MyFrame::ToggleSelect ) 172 EVT_LIST_ITEM_ACTIVATED( ID_LISTCTRLVIEW, MyFrame::ViewLarge )
172 EVT_LIST_ITEM_ACTIVATED( ID_LISTCTRLVIEW, MyFrame::ViewLarge )
173 EVT_CLOSE( MyFrame::SaveConfig ) 173 EVT_CLOSE( MyFrame::SaveConfig )
174 END_EVENT_TABLE() 174 END_EVENT_TABLE()
175 175
176 // Event Handlers 176 // Event Handlers
177 /* 移動先フォルダ作成 */ 177 /* 移動先フォルダ作成 */
178 void MyFrame::MakeDir(wxCommandEvent& WXUNUSED(event)) 178 void MyFrame::OnMakeDir(wxCommandEvent& WXUNUSED(event))
179 { 179 {
180 wxString to; 180 wxString to;
181 to.Append( m_comboBoxDrive->GetValue() ); 181 to.Append( m_comboBoxDrive->GetValue() );
182 to.Append( wxFILE_SEP_PATH ); 182 to.Append( wxFILE_SEP_PATH );
183 wxDateTime dt = m_datePicker->GetValue(); 183 wxDateTime dt = m_datePicker->GetValue();
237 m_imageList->RemoveAll(); 237 m_imageList->RemoveAll();
238 wxListItem item; 238 wxListItem item;
239 wxString first; 239 wxString first;
240 float b; long l; 240 float b; long l;
241 while ( cout ) { 241 while ( cout ) {
242 if ( i > 7 ) break;
243
244 wxString imagefile = workdir + wxFILE_SEP_PATH + filename; 242 wxString imagefile = workdir + wxFILE_SEP_PATH + filename;
243
244 m_listCtrlView->InsertItem( i, filename );
245 m_listCtrlView->SetItem( i, 0, filename, i );
246
247 wxImage image( imagefile, wxBITMAP_TYPE_JPEG );
248 wxBitmap bmp( image.Scale( 189, 267, wxIMAGE_QUALITY_HIGH ) );
249 m_imageList->Add( bmp );
250
245 if ( i == 0 ) { 251 if ( i == 0 ) {
246 IsMarksheet( imagefile, &b, &l ); 252 IsMarksheet( imagefile, &b, &l );
247 first = imagefile; 253 first = imagefile;
248 SetStatusText( wxString::Format(wxT("z = %f, l = %d"),b,l), 2 ); 254 SetStatusText( wxString::Format(wxT("1st image : z = %f, l = %d"),b,l), 1 );
249 } 255 }
250 if ( i > 1 && IsMarksheet( imagefile, &b, &l ) ) cout = false; 256 else {
251 257 if ( i > 7 || IsMarksheet( imagefile, &b, &l ) ) {
252 item.SetId(i); 258 break;
253 item.SetMask(wxLIST_MASK_STATE|wxLIST_MASK_TEXT|wxLIST_MASK_IMAGE); 259 }
254 item.SetStateMask(wxLIST_STATE_SELECTED); 260 }
255 item.SetState(wxLIST_STATE_SELECTED); 261 m_listCtrlView->SetItemState( i, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
256 item.SetImage(i); 262
257 item.SetText(filename);
258 m_listCtrlView->InsertItem( item );
259 m_listCtrlView->SetItem( item );
260
261 wxImage image( imagefile, wxBITMAP_TYPE_JPEG );
262 wxBitmap bmp( image.Scale( 189, 267, wxIMAGE_QUALITY_HIGH ) );
263 m_imageList->Add( bmp );
264 // write log 263 // write log
265 i++; 264 i++;
266 cout = dir.GetNext( &filename ); 265 cout = dir.GetNext( &filename );
267 } 266 }
268 267
302 wxRenameFile( from, to, false ); 301 wxRenameFile( from, to, false );
303 */ 302 */
304 } 303 }
305 304
306 /* 画像を選択 */ 305 /* 画像を選択 */
307 void MyFrame::ToggleSelect(wxListEvent& event) 306 void MyFrame::GetImageInfo(wxListEvent& event)
308 { 307 {
309 SetStatusText( wxEmptyString, 1 ); 308 SetStatusText( wxEmptyString, 2 );
310 int i = event.GetIndex(); 309 int i = event.GetIndex();
311 wxListItem item; 310
312 item.SetId(i); 311 wxString filename = event.GetText();
313 312 wxString workdir = m_dirPickerWork->GetPath();
314 //item.SetMask(wxLIST_MASK_STATE); 313 wxString imagefile = workdir + wxFILE_SEP_PATH + filename;
315 if ( item.GetState() & wxLIST_STATE_SELECTED ) { 314 float b; long l;
316 wxMessageBox(wxT("a")); 315 wxString msg;
317 item.SetState(~wxLIST_STATE_SELECTED); 316 if ( IsMarksheet( imagefile, &b, &l ) ) {
318 } 317 msg = wxT("Success detection");
319 else { 318 }
320 item.SetStateMask(wxLIST_STATE_SELECTED); 319 SetStatusText( wxString::Format(wxT("selected image : z = %f, l = %d ...")+msg, b, l ), 2 );
321 wxString filename = event.GetText();
322 wxString workdir = m_dirPickerWork->GetPath();
323 wxString imagefile = workdir + wxFILE_SEP_PATH + filename;
324 float b; long l;
325 if ( IsMarksheet( imagefile, &b, &l ) ) {
326 SetStatusText( wxString::Format(wxT("z = %f, l = %d"),b,l), 1 );
327 }
328 }
329 m_listCtrlView->SetItem( item );
330 } 320 }
331 321
332 /* 画像のスクリーン表示*/ 322 /* 画像のスクリーン表示*/
333 void MyFrame::ViewLarge(wxListEvent& event) 323 void MyFrame::ViewLarge(wxListEvent& event)
334 { 324 {