view src/adddialog.cpp @ 1:e4aa0e7a07ad

Second release.
author pyon@macmini
date Sun, 13 Sep 2015 14:56:42 +0900
parents cb3403ca39b1
children fd4361d2cbbd
line wrap: on
line source

// Filename: adddialog.cpp
// Last Change: 2015-09-13 Sun 14:34:28.
//
#include <wx/valgen.h>
#include <wx/valtext.h>

#include "adddialog.h"

AddDialog::AddDialog( 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_staticText = new wxStaticText( this, wxID_ANY, wxT("Specify Empty text to Use user input(Ctrl-c).\nDescription is option."), wxDefaultPosition, wxDefaultSize, 0 );
	bSizerTop->Add( m_staticText, 0, wxALL|wxEXPAND, 5 );
	
	wxFlexGridSizer* fgSizer = new wxFlexGridSizer( 0, 3, 0, 0 );
	fgSizer->SetFlexibleDirection( wxBOTH );
	fgSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
	
	m_staticTextText = new wxStaticText( this, wxID_ANY, wxT("Text"), wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_staticTextText, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
	
	m_textCtrlText = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_textCtrlText, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
	
	m_staticTextText2 = new wxStaticText( this, wxID_ANY, wxT("Strings to paste"), wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_staticTextText2, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
	
	m_staticTextOverwrite = new wxStaticText( this, wxID_ANY, wxT("Overwrite"), wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_staticTextOverwrite, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );

	m_checkBoxOverwrite = new wxCheckBox( this, ID_CKOW, wxT("allow change"), wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_checkBoxOverwrite, 0, wxALL, 5 );
	
	m_staticTextOverwrite2 = new wxStaticText( this, wxID_ANY, wxT("Check if allow change by user"), wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_staticTextOverwrite2, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
	
	m_staticTextMaxLive = new wxStaticText( this, wxID_ANY, wxT("Max LT"), wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_staticTextMaxLive, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
	
	m_spinCtrlMaxLive = new wxSpinCtrl( this, ID_SPNML, wxT("5"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 28800, 0 );
	fgSizer->Add( m_spinCtrlMaxLive, 0, wxALL, 5 );
	
	m_staticTextMaxLive2 = new wxStaticText( this, wxID_ANY, wxT("Maximum live time"), wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_staticTextMaxLive2, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
	
	m_staticTextMaxActive = new wxStaticText( this, wxID_ANY, wxT("Max AT"), wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_staticTextMaxActive, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
	
	m_spinCtrlMaxActive = new wxSpinCtrl( this, ID_SPNMA, wxT("5"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 28800, 0 );
	fgSizer->Add( m_spinCtrlMaxActive, 0, wxALL, 5 );
	
	m_staticTextMaxActive2 = new wxStaticText( this, wxID_ANY, wxT("Maximum active time"), wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_staticTextMaxActive2, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
	
	m_staticTextDesc = new wxStaticText( this, wxID_ANY, wxT("Desc"), wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_staticTextDesc, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
	
	m_textCtrlDesc = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_textCtrlDesc, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
	
	m_staticTextDesc2 = new wxStaticText( this, wxID_ANY, wxT("Description"), wxDefaultPosition, wxDefaultSize, 0 );
	fgSizer->Add( m_staticTextDesc2, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
	
	bSizerTop->Add( fgSizer, 1, wxEXPAND, 5 );
	
	wxBoxSizer* bSizerBtn = new wxBoxSizer( wxHORIZONTAL );
	
	m_buttonAdd = new wxButton( this, wxID_OK, wxT("Add"), wxDefaultPosition, wxDefaultSize, 0 );
	m_buttonAdd->SetDefault(); 
	bSizerBtn->Add( m_buttonAdd, 0, wxALL, 5 );
	
	m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
	bSizerBtn->Add( m_buttonCancel, 0, wxALL, 5 );
	
	bSizerTop->Add( bSizerBtn, 0, wxALIGN_RIGHT, 5 );
	
	this->SetSizer( bSizerTop );

	this->Layout();
	bSizerTop->Fit( this );
	
	this->Centre( wxBOTH );

    Init();
    SetValidators();
}

AddDialog::~AddDialog()
{
}

// Event Table
BEGIN_EVENT_TABLE( AddDialog, wxDialog )
    EVT_CHECKBOX( ID_CKOW, AddDialog::OnCheckOverwrite )
END_EVENT_TABLE()

/* Event Handlers & Functions */
// Event Handlers
void AddDialog::OnCheckOverwrite( wxCommandEvent& event )
{
    if ( event.IsChecked() ) {
        m_textCtrlText->Enable( false );
        m_textCtrlText->SetValue( wxEmptyString );
        m_spinCtrlMaxLive->Enable( true );
    }
    else {
        m_textCtrlText->Enable( true );
        m_textCtrlText->SetValue( wxT("Something") );
        m_spinCtrlMaxLive->Enable( false );
    }
}

// Functions
void AddDialog::Init()
{
    m_text = wxT("Something");
    m_owrite = false; 
    m_maxat = 5;
    m_maxlt = 20;
    m_desc = wxEmptyString;
    m_spinCtrlMaxLive->Enable( false );
}

void AddDialog::SetValidators()
{
    m_textCtrlText->SetValidator( wxTextValidator( wxFILTER_NONE, &m_text ) );
    m_checkBoxOverwrite->SetValidator( wxGenericValidator( &m_owrite ) );
    m_spinCtrlMaxLive->SetValidator( wxGenericValidator( &m_maxlt ) );
    m_spinCtrlMaxActive->SetValidator( wxGenericValidator( &m_maxat ) );
    m_textCtrlDesc->SetValidator( wxTextValidator( wxFILTER_NONE, &m_desc ) );
}