diff 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 diff
--- a/src/adddialog.cpp	Sun Aug 30 21:53:19 2015 +0900
+++ b/src/adddialog.cpp	Sun Sep 13 14:56:42 2015 +0900
@@ -1,6 +1,8 @@
 // Filename: adddialog.cpp
-// Last Change: 2015-08-30 Sun 16:02:17.
+// Last Change: 2015-09-13 Sun 14:34:28.
 //
+#include <wx/valgen.h>
+#include <wx/valtext.h>
 
 #include "adddialog.h"
 
@@ -11,14 +13,13 @@
 	
 	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, 10 );
+	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 );
 	
-    // text
 	m_staticTextText = new wxStaticText( this, wxID_ANY, wxT("Text"), wxDefaultPosition, wxDefaultSize, 0 );
 	fgSizer->Add( m_staticTextText, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
 	
@@ -28,29 +29,33 @@
 	m_staticTextText2 = new wxStaticText( this, wxID_ANY, wxT("Strings to paste"), wxDefaultPosition, wxDefaultSize, 0 );
 	fgSizer->Add( m_staticTextText2, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 	
-    // type
-	m_staticTextType = new wxStaticText( this, wxID_ANY, wxT("Type"), wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer->Add( m_staticTextType, 0, wxALL|wxALIGN_RIGHT, 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 );
 	
-	wxString m_choiceTypeChoices[] = { wxT("a"), wxT("ab"), wxT("cc"), };
-	int m_choiceTypeNChoices = sizeof( m_choiceTypeChoices ) / sizeof( wxString );
-	m_choiceType = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceTypeNChoices, m_choiceTypeChoices, 0 );
-	fgSizer->Add( m_choiceType, 0, wxALL|wxALIGN_CENTER_VERTICAL, 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_staticTextType2 = new wxStaticText( this, wxID_ANY, wxT("Ring / Queue / Stack"), wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer->Add( m_staticTextType2, 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 );
 	
-    // time
-	m_staticTextTime = new wxStaticText( this, wxID_ANY, wxT("Time"), wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer->Add( m_staticTextTime, 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_textCtrlTime = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer->Add( m_textCtrlTime, 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_staticTextTime2 = new wxStaticText( this, wxID_ANY, wxT("interval"), wxDefaultPosition, wxDefaultSize, 0 );
-    fgSizer->Add( m_staticTextTime2, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-    // desc
+	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 );
 	
@@ -58,7 +63,7 @@
 	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 );
+	fgSizer->Add( m_staticTextDesc2, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 	
 	bSizerTop->Add( fgSizer, 1, wxEXPAND, 5 );
 	
@@ -74,13 +79,58 @@
 	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 ) );
+}
+