X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWxBrowser.cxx;h=d8112cf1e440b54db65029a2d100502fb70f10aa;hb=63005ec659612d567c00bfbb9ecbd62566a3217d;hp=996e8a56cf261a7e4649e69938f78d5bf34ef39e;hpb=a26195c366a89795288009cf7e20f11afa494970;p=bbtk.git diff --git a/kernel/src/bbtkWxBrowser.cxx b/kernel/src/bbtkWxBrowser.cxx index 996e8a5..d8112cf 100644 --- a/kernel/src/bbtkWxBrowser.cxx +++ b/kernel/src/bbtkWxBrowser.cxx @@ -1,16 +1,34 @@ #ifdef _USE_WXWIDGETS_ + #include "bbtkWxBrowser.h" #include "bbtkWxBlackBox.h" +#include "bbtkWxConsole.h" +#include "bbtkConfigurationFile.h" +#include "bbtkUtilities.h" namespace bbtk { + //======================================================================== + enum + { + bwd_id, + fwd_id, + home_id, + reload_id, + include_id, + url_id , + html_id + }; + +/*EED + //======================================================================== void WxHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& e) { - // std::cout << "WxHtmlWindow::OnLink"<UpdateURL(); - - } + //======================================================================== +*/ - enum - { - bwd_id, - fwd_id, - url_id, - html_id - }; - + //======================================================================== BEGIN_EVENT_TABLE(WxBrowser, wxPanel) EVT_BUTTON(bwd_id, WxBrowser::OnBackButton ) EVT_BUTTON(fwd_id, WxBrowser::OnForwardButton ) + EVT_BUTTON(home_id, WxBrowser::OnHomeButton ) + EVT_BUTTON(reload_id, WxBrowser::OnReloadButton ) + EVT_BUTTON(include_id, WxBrowser::OnIncludeFileButton ) EVT_TEXT_ENTER(url_id, WxBrowser::OnURLEnter ) - EVT_HTML_LINK_CLICKED(html_id, WxBrowser::OnLinkClicked) + EVT_HTML_LINK_CLICKED(html_id, WxBrowser::OnLinkClicked) END_EVENT_TABLE() - + //======================================================================== + + + //======================================================================== WxBrowser::WxBrowser ( wxWindow *parent, wxSize size ) : wxPanel ( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) @@ -51,30 +68,38 @@ namespace bbtk wxBoxSizer *bsizer = new wxBoxSizer(wxHORIZONTAL); - - sizer->Add ( bsizer, 0, wxGROW ); - - + mwxBackButton = new wxButton( panel, bwd_id,_T("<"),wxDefaultPosition, wxDefaultSize,wxBU_EXACTFIT); - bsizer->Add ( mwxBackButton, 0, wxALIGN_CENTRE | - wxLEFT | wxTOP | wxBOTTOM , 10 ); + bsizer->Add ( mwxBackButton , 0, wxALIGN_CENTRE | wxLEFT | wxTOP | wxBOTTOM , 10 ); mwxForwardButton = new wxButton( panel, fwd_id,_T(">"),wxDefaultPosition, wxDefaultSize,wxBU_EXACTFIT); - bsizer->Add ( mwxForwardButton, 0, wxALIGN_CENTRE | - wxTOP | wxBOTTOM , 10); + bsizer->Add ( mwxForwardButton , 0, wxALIGN_CENTRE | wxTOP | wxBOTTOM , 10); - + mwxHomeButton = new wxButton( panel, home_id,_T("Home"),wxDefaultPosition, + wxDefaultSize,wxBU_EXACTFIT); + bsizer->Add ( mwxHomeButton , 0, wxALIGN_CENTRE | wxLEFT | wxTOP | wxBOTTOM , 10 ); + + mwxReloadButton = new wxButton( panel, reload_id,_T("Reload"),wxDefaultPosition, + wxDefaultSize,wxBU_EXACTFIT); + bsizer->Add ( mwxReloadButton , 0, wxALIGN_CENTRE | wxTOP | wxBOTTOM , 10 ); + + mwxIncludeFileButton = new wxButton( panel, include_id, + _T("RUN"),wxDefaultPosition, + wxDefaultSize,wxBU_EXACTFIT); + bsizer->Add ( mwxIncludeFileButton , 0, wxALIGN_CENTRE | wxLEFT | wxTOP | wxBOTTOM , 10 ); + mwxURL = new wxTextCtrl(panel,url_id,_T(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER); mwxURL->SetLabel(_T("URL")); - bsizer->Add(mwxURL, 1, wxGROW | wxALL, 10); + bsizer->Add(mwxURL, 1, wxEXPAND | wxALL, 10); - mwxHtmlWindow = new WxHtmlWindow(parent,html_id,this,size); +// mwxHtmlWindow = new WxHtmlWindow(parent,html_id,this,size); + mwxHtmlWindow = new WxHtmlWindow(this,html_id,this,size); /* @@ -86,22 +111,33 @@ namespace bbtk */ mwxHtmlWindow->SetBorders(5); // mwxHtmlWindow->FitInside(); + wxStaticBoxSizer* hw = new wxStaticBoxSizer( new wxStaticBox( this, -1, _T(""), wxDefaultPosition, size ), wxVERTICAL ); - hw->Add ( mwxHtmlWindow, 1, wxGROW ); +//EED hw->Add ( mwxHtmlWindow, 1, wxGROW ); + hw->Add ( mwxHtmlWindow, 1, wxEXPAND ); + + + + + //sizer->Add ( mwxHtmlWindow, 1, wxGROW ); +//EED sizer->Add ( hw, 1, wxGROW ); // | wxLEFT | wxRIGHT | wxBOTTOM, 10 ); + sizer->Add ( bsizer , 0, wxEXPAND ); sizer->Add ( hw, 1, wxGROW ); // | wxLEFT | wxRIGHT | wxBOTTOM, 10 ); - - + + panel -> SetSizer(sizer); panel -> SetAutoLayout(true); panel -> Layout(); +// GoHome(); + /* Connect( mwxBackButton->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , @@ -130,37 +166,119 @@ namespace bbtk WxBrowser::OnCell ) ); */ } - + //======================================================================== + + //======================================================================== bool WxBrowser::GoTo(std::string& file) { // std::cout << "goto"<LoadPage(std2wx(file)); UpdateURL(); return r; } + //======================================================================== + //======================================================================== void WxBrowser::OnBackButton(wxCommandEvent& ) { // std::cout << "back"<HistoryBack(); UpdateURL(); } - + //======================================================================== + + //======================================================================== void WxBrowser::OnForwardButton(wxCommandEvent& ) { // std::cout << "forward"<HistoryForward(); UpdateURL(); } + //======================================================================== + + //======================================================================== + void WxBrowser::GoHome() + { + std::string url = ConfigurationFile::GetInstance().Get_doc_path(); + url += "/bbtkWebSite/menu.html"; + GoTo(url); + + mwxURL->Clear(); + mwxURL->AppendText(url); + + +/*EED + if (Utilities::FileExists(url)) + { + GoTo(url); + } + else + { + // what ? + } +*/ + } + //======================================================================== + + //======================================================================== + void WxBrowser::OnHomeButton(wxCommandEvent& ) + { + GoHome(); + } + //======================================================================== + + //======================================================================== + void WxBrowser::OnReloadButton(wxCommandEvent& e) + { + OnURLEnter(e); + } + //======================================================================== + + //======================================================================== + void WxBrowser::OnIncludeFileButton(wxCommandEvent& ) + { + std::string filename = wx2std(mwxURL->GetValue()); + size_t s = filename.length(); + + WxConsole* C = WxConsole::GetInstance(); + if (C != 0) + { + if ((s>3) && (filename[s-1]=='s') + && (filename[s-2]=='b') + && (filename[s-3]=='b') + && (filename[s-4]=='.')) + { + C->SetStatusText(_T("Executing ")+mwxURL->GetValue()); + C->InterpretFile(filename); + } + else + { + C->SetStatusText(_T("The current page is not a bbs file : cannot execute it")); + } + } + /* + std::string bbdoc = ConfigurationFile::GetInstance().Get_url(); + bbdoc += "/bbdoc"; + std::string command("cd "); + command += bbdoc; + command += " & bbi -q -n make-index.bbs"; + system(command.c_str()); + */ + } + //======================================================================== + //======================================================================== void WxBrowser::OnURLEnter( wxCommandEvent&) { - //std::cout << "OnURL"<LoadPage(mwxURL->GetValue()); } - + //======================================================================== + + //======================================================================== void WxBrowser::OnLinkClicked(wxHtmlLinkEvent& e) { std::cout << "WxBrowser::OnLinkClicked"<LoadPage(e.GetLinkInfo().GetHref()); UpdateURL(); } + //======================================================================== + + /* void WxBrowser::OnCell(wxHtmlCellEvent& ) { std::cout << "OnCell"<Clear(); mwxURL->AppendText(s); } + //======================================================================== + + //======================================================================== void WxBrowser::SetSize( wxSize s) { // wxPanel::SetSize(s); mwxHtmlWindow->SetSize(s); Fit(); } - + //======================================================================== } #endif