view src/mask.cpp @ 2:c066fde99517

Added Batch Print Mode.
author pyon@macmini
date Fri, 23 Aug 2013 18:32:09 +0900
parents 7b6dab24f4b8
children
line wrap: on
line source

// Filename   : mask.cpp
// Last Change: 14-Aug-2013.
//

#include "mask.h"

MaskDialog::MaskDialog( 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 );
	
    // 現マークシートパネル
	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 );

    // 旧マークシートパネル
	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 );

	bSizerTop->Add( m_notebook, 1, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
	
    //
	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 );
}

MaskDialog::~MaskDialog()
{
}

// Event Table
BEGIN_EVENT_TABLE( MaskDialog, wxDialog )
    EVT_BUTTON( ID_SETPARAM, MaskDialog::OnSet )
END_EVENT_TABLE()

// Event Handlers & Functions
void MaskDialog::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 MaskDialog::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() ) );
}