X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=kernel%2Fsrc%2FbbtkWxEditor.cxx;h=f178a89c4167023d460453ee9feb601eda0a5333;hb=6d2f79e0ff9b1c0b2db0d7f3d164f4f62434f08d;hp=ce668461816c736901f81848458ffdedb47cb6af;hpb=b28ab0adce098cc25dd4422761a225d7facd968c;p=bbtk.git diff --git a/kernel/src/bbtkWxEditor.cxx b/kernel/src/bbtkWxEditor.cxx index ce66846..f178a89 100644 --- a/kernel/src/bbtkWxEditor.cxx +++ b/kernel/src/bbtkWxEditor.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkWxEditor.cxx,v $ Language: C++ - Date: $Date: 2008/03/18 15:31:51 $ - Version: $Revision: 1.3 $ + Date: $Date: 2008/03/19 14:58:13 $ + Version: $Revision: 1.5 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -90,12 +90,13 @@ namespace bbtk void WxTextCtrlGettingKeyEvents::OnKeyUp(wxKeyEvent& event) { + mWxEditor->OnKeyUp(event); event.Skip(); } void WxTextCtrlGettingKeyEvents::OnKeyDown(wxKeyEvent& event) { - mWxEditor->OnKeyPress(event); + mWxEditor->OnKeyDown(event); event.Skip(); } //================================================================ @@ -176,8 +177,6 @@ namespace bbtk // sizer->AddGrowableCol(0); // sizer->Add(mwxInputText,1,wxGROW); - mwxInputText->SetFocus(); - mwxOutputText = new WxTextCtrlGettingKeyEvents(mwxSplit, ID_OutputText, @@ -224,22 +223,23 @@ namespace bbtk btnsCtrlPanel->SetSizer(btnsSizer); sizer->Add ( btnsCtrlPanel, 0, wxLEFT | wxRIGHT | wxBOTTOM //| wxGROW , 10 ); - + // Redirection of std::cout and std::cerr to mwxOutputText and printf - mRedirect_cout = - new WxStreamRedirector(std::cout,mwxOutputText,*wxBLACK,true); - mRedirect_cerr = - new WxStreamRedirector(std::cerr,mwxOutputText,*wxGREEN,true); - - - SetSizer(sizer); + mRedirect_cout = + new WxStreamRedirector(std::cout,mwxOutputText,*wxBLACK,true); + mRedirect_cerr = + new WxStreamRedirector(std::cerr,mwxOutputText,*wxGREEN,true); + UpdatePosition(); + mwxInputText->SetFocus(); + + SetSizer(sizer); SetAutoLayout(true); Layout(); } //================================================================ - - //================================================================ + + //================================================================ WxEditor::~WxEditor() { delete mInterpreter; @@ -250,7 +250,11 @@ namespace bbtk //================================================================ - void WxEditor::OnButtonOpen(wxCommandEvent& event) { Open(); } + void WxEditor::OnButtonOpen(wxCommandEvent& event) + { + Open(); + mwxInputText->SetFocus(); + } void WxEditor::Open() { std::cout << "-------------- OPEN ---------------"<LoadFile(std2wx(filename)); mwxInputText->SetModified(false); + UpdatePosition(); } //================================================================ //================================================================ - void WxEditor::OnButtonSave(wxCommandEvent& event) { Save(); } + void WxEditor::OnButtonSave(wxCommandEvent& event) + { + Save(); + mwxInputText->SetFocus(); + } void WxEditor::Save() { std::cout << "-------------- SAVE ---------------"<SetFocus(); + } void WxEditor::Quit() { std::cout << "-------------- QUIT ---------------"<SetFocus(); + } void WxEditor::Run() { std::cout << "-------------- RUN ---------------"<GetValue())); - bool com = false; - mInterpreter->InterpretLine("reset",com); + mInterpreter->InterpretLine("reset"); try { mInterpreter->InterpretBuffer(buffer); @@ -364,32 +380,57 @@ namespace bbtk //================================================================ //================================================================ - void WxEditor::OnButtonNew(wxCommandEvent& event) { New(); } + void WxEditor::OnButtonNew(wxCommandEvent& event) + { + New(); + mwxInputText->SetFocus(); + } void WxEditor::New() { std::cout << "-------------- NEW ---------------" << std::endl; AskSave(); mwxInputText->Clear(); + UpdatePosition(); } //================================================================ //================================================================ - void WxEditor::OnKeyPress(wxKeyEvent& event) + void WxEditor::UpdatePosition() { - long line, column, pos = mwxInputText->GetInsertionPoint(); - mwxInputText->PositionToXY(pos, &column, &line); + long line, column, pos; + pos = mwxInputText->GetInsertionPoint(); + mwxInputText->PositionToXY(pos, &column, &line); + + // wxLogMessage(_T("Current position: %ld\nCurrent line, column: (%ld, %ld)\nNumber of lines: %ld\nCurrent line length: %ld\nTotal text length: %u (%ld)"), char mess[200]; - sprintf(mess,"%ld:%ld / %ld:%ld (%ld char)", - line,column, + sprintf(mess,"%ld:%ld/%ld:%ld", + line+1,column+1, (long)mwxInputText->GetNumberOfLines(), - (long)mwxInputText->GetLineLength(line), - (long)mwxInputText->GetValue().length()); + (long)mwxInputText->GetLineLength(line)+1); + // pos+1, + // (long)mwxInputText->GetValue().length())+1; mwxPosition->SetLabel(wxString(mess)); + mwxPosition->Show(); + + } + //================================================================ + //================================================================ + void WxEditor::OnKeyUp(wxKeyEvent& event) + { + // std::cout << "U" << std::endl; + UpdatePosition(); + } + //================================================================ + + //================================================================ + void WxEditor::OnKeyDown(wxKeyEvent& event) + { + // std::cout << "D" << std::endl; // std::cout << "Key="<