diff src/param.cpp @ 4:fdba695b99f1

More fast ( read from DB ). Improve the precision of marksheet judgement.
author pyon@macmini
date Wed, 11 Sep 2013 19:09:14 +0900
parents
children bc2e2b304095
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/param.cpp	Wed Sep 11 19:09:14 2013 +0900
@@ -0,0 +1,296 @@
+// Filename   : param.cpp
+// Last Change: 11-Sep-2013.
+//
+
+#include "param.h"
+
+ParamDialog::ParamDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) 
+    : wxDialog( parent, id, title, pos, size, style )
+{
+	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+	
+	wxBoxSizer* bSizerTop = new wxBoxSizer( wxVERTICAL );
+
+	m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+	m_panel      = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxSize( 310, -1 ), wxTAB_TRAVERSAL );
+	m_panelold   = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+	m_paneljudge = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+	
+    // Tab 1 : 現マークシートマスクパネル
+	wxFlexGridSizer* fgSizer = new wxFlexGridSizer( 0, 5, 0, 0 );
+	fgSizer->SetFlexibleDirection( wxBOTH );
+	fgSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+	
+	m_staticTextDummy0 = new wxStaticText( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizer->Add( m_staticTextDummy0, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_staticTextX = new wxStaticText( m_panel, wxID_ANY, wxT("(x)"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizer->Add( m_staticTextX, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+	
+	m_staticTextY = new wxStaticText( m_panel, wxID_ANY, wxT("(y)"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizer->Add( m_staticTextY, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+	
+	m_staticTextW = new wxStaticText( m_panel, wxID_ANY, wxT("(w)"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizer->Add( m_staticTextW, 0, wxALL|wxALIGN_BOTTOM|wxALIGN_CENTER_HORIZONTAL, 5 );
+	
+	m_staticTextH = new wxStaticText( m_panel, wxID_ANY, wxT("(h)"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizer->Add( m_staticTextH, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+	
+	m_staticTextMask1 = new wxStaticText( m_panel, wxID_ANY, wxT("マスク1"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizer->Add( m_staticTextMask1, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM1x = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM1x, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM1y = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM1y, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_textCtrlM1w = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM1w, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM1h = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM1h, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_staticTextMask2 = new wxStaticText( m_panel, wxID_ANY, wxT("マスク2"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizer->Add( m_staticTextMask2, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM2x = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM2x, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM2y = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM2y, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_textCtrlM2w = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM2w, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM2h = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM2h, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_staticTextMask3 = new wxStaticText( m_panel, wxID_ANY, wxT("マスク3"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizer->Add( m_staticTextMask3, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM3x = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM3x, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM3y = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM3y, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_textCtrlM3w = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM3w, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM3h = new wxTextCtrl( m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizer->Add( m_textCtrlM3h, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_panel->SetSizer( fgSizer );
+	m_panel->Layout();
+	fgSizer->Fit( m_panel );
+	m_notebook->AddPage( m_panel, wxT("現マークシート"), false );
+
+    // Tab 2 : 旧マークシートマスクパネル
+	wxFlexGridSizer* fgSizerOld = new wxFlexGridSizer( 0, 5, 0, 0 );
+	fgSizerOld->SetFlexibleDirection( wxBOTH );
+	fgSizerOld->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+	
+	m_staticTextDummy0Old = new wxStaticText( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizerOld->Add( m_staticTextDummy0Old, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_staticTextXOld = new wxStaticText( m_panelold, wxID_ANY, wxT("(x)"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizerOld->Add( m_staticTextXOld, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+	
+	m_staticTextYOld = new wxStaticText( m_panelold, wxID_ANY, wxT("(y)"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizerOld->Add( m_staticTextYOld, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+	
+	m_staticTextWOld = new wxStaticText( m_panelold, wxID_ANY, wxT("(w)"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizerOld->Add( m_staticTextWOld, 0, wxALL|wxALIGN_BOTTOM|wxALIGN_CENTER_HORIZONTAL, 5 );
+	
+	m_staticTextHOld = new wxStaticText( m_panelold, wxID_ANY, wxT("(h)"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizerOld->Add( m_staticTextHOld, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+	
+	m_staticTextMask1Old = new wxStaticText( m_panelold, wxID_ANY, wxT("マスク1"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizerOld->Add( m_staticTextMask1Old, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM1xOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM1xOld, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM1yOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM1yOld, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_textCtrlM1wOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM1wOld, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM1hOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM1hOld, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_staticTextMask2Old = new wxStaticText( m_panelold, wxID_ANY, wxT("マスク2"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizerOld->Add( m_staticTextMask2Old, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM2xOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM2xOld, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM2yOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM2yOld, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_textCtrlM2wOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM2wOld, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM2hOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM2hOld, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_staticTextMask3Old = new wxStaticText( m_panelold, wxID_ANY, wxT("マスク3"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizerOld->Add( m_staticTextMask3Old, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM3xOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM3xOld, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM3yOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM3yOld, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_textCtrlM3wOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM3wOld, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+	
+	m_textCtrlM3hOld = new wxTextCtrl( m_panelold, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60, -1 ), wxTE_RIGHT );
+	fgSizerOld->Add( m_textCtrlM3hOld, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_panelold->SetSizer( fgSizerOld );
+	m_panelold->Layout();
+	fgSizerOld->Fit( m_panelold );
+	m_notebook->AddPage( m_panelold, wxT("旧マークシート"), false );
+
+    // Tab 3 : マークシート判定パネル
+	wxGridSizer* gSizer = new wxGridSizer( 2, 3, 0, 0 );
+	
+	m_textCtrlLMin = new wxTextCtrl( m_paneljudge, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_RIGHT );
+	gSizer->Add( m_textCtrlLMin, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxLEFT, 20 );
+	
+	m_staticTextLen = new wxStaticText( m_paneljudge, wxID_ANY, wxT("< レングス(l) <"), wxDefaultPosition, wxDefaultSize, 0 );
+	gSizer->Add( m_staticTextLen, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+	
+	m_textCtrlLMax = new wxTextCtrl( m_paneljudge, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_RIGHT );
+	gSizer->Add( m_textCtrlLMax, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 20 );
+	
+	m_textCtrlZMin = new wxTextCtrl( m_paneljudge, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_RIGHT );
+	gSizer->Add( m_textCtrlZMin, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT, 20 );
+	
+	m_staticTextZ = new wxStaticText( m_paneljudge, wxID_ANY, wxT("< 黒色比率(z) <"), wxDefaultPosition, wxDefaultSize, 0 );
+	gSizer->Add( m_staticTextZ, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+	
+	m_textCtrlZmax = new wxTextCtrl( m_paneljudge, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_RIGHT );
+	gSizer->Add( m_textCtrlZmax, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT, 20 );
+
+	bSizerTop->Add( m_notebook, 1, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+	m_paneljudge->SetSizer( gSizer );
+	m_paneljudge->Layout();
+	gSizer->Fit( m_paneljudge );
+	m_notebook->AddPage( m_paneljudge, wxT("マークシート判定"), false );
+	
+    //
+	wxBoxSizer* bSizerBtn = new wxBoxSizer( wxHORIZONTAL );
+	
+	m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("キャンセル"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_buttonCancel->SetDefault(); 
+	bSizerBtn->Add( m_buttonCancel, 0, wxALL, 5 );
+	
+	m_buttonSet = new wxButton( this, ID_SETPARAM, wxT("セット"), wxDefaultPosition, wxDefaultSize, 0 );
+	bSizerBtn->Add( m_buttonSet, 0, wxALL, 5 );
+	
+	bSizerTop->Add( bSizerBtn, 0, wxALIGN_RIGHT|wxALL, 5 );
+	
+	this->SetSizer( bSizerTop );
+	this->Layout();
+	
+	this->Centre( wxBOTH );
+}
+
+ParamDialog::~ParamDialog()
+{
+}
+
+// Event Table
+BEGIN_EVENT_TABLE( ParamDialog, wxDialog )
+    EVT_BUTTON( ID_SETPARAM, ParamDialog::OnSet )
+END_EVENT_TABLE()
+
+// Event Handlers & Functions
+void ParamDialog::OnSet( wxCommandEvent& WXUNUSED(event) )
+{
+    wxString buf;
+    buf = m_textCtrlM1x->GetValue(); buf.ToLong( &x, 10 );
+    buf = m_textCtrlM1y->GetValue(); buf.ToLong( &y, 10 );
+    buf = m_textCtrlM1w->GetValue(); buf.ToLong( &w, 10 );
+    buf = m_textCtrlM1h->GetValue(); buf.ToLong( &h, 10 );
+    m_mask1.SetPosition( wxPoint( x, y ) ); 
+    m_mask1.SetSize( wxSize( w, h ) ); 
+
+    buf = m_textCtrlM2x->GetValue(); buf.ToLong( &x, 10 );
+    buf = m_textCtrlM2y->GetValue(); buf.ToLong( &y, 10 );
+    buf = m_textCtrlM2w->GetValue(); buf.ToLong( &w, 10 );
+    buf = m_textCtrlM2h->GetValue(); buf.ToLong( &h, 10 );
+    m_mask2.SetPosition( wxPoint( x, y ) ); 
+    m_mask2.SetSize( wxSize( w, h ) ); 
+
+    buf = m_textCtrlM3x->GetValue(); buf.ToLong( &x, 10 );
+    buf = m_textCtrlM3y->GetValue(); buf.ToLong( &y, 10 );
+    buf = m_textCtrlM3w->GetValue(); buf.ToLong( &w, 10 );
+    buf = m_textCtrlM3h->GetValue(); buf.ToLong( &h, 10 );
+    m_mask3.SetPosition( wxPoint( x, y ) ); 
+    m_mask3.SetSize( wxSize( w, h ) ); 
+
+    buf = m_textCtrlM1xOld->GetValue(); buf.ToLong( &x, 10 );
+    buf = m_textCtrlM1yOld->GetValue(); buf.ToLong( &y, 10 );
+    buf = m_textCtrlM1wOld->GetValue(); buf.ToLong( &w, 10 );
+    buf = m_textCtrlM1hOld->GetValue(); buf.ToLong( &h, 10 );
+    m_mask1old.SetPosition( wxPoint( x, y ) ); 
+    m_mask1old.SetSize( wxSize( w, h ) ); 
+
+    buf = m_textCtrlM2xOld->GetValue(); buf.ToLong( &x, 10 );
+    buf = m_textCtrlM2yOld->GetValue(); buf.ToLong( &y, 10 );
+    buf = m_textCtrlM2wOld->GetValue(); buf.ToLong( &w, 10 );
+    buf = m_textCtrlM2hOld->GetValue(); buf.ToLong( &h, 10 );
+    m_mask2old.SetPosition( wxPoint( x, y ) ); 
+    m_mask2old.SetSize( wxSize( w, h ) ); 
+
+    buf = m_textCtrlM3xOld->GetValue(); buf.ToLong( &x, 10 );
+    buf = m_textCtrlM3yOld->GetValue(); buf.ToLong( &y, 10 );
+    buf = m_textCtrlM3wOld->GetValue(); buf.ToLong( &w, 10 );
+    buf = m_textCtrlM3hOld->GetValue(); buf.ToLong( &h, 10 );
+    m_mask3old.SetPosition( wxPoint( x, y ) ); 
+    m_mask3old.SetSize( wxSize( w, h ) ); 
+
+    if ( IsModal() ) 
+        EndModal( wxID_OK );
+    else {
+        SetReturnCode( wxID_OK );
+        Show( false );
+    }
+}
+
+void ParamDialog::LoadParams( void )
+{
+    m_textCtrlM1x->SetValue( wxString::Format( wxT("%d"), m_mask1.GetX() ) );
+    m_textCtrlM1y->SetValue( wxString::Format( wxT("%d"), m_mask1.GetY() ) );
+    m_textCtrlM1w->SetValue( wxString::Format( wxT("%d"), m_mask1.GetWidth() ) );
+    m_textCtrlM1h->SetValue( wxString::Format( wxT("%d"), m_mask1.GetHeight() ) );
+    m_textCtrlM2x->SetValue( wxString::Format( wxT("%d"), m_mask2.GetX() ) );
+    m_textCtrlM2y->SetValue( wxString::Format( wxT("%d"), m_mask2.GetY() ) );
+    m_textCtrlM2w->SetValue( wxString::Format( wxT("%d"), m_mask2.GetWidth() ) );
+    m_textCtrlM2h->SetValue( wxString::Format( wxT("%d"), m_mask2.GetHeight() ) );
+    m_textCtrlM3x->SetValue( wxString::Format( wxT("%d"), m_mask3.GetX() ) );
+    m_textCtrlM3y->SetValue( wxString::Format( wxT("%d"), m_mask3.GetY() ) );
+    m_textCtrlM3w->SetValue( wxString::Format( wxT("%d"), m_mask3.GetWidth() ) );
+    m_textCtrlM3h->SetValue( wxString::Format( wxT("%d"), m_mask3.GetHeight() ) );
+
+    m_textCtrlM1xOld->SetValue( wxString::Format( wxT("%d"), m_mask1old.GetX() ) );
+    m_textCtrlM1yOld->SetValue( wxString::Format( wxT("%d"), m_mask1old.GetY() ) );
+    m_textCtrlM1wOld->SetValue( wxString::Format( wxT("%d"), m_mask1old.GetWidth() ) );
+    m_textCtrlM1hOld->SetValue( wxString::Format( wxT("%d"), m_mask1old.GetHeight() ) );
+    m_textCtrlM2xOld->SetValue( wxString::Format( wxT("%d"), m_mask2old.GetX() ) );
+    m_textCtrlM2yOld->SetValue( wxString::Format( wxT("%d"), m_mask2old.GetY() ) );
+    m_textCtrlM2wOld->SetValue( wxString::Format( wxT("%d"), m_mask2old.GetWidth() ) );
+    m_textCtrlM2hOld->SetValue( wxString::Format( wxT("%d"), m_mask2old.GetHeight() ) );
+    m_textCtrlM3xOld->SetValue( wxString::Format( wxT("%d"), m_mask3old.GetX() ) );
+    m_textCtrlM3yOld->SetValue( wxString::Format( wxT("%d"), m_mask3old.GetY() ) );
+    m_textCtrlM3wOld->SetValue( wxString::Format( wxT("%d"), m_mask3old.GetWidth() ) );
+    m_textCtrlM3hOld->SetValue( wxString::Format( wxT("%d"), m_mask3old.GetHeight() ) );
+}
+