comparison src/myframe.cpp @ 5:52697c869ce8

delete move&detect button.
author pyon@macmini
date Tue, 18 Oct 2011 07:53:48 +0900
parents 964129946db6
children 9c85d71cad7c
comparison
equal deleted inserted replaced
4:964129946db6 5:52697c869ce8
1 // Filename : myframe.cpp 1 // Filename : myframe.cpp
2 // Last Change: 16-Oct-2011. 2 // Last Change: 18-Oct-2011.
3 // 3 //
4 4
5 #include "main.h" 5 #include "main.h"
6 #include "myframe.h" 6 #include "myframe.h"
7 #include "param.h"
7 #include "marksheet.h" 8 #include "marksheet.h"
9
10 // resources
11 // the application icon (under Windows and OS/2 it is in resources and even
12 // though we could still include the XPM here it would be unused)
13 #if !defined(__WXMSW__) && !defined(__WXPM__)
14 #include "sample.xpm"
15 #endif
8 16
9 ////////////////////////////////////////////////////////////////////////// 17 //////////////////////////////////////////////////////////////////////////
10 // frame constructor 18 // frame constructor
11 MyFrame::MyFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) 19 MyFrame::MyFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
12 { 20 {
13 this->SetBackgroundColour( wxColour(wxT("WHEAT")) ); 21 this->SetBackgroundColour( wxColour(wxT("WHEAT")) );
14 // set the frame icon 22 // set the frame icon
15 //SetIcon(wxICON(sample)); 23 SetIcon(wxICON(sample));
16 24
17 // メニューバー 25 // メニューバー
18 m_menubarFile = new wxMenuBar(); 26 m_menubarFile = new wxMenuBar();
19 m_menuFile = new wxMenu(); 27 m_menuFile = new wxMenu();
20 wxMenuItem* m_menuItemParam; 28 wxMenuItem* m_menuItemParam;
88 bSizerDist->Add( m_comboBoxCcn, 0, wxALL, 5 ); 96 bSizerDist->Add( m_comboBoxCcn, 0, wxALL, 5 );
89 97
90 m_buttonMkDir = new wxButton( this, ID_BUTTONMKDIR, wxT("適用"), wxDefaultPosition, wxDefaultSize, 0 ); 98 m_buttonMkDir = new wxButton( this, ID_BUTTONMKDIR, wxT("適用"), wxDefaultPosition, wxDefaultSize, 0 );
91 bSizerDist->Add( m_buttonMkDir, 0, wxALL, 5 ); 99 bSizerDist->Add( m_buttonMkDir, 0, wxALL, 5 );
92 100
93
94 bSizerTop->Add( bSizerDist, 0, wxEXPAND, 5 ); 101 bSizerTop->Add( bSizerDist, 0, wxEXPAND, 5 );
95 102
96 wxBoxSizer* bSizerManip = new wxBoxSizer( wxHORIZONTAL ); 103 wxBoxSizer* bSizerManip = new wxBoxSizer( wxHORIZONTAL );
97 104
98 wxBoxSizer* bSizerGuess = new wxBoxSizer( wxVERTICAL ); 105 wxBoxSizer* bSizerGuess = new wxBoxSizer( wxVERTICAL );
120 bSizerManip->Add( bSizerGuess, 0, wxEXPAND, 5 ); 127 bSizerManip->Add( bSizerGuess, 0, wxEXPAND, 5 );
121 128
122 m_listCtrlView = new wxListCtrl( this, ID_LISTCTRLVIEW, wxDefaultPosition, wxDefaultSize, wxLC_ICON ); 129 m_listCtrlView = new wxListCtrl( this, ID_LISTCTRLVIEW, wxDefaultPosition, wxDefaultSize, wxLC_ICON );
123 m_listCtrlView->SetBackgroundColour(wxT("LIGHT GREY")); 130 m_listCtrlView->SetBackgroundColour(wxT("LIGHT GREY"));
124 bSizerManip->Add( m_listCtrlView, 1, wxALL|wxEXPAND, 5 ); 131 bSizerManip->Add( m_listCtrlView, 1, wxALL|wxEXPAND, 5 );
125 m_imageList = new wxImageList( 189, 267 ); 132 m_imageList = new wxImageList( 160, 226 );
126 m_listCtrlView->AssignImageList( m_imageList, wxIMAGE_LIST_NORMAL ); 133 m_listCtrlView->AssignImageList( m_imageList, wxIMAGE_LIST_NORMAL );
127 134
128 wxBoxSizer* bSizerButton = new wxBoxSizer( wxVERTICAL ); 135 wxBoxSizer* bSizerButton = new wxBoxSizer( wxVERTICAL );
129 136
130 m_buttonDetect = new wxButton( this, ID_BUTTONDETECT, wxT("検知"), wxDefaultPosition, wxDefaultSize, 0 ); 137 m_buttonDetect = new wxButton( this, ID_BUTTONDETECT, wxT("検知"), wxDefaultPosition, wxDefaultSize, 0 );
131 bSizerButton->Add( m_buttonDetect, 0, wxALL, 5 ); 138 bSizerButton->Add( m_buttonDetect, 0, wxALL, 5 );
132 m_buttonMove = new wxButton( this, ID_BUTTONMOVE, wxT("移動"), wxDefaultPosition, wxDefaultSize, 0 ); 139 m_buttonMove = new wxButton( this, ID_BUTTONMOVE, wxT("移動"), wxDefaultPosition, wxDefaultSize, 0 );
133 bSizerButton->Add( m_buttonMove, 0, wxALL, 5 ); 140 bSizerButton->Add( m_buttonMove, 0, wxALL, 5 );
134 m_buttonMove->Enable(false); 141 m_buttonMove->Enable(false);
135 m_buttonMD = new wxButton( this, ID_BUTTONMD, wxT("移動&検知"), wxDefaultPosition, wxDefaultSize, 0 ); 142
136 bSizerButton->Add( m_buttonMD, 0, wxALL, 5 );
137 m_buttonMD->Enable(false);
138 m_buttonDel = new wxButton( this, ID_BUTTONDEL, wxT("削除"), wxDefaultPosition, wxDefaultSize, 0 ); 143 m_buttonDel = new wxButton( this, ID_BUTTONDEL, wxT("削除"), wxDefaultPosition, wxDefaultSize, 0 );
139 bSizerButton->Add( m_buttonDel, 0, wxALL, 5 ); 144 bSizerButton->Add( m_buttonDel, 0, wxALL, 5 );
140 m_buttonUndo = new wxButton( this, ID_BUTTONUNDO, wxT("戻す"), wxDefaultPosition, wxDefaultSize, 0 ); 145 m_buttonUndo = new wxButton( this, ID_BUTTONUNDO, wxT("戻す"), wxDefaultPosition, wxDefaultSize, 0 );
141 bSizerButton->Add( m_buttonUndo, 0, wxALL, 5 ); 146 bSizerButton->Add( m_buttonUndo, 0, wxALL, 5 );
142 m_buttonUndo->Enable(false); 147 m_buttonUndo->Enable(false);
170 EVT_MENU( ID_MENUITEMAPPDIR, MyFrame::OnOpenAppDir ) 175 EVT_MENU( ID_MENUITEMAPPDIR, MyFrame::OnOpenAppDir )
171 EVT_MENU( wxID_EXIT, MyFrame::OnQuit ) 176 EVT_MENU( wxID_EXIT, MyFrame::OnQuit )
172 EVT_BUTTON( ID_BUTTONMKDIR, MyFrame::OnMakeDir ) 177 EVT_BUTTON( ID_BUTTONMKDIR, MyFrame::OnMakeDir )
173 EVT_BUTTON( ID_BUTTONDETECT, MyFrame::OnDetect ) 178 EVT_BUTTON( ID_BUTTONDETECT, MyFrame::OnDetect )
174 EVT_BUTTON( ID_BUTTONMOVE, MyFrame::OnMove ) 179 EVT_BUTTON( ID_BUTTONMOVE, MyFrame::OnMove )
175 EVT_BUTTON( ID_BUTTONMD, MyFrame::OnMoveAndDetect )
176 EVT_BUTTON( ID_BUTTONDEL, MyFrame::OnDelete ) 180 EVT_BUTTON( ID_BUTTONDEL, MyFrame::OnDelete )
177 EVT_BUTTON( ID_BUTTONUNDO, MyFrame::OnUndo ) 181 EVT_BUTTON( ID_BUTTONUNDO, MyFrame::OnUndo )
178 EVT_LIST_ITEM_SELECTED( ID_LISTCTRLVIEW, MyFrame::GetImageInfo ) 182 EVT_LIST_ITEM_SELECTED( ID_LISTCTRLVIEW, MyFrame::GetImageInfo )
179 EVT_LIST_ITEM_ACTIVATED( ID_LISTCTRLVIEW, MyFrame::ViewLarge ) 183 EVT_LIST_ITEM_ACTIVATED( ID_LISTCTRLVIEW, MyFrame::ViewLarge )
180 EVT_CLOSE( MyFrame::SaveConfig ) 184 EVT_CLOSE( MyFrame::SaveConfig )
205 d.Append( tkz.GetNextToken() ); 209 d.Append( tkz.GetNextToken() );
206 d.Append( wxFILE_SEP_PATH ); 210 d.Append( wxFILE_SEP_PATH );
207 if ( !wxDirExists( d ) ) wxMkdir( d ); 211 if ( !wxDirExists( d ) ) wxMkdir( d );
208 } 212 }
209 m_buttonMove->Enable(true); 213 m_buttonMove->Enable(true);
210 m_buttonMD->Enable(true);
211 214
212 wxMessageBox(wxT("移動先フォルダ準備完了")); 215 wxMessageBox(wxT("移動先フォルダ準備完了"));
213 wxString cmd = wxT("explorer ") + to; 216 wxString cmd = wxT("explorer ") + to;
214 wxExecute( cmd ); 217 wxExecute( cmd );
215 } 218 }
216
217 /* 移動 */
218 void MyFrame::OnMove(wxCommandEvent& WXUNUSED(event))
219 {
220 MoveImage();
221 m_buttonUndo->Enable(true);
222 }
223 /* 検知 */ 219 /* 検知 */
224 void MyFrame::OnDetect(wxCommandEvent& WXUNUSED(event)) 220 void MyFrame::OnDetect(wxCommandEvent& WXUNUSED(event))
225 { 221 {
226 ReadyImage(); 222 ReadyImage();
227 } 223 }
228 /* 移動し検知 */ 224
229 void MyFrame::OnMoveAndDetect(wxCommandEvent& WXUNUSED(event))
230 {
231 MoveImage();
232 ReadyImage();
233 }
234 /* 選択したファイルを移動 */ 225 /* 選択したファイルを移動 */
235 void MyFrame::MoveImage() 226 void MyFrame::OnMove(wxCommandEvent& WXUNUSED(event))
236 { 227 {
237 m_undo.Clear(); 228 m_undo.Clear();
238 wxString workdir = m_dirPickerWork->GetPath(); 229 wxString workdir = m_dirPickerWork->GetPath();
239 wxString distdir = m_textCtrlDist->GetValue(); 230 wxString distdir = m_textCtrlDist->GetValue();
240 long item = -1; 231 long item = -1;
241 for ( ;; ) { 232 for ( ;; ) {
242 item = m_listCtrlView->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); 233 item = m_listCtrlView->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
243 if ( item == -1 ) break; 234 if ( item == -1 ) break;
244 wxString file = m_listCtrlView->GetItemText( item ); 235 wxString hhsno = m_textCtrlGuess->GetValue();
236 if ( !wxDirExists( distdir + wxFILE_SEP_PATH + hhsno ) ) wxMkdir( distdir + wxFILE_SEP_PATH + hhsno );
237
238 wxString file = m_listCtrlView->GetItemText( item );
245 wxString from = workdir + wxFILE_SEP_PATH + file; 239 wxString from = workdir + wxFILE_SEP_PATH + file;
246 wxString to = distdir + wxFILE_SEP_PATH + file; 240 wxString to = distdir + wxFILE_SEP_PATH + hhsno + wxFILE_SEP_PATH + file;
247 wxRenameFile( from, to, true ); 241 wxRenameFile( from, to, true );
248 m_undo.Insert( wxT("mv ") + to + wxT(" ") + from, 0 ); 242 m_undo.Insert( wxT("move ") + to + wxT(" ") + from, 0 );
249 } 243 }
250 ReadyImage(); 244 ReadyImage();
251 m_buttonUndo->Enable(true); 245 m_buttonUndo->Enable(true);
252 } 246 }
253 /* 選択したファイルを削除 */ 247 /* 選択したファイルを削除 */
262 if ( item == -1 ) break; 256 if ( item == -1 ) break;
263 wxString file = m_listCtrlView->GetItemText( item ); 257 wxString file = m_listCtrlView->GetItemText( item );
264 wxString from = workdir + wxFILE_SEP_PATH + file; 258 wxString from = workdir + wxFILE_SEP_PATH + file;
265 wxString to = trash + wxFILE_SEP_PATH + file; 259 wxString to = trash + wxFILE_SEP_PATH + file;
266 wxRenameFile( from, to, true ); 260 wxRenameFile( from, to, true );
267 m_undo.Insert( wxT("mv ") + to + wxT(" ") + from, 0 ); 261 m_undo.Insert( wxT("move ") + to + wxT(" ") + from, 0 );
268 } 262 }
269 ReadyImage(); 263 ReadyImage();
270 m_buttonUndo->Enable(true); 264 m_buttonUndo->Enable(true);
271 } 265 }
272 /* アンドゥ */ 266 /* アンドゥ */
310 304
311 m_listCtrlView->InsertItem( i, filename ); 305 m_listCtrlView->InsertItem( i, filename );
312 m_listCtrlView->SetItem( i, 0, filename, i ); 306 m_listCtrlView->SetItem( i, 0, filename, i );
313 307
314 wxImage image( imagefile, wxBITMAP_TYPE_JPEG ); 308 wxImage image( imagefile, wxBITMAP_TYPE_JPEG );
315 wxBitmap bmp( image.Scale( 189, 267, wxIMAGE_QUALITY_HIGH ) ); 309 wxBitmap bmp( image.Scale( 160, 226, wxIMAGE_QUALITY_HIGH ) );
316 m_imageList->Add( bmp ); 310 m_imageList->Add( bmp );
317 311
318 if ( i == 0 ) { 312 if ( i == 0 ) {
319 IsMarksheet( imagefile, &b, &l ); 313 IsMarksheet( imagefile, &b, &l );
320 first = imagefile; 314 first = imagefile;
388 } 382 }
389 383
390 /* パラメータダイアログ */ 384 /* パラメータダイアログ */
391 void MyFrame::OnParam(wxCommandEvent& WXUNUSED(event)) 385 void MyFrame::OnParam(wxCommandEvent& WXUNUSED(event))
392 { 386 {
387 ParamDialog* pd = new ParamDialog( NULL, wxID_ANY, wxT("Setting Parameters") );
388 if ( pd->ShowModal() == wxID_OK ) {
389 wxGetApp().lmin;
390 wxGetApp().lmax;
391 wxGetApp().zmin;
392 wxGetApp().zmax;
393 }
394 pd->Destroy();
393 } 395 }
394 396
395 // 以下,定型もの 397 // 以下,定型もの
396 /* アプリフォルダを開く */ 398 /* アプリフォルダを開く */
397 void MyFrame::OnOpenAppDir(wxCommandEvent& WXUNUSED(event)) 399 void MyFrame::OnOpenAppDir(wxCommandEvent& WXUNUSED(event))
398 { 400 {
399 wxString appdir = m_dirPickerWork->GetPath(); 401 wxString appdir = wxGetCwd();
400 wxString execmd = wxT("explorer ") + appdir; 402 wxString execmd = wxT("explorer ") + appdir;
401 wxExecute( execmd ); 403 wxExecute( execmd );
402 } 404 }
403 405
404 /* サイズ変更 */ 406 /* サイズ変更 */