X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWxGUITextEditor.cxx;h=b1f95b4af9449dbd116d9402c1d25b2baccdd0d0;hb=f993478d7df1d9688c4ab93c617688c84cf2d424;hp=a61de17e9a919d1610bd391a42414687c87ca537;hpb=ba235cfa6ce74178ab468c01af002af0ab3a7d82;p=bbtk.git diff --git a/kernel/src/bbtkWxGUITextEditor.cxx b/kernel/src/bbtkWxGUITextEditor.cxx index a61de17..b1f95b4 100644 --- a/kernel/src/bbtkWxGUITextEditor.cxx +++ b/kernel/src/bbtkWxGUITextEditor.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUITextEditor.cxx,v $ Language: C++ - Date: $Date: 2008/04/24 12:56:40 $ - Version: $Revision: 1.11 $ + Date: $Date: 2008/05/14 12:32:26 $ + Version: $Revision: 1.12 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -209,6 +209,32 @@ namespace bbtk } //================================================================ + + + + + + + + + + + + + + + + + + + + + + //================================================================ + // WxGUITextEditor + //================================================================ + + //================================================================ WxGUITextEditor::WxGUITextEditor( wxWindow *parent, WxGUITextEditorUser* user ) @@ -216,20 +242,10 @@ namespace bbtk mUser(user), mFileNameFilter("*.*") { - // std::cout << "WxGUITextEditor::WxGUITextEditor"<SetWxGUITextEditor(this); - // mInterpreter->SetCommandLine(true); m_mgr.SetManagedWindow(this); - //============== - // Menu - wxInitAllImageHandlers(); - - - // wxFlexGridSizer *sizer= new wxFlexGridSizer(2); - wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); - + // wxInitAllImageHandlers(); + mwxNotebook = new wxAuiNotebook(this, -1, wxPoint(0, 0), @@ -244,12 +260,18 @@ namespace bbtk //| wxAUI_NB_CLOSE_ON_ALL_TABS | wxNO_BORDER); - sizer->Add(mwxNotebook,1,wxGROW); + m_mgr.AddPane(mwxNotebook, + wxAuiPaneInfo().Name(wxT("notebook")) + .Caption(wxT("")) + .CaptionVisible(false) + .MinimizeButton(false) + .MaximizeButton(false) + .CloseButton(false) + // .Dockable(false).Float() + .Center() + .MinSize(wxSize(100,50)) + ); - - // BUTTONS - wxPanel *btnsCtrlPanel = new wxPanel(this,-1); - wxBoxSizer *btnsSizer = new wxBoxSizer(wxHORIZONTAL); /* wxBitmap bmp_new(cc_new_xpm); @@ -266,48 +288,47 @@ namespace bbtk wxBitmap bmp_saveas(filesaveas_xpm); wxBitmap bmp_run(down_xpm); - - wxSize btn_size(32,32); - mwxButtonNew = new wxBitmapButton( btnsCtrlPanel,ID_ButtonNew,bmp_new - ,wxDefaultPosition, btn_size); - btnsSizer->Add( mwxButtonNew ); - - mwxButtonOpen = new wxBitmapButton( btnsCtrlPanel,ID_ButtonOpen,bmp_open ,wxDefaultPosition, btn_size);//,_T("Open") ); - btnsSizer->Add( mwxButtonOpen ); - - mwxButtonClose = new wxBitmapButton( btnsCtrlPanel,ID_ButtonClose,bmp_close ,wxDefaultPosition, btn_size);//,_T("Open") ); - btnsSizer->Add( mwxButtonClose ); - - mwxButtonSave = new wxBitmapButton( btnsCtrlPanel,ID_ButtonSave,bmp_save ,wxDefaultPosition, btn_size);//_T("Save") ); - btnsSizer->Add( mwxButtonSave ); - - mwxButtonSaveAs = new wxBitmapButton( btnsCtrlPanel,ID_ButtonSaveAs,bmp_saveas ,wxDefaultPosition, btn_size);//_T("Save") ); - btnsSizer->Add( mwxButtonSaveAs ); - - - mwxButtonRun = new wxBitmapButton( btnsCtrlPanel,ID_ButtonRun,bmp_run ,wxDefaultPosition, btn_size);//_T("Run") ); - btnsSizer->Add( mwxButtonRun ); - /* - wxBitmap bmp_quit(cc_exit_xpm); - mwxButtonQuit = new wxBitmapButton( btnsCtrlPanel,ID_ButtonQuit,bmp_quit);//_T("Quit") ); - btnsSizer->Add( mwxButtonQuit ); - */ - - mwxPosition = new wxStaticText ( btnsCtrlPanel, -1, _T("")); - btnsSizer->Add( mwxPosition ); + mwxToolBar = new wxToolBar(this, wxID_ANY, + wxDefaultPosition, wxDefaultSize, + wxTB_FLAT | wxTB_NODIVIDER); - btnsCtrlPanel->SetSizer(btnsSizer); - btnsCtrlPanel->SetAutoLayout(true); - btnsCtrlPanel->Layout(); - - sizer->Add ( btnsCtrlPanel, 0, wxLEFT | wxRIGHT | wxBOTTOM //| wxGROW - , 10 ); - + mwxToolBar->AddTool(ID_ButtonNew, _T("New"), + bmp_new, wxNullBitmap, wxITEM_NORMAL, + _T("New file"), _T("Create a new file")); + mwxToolBar->AddTool(ID_ButtonOpen, _T("Open"), + bmp_open, wxNullBitmap, wxITEM_NORMAL, + _T("Open file"), _T("This is help for new file tool")); + mwxToolBar->AddTool(ID_ButtonClose, _T("Close"), + bmp_close, wxNullBitmap, wxITEM_NORMAL, + _T("Close file"), _T("Close current file")); + mwxToolBar->AddTool(ID_ButtonSave, _T("New"), + bmp_save, wxNullBitmap, wxITEM_NORMAL, + _T("Save file"), _T("Save current file")); + mwxToolBar->AddTool(ID_ButtonSaveAs, _T("New"), + bmp_saveas, wxNullBitmap, wxITEM_NORMAL, + _T("Save file as"), _T("Save current file as")); + mwxToolBar->AddTool(ID_ButtonRun, _T("Run"), + bmp_run, wxNullBitmap, wxITEM_NORMAL, + _T("Run file"), _T("Run current file")); + + mwxToolBar->AddSeparator(); + mwxPosition = new wxStaticText ( mwxToolBar, -1, _T("")); + mwxToolBar->AddControl(mwxPosition); + mwxToolBar->Realize(); + + m_mgr.AddPane(mwxToolBar, + wxAuiPaneInfo().Name(wxT("toolBar")) + .Caption(wxT("")) + .ToolbarPane() + .Bottom() + .MinSize(wxSize(100,50)) + .LeftDockable(false).RightDockable(false) + ); NewPage(""); UpdateInfo(); - SetSizer(sizer); + m_mgr.Update(); SetAutoLayout(true); Layout(); } @@ -357,11 +378,53 @@ namespace bbtk //================================================================ //================================================================ - void WxGUITextEditor::OnButtonOpen(wxCommandEvent& event) - { - Open(); - FocusOnCurrentPage(); - } + void WxGUITextEditor::OnToolLeftClick(wxCommandEvent& event) + { + switch (event.GetId()) + { + case ID_ButtonNew : + New(); + FocusOnCurrentPage(); + break; + case ID_ButtonOpen : + Open(); + FocusOnCurrentPage(); + break; + case ID_ButtonClose : + CloseCurrentPage(); + break; + case ID_ButtonSave : + SaveCurrentPage(); + break; + case ID_ButtonSaveAs : + if (mwxNotebook->GetPageCount()==0) break; + GetCurrentPage()->SetAskFilename(true); + SaveCurrentPage(); + break; + case ID_ButtonRun : + if ((mUser!=0) && (mwxNotebook->GetPageCount()>0)) + mUser->WxGUITextEditorRun(); + FocusOnCurrentPage(); + break; + } + } + //================================================================ + + //================================================================ + void WxGUITextEditor::OnToolRightClick(wxCommandEvent& event) + { + } + //================================================================ + + //================================================================ + void WxGUITextEditor::New() + { + NewPage(""); + UpdateInfo(); + } + //================================================================ + + //================================================================ void WxGUITextEditor::Open() { // std::cout << "-------------- OPEN ---------------"<GetPageCount()==0) return true; + if (GetCurrentPage()->IsModified()) { wxString mess = std2wx(GetCurrentPage()->GetPageName()); @@ -426,7 +483,7 @@ namespace bbtk } mwxNotebook->DeletePage(mwxNotebook->GetSelection()); FocusOnCurrentPage(); - return true; + return false; } //================================================================ @@ -447,10 +504,6 @@ namespace bbtk //================================================================ //================================================================ - void WxGUITextEditor::OnButtonSave(wxCommandEvent& event) - { - SaveCurrentPage(); - } void WxGUITextEditor::SaveCurrentPage() { if (mwxNotebook->GetPageCount()==0) return; @@ -460,42 +513,11 @@ namespace bbtk } //================================================================ - //================================================================ - void WxGUITextEditor::OnButtonSaveAs(wxCommandEvent& event) - { - if (mwxNotebook->GetPageCount()==0) return; - GetCurrentPage()->SetAskFilename(true); - SaveCurrentPage(); - } - //================================================================ //================================================================ void WxGUITextEditor::OnPageClose(wxAuiNotebookEvent& evt) { - // std::cout << "-------------- CLOSE ---------------"<GetPageCount()==0) return; - if (GetCurrentPage()->IsModified()) - { - wxMessageDialog* d = - new wxMessageDialog(this, - _T("Buffer modified. Save it ?"), - _T("Save buffer"), - wxYES_NO | wxCANCEL | wxICON_QUESTION); - switch (d->ShowModal()) - { - case wxID_CANCEL : - evt.Veto(); - break; - case wxID_YES : - GetCurrentPage()->Save(mFileNameFilter); - break; - case wxID_NO : ; - } - } - */ } //================================================================ @@ -517,12 +539,6 @@ namespace bbtk */ //================================================================ - void WxGUITextEditor::OnButtonRun(wxCommandEvent& event) - { - if ((mUser!=0) && (mwxNotebook->GetPageCount()>0)) - mUser->WxGUITextEditorRun(); - FocusOnCurrentPage(); - } /* void WxGUITextEditor::Run() @@ -554,19 +570,6 @@ namespace bbtk //================================================================ - //================================================================ - void WxGUITextEditor::OnButtonNew(wxCommandEvent& event) - { - New(); - FocusOnCurrentPage(); - } - void WxGUITextEditor::New() - { - /// std::cout << "-------------- NEW ---------------" << std::endl; - NewPage(""); - UpdateInfo(); - } - //================================================================ //================================================================ void WxGUITextEditor::UpdateInfo() @@ -631,14 +634,8 @@ namespace bbtk //================================================================ BEGIN_EVENT_TABLE(WxGUITextEditor, wxPanel) - // EVT_CHAR(WxGUITextEditor::OnKeyPress) - EVT_BUTTON(WxGUITextEditor::ID_ButtonNew, WxGUITextEditor::OnButtonNew) - EVT_BUTTON(WxGUITextEditor::ID_ButtonOpen, WxGUITextEditor::OnButtonOpen) - EVT_BUTTON(WxGUITextEditor::ID_ButtonClose, WxGUITextEditor::OnButtonClose) - EVT_BUTTON(WxGUITextEditor::ID_ButtonSave, WxGUITextEditor::OnButtonSave) - EVT_BUTTON(WxGUITextEditor::ID_ButtonSaveAs, WxGUITextEditor::OnButtonSaveAs) - EVT_BUTTON(WxGUITextEditor::ID_ButtonRun, WxGUITextEditor::OnButtonRun) - // EVT_BUTTON(WxGUITextEditor::ID_ButtonQuit, WxGUITextEditor::OnButtonQuit) + EVT_MENU(wxID_ANY, WxGUITextEditor::OnToolLeftClick) + EVT_TOOL_RCLICKED(wxID_ANY, WxGUITextEditor::OnToolRightClick) EVT_AUINOTEBOOK_PAGE_CLOSE(wxID_ANY, WxGUITextEditor::OnPageClose) END_EVENT_TABLE() //================================================================