Mercurial > mercurial > hgweb_hanzen.cgi
diff myframe.cpp @ 0:79a92ddc3546
first release.
author | pyon@macmini |
---|---|
date | Wed, 16 Apr 2014 01:08:11 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/myframe.cpp Wed Apr 16 01:08:11 2014 +0900 @@ -0,0 +1,137 @@ +// Filename : myframe.cpp +// Last Change: 15-Apr-2014. +// + +#include "myframe.h" +#include "sample.xpm" + +MyFrame::MyFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) + : wxFrame( parent, id, title, pos, size, style ) +{ + this->SetIcon( wxIcon( wxT("sample") ) ); + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + this->SetBackgroundColour( wxColour( 23, 181, 63 ) ); + + wxBoxSizer* bSizerTop = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizerButton = new wxBoxSizer( wxHORIZONTAL ); + + m_buttonPaste = new wxButton( this, ID_PASTE, wxT("Paste"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerButton->Add( m_buttonPaste, 0, wxALL, 5 ); + + m_comboBoxDirection = new wxComboBox( this, wxID_ANY, wxT("select direction !"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + m_comboBoxDirection->Append( wxT("Zenkaku to Hankaku") ); + m_comboBoxDirection->Append( wxT("Hankaku to Zenkaku") ); + bSizerButton->Add( m_comboBoxDirection, 0, wxALL, 5 ); + + m_buttonConvert = new wxButton( this, ID_CONVERT, wxT("Convert"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerButton->Add( m_buttonConvert, 0, wxALL, 5 ); + + m_buttonCopy = new wxButton( this, ID_COPY, wxT("Copy"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerButton->Add( m_buttonCopy, 0, wxALL, 5 ); + + m_buttonClear = new wxButton( this, ID_CLEAR, wxT("Clear"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerButton->Add( m_buttonClear, 0, wxALL, 5 ); + + bSizerTop->Add( bSizerButton, 0, wxEXPAND, 5 ); + + m_textCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); + bSizerTop->Add( m_textCtrl, 1, wxALL|wxEXPAND, 5 ); + + this->SetSizer( bSizerTop ); + this->Layout(); + + this->Centre( wxBOTH ); +} + +MyFrame::~MyFrame() +{ +} + +// Event Table +BEGIN_EVENT_TABLE( MyFrame, wxFrame ) + EVT_BUTTON( ID_PASTE, MyFrame::OnPaste ) + EVT_BUTTON( ID_CONVERT, MyFrame::OnConvert ) + EVT_BUTTON( ID_COPY, MyFrame::OnCopy ) + EVT_BUTTON( ID_CLEAR, MyFrame::OnClear ) +END_EVENT_TABLE() + +// Functions +void MyFrame::OnPaste( wxCommandEvent& WXUNUSED(event) ) +{ + m_textCtrl->Clear(); + if ( wxTheClipboard->Open() ) { + if( wxTheClipboard->IsSupported( wxDF_TEXT ) ) { + wxTextDataObject data; + wxTheClipboard->GetData( data ); + m_textCtrl->ChangeValue( data.GetText() ); + } + wxTheClipboard->Close(); + } +} + +void MyFrame::OnConvert( wxCommandEvent& WXUNUSED(event) ) +{ + wxArrayString han, zen; + han.Add( wxT("0") ); zen.Add( wxT("0") ); + han.Add( wxT("1") ); zen.Add( wxT("1") ); + han.Add( wxT("2") ); zen.Add( wxT("2") ); + han.Add( wxT("3") ); zen.Add( wxT("3") ); + han.Add( wxT("4") ); zen.Add( wxT("4") ); + han.Add( wxT("5") ); zen.Add( wxT("5") ); + han.Add( wxT("6") ); zen.Add( wxT("6") ); + han.Add( wxT("7") ); zen.Add( wxT("7") ); + han.Add( wxT("8") ); zen.Add( wxT("8") ); + han.Add( wxT("9") ); zen.Add( wxT("9") ); + han.Add( wxT("-") ); zen.Add( wxT("-") ); + //han.Add( wxT("+") ); zen.Add( wxT("+") ); + han.Add( wxT("=") ); zen.Add( wxT("=") ); + han.Add( wxT("/") ); zen.Add( wxT("/") ); + han.Add( wxT("@") ); zen.Add( wxT("@") ); + //han.Add( wxT("(") ); zen.Add( wxT("(") ); + //han.Add( wxT(")") ); zen.Add( wxT(")") ); + han.Add( wxT("<") ); zen.Add( wxT("<") ); + han.Add( wxT(">") ); zen.Add( wxT(">") ); + //han.Add( wxT("*") ); zen.Add( wxT("*") ); + han.Add( wxT("#") ); zen.Add( wxT("#") ); + han.Add( wxT("!") ); zen.Add( wxT("!") ); + //han.Add( wxT("?") ); zen.Add( wxT("?") ); + han.Add( wxT(":") ); zen.Add( wxT(":") ); + han.Add( wxT(";") ); zen.Add( wxT(";") ); + //han.Add( wxT(".") ); zen.Add( wxT(".") ); + //han.Add( wxT(",") ); zen.Add( wxT(",") ); + + wxString buf = m_textCtrl->GetValue(); + + // Z -> H ok + if ( m_comboBoxDirection->GetSelection() == 0 ) { + for ( int i = 0; i < zen.GetCount(); i++ ) { + wxRegEx z( zen[i] ); + z.ReplaceAll( &buf, han[i] ); + } + } + // H -> Z + else if ( m_comboBoxDirection->GetSelection() == 1 ){ + for ( int i = 0; i < han.GetCount(); i++ ) { + wxRegEx h( han[i] ); + h.ReplaceAll( &buf, zen[i] ); + } + } + else { + return; + } + + m_textCtrl->ChangeValue( buf ); +} + +void MyFrame::OnCopy( wxCommandEvent& WXUNUSED(event) ) +{ + m_textCtrl->SelectAll(); + m_textCtrl->Copy(); +} + +void MyFrame::OnClear( wxCommandEvent& WXUNUSED(event) ) +{ + m_textCtrl->Clear(); +} +