+++ /dev/null
-#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"<<std::endl;
- // std::cout << e.GetHref()<<std::endl;
- LoadPage(e.GetHref());
- if ( ! GetOpenedAnchor().IsEmpty() )
- {
- // std::cout << "#" << GetOpenedAnchor() << std::endl;
- LoadPage(_T("#"+GetOpenedAnchor()));
- }
- mBrowser->UpdateURL();
- }
- //========================================================================
-*/
-
-
- //========================================================================
-
- 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)
- END_EVENT_TABLE()
- //========================================================================
-
-
- //========================================================================
- WxBrowser::WxBrowser ( wxWindow *parent, wxSize size )
- :
- wxPanel ( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL),
- mWxConsole(0)
-
- {
- wxPanel* panel = this;
-
- wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
-
-
- wxBoxSizer *bsizer = new wxBoxSizer(wxHORIZONTAL);
-
- mwxBackButton = new wxButton( panel, bwd_id,_T("<"),wxDefaultPosition,
- wxDefaultSize,wxBU_EXACTFIT);
- 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);
-
- 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, wxEXPAND | wxALL, 10);
-
-
-// mwxHtmlWindow = new WxHtmlWindow(parent,html_id,this,size);
- mwxHtmlWindow = new WxHtmlWindow(this,html_id,this,size);
-
- /*
-
--1,
- wxDefaultPosition,
- size,
- wxHW_SCROLLBAR_AUTO,
- "bbtk::WxBrowser");
- */
- mwxHtmlWindow->SetBorders(5);
- // mwxHtmlWindow->FitInside();
-
- wxStaticBoxSizer* hw =
- new wxStaticBoxSizer( new wxStaticBox( this, -1, _T(""),
- wxDefaultPosition,
- size ),
- wxVERTICAL );
-//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 ,
- (wxObjectEventFunction)
- (void (wxPanel::*)(wxEvent&))
- &WxBrowser::OnBackButton );
- Connect( mwxForwardButton->GetId(),
- wxEVT_COMMAND_BUTTON_CLICKED ,
- (wxObjectEventFunction)
- (void (wxPanel::*)(wxEvent&))
- &WxBrowser::OnForwardButton );
-
- std::cout << "e="<<wxEVT_COMMAND_HTML_LINK_CLICKED<<std::endl;
-
- Connect( wxID_ANY, //mwxHtmlWindow->GetId(),
- wxEVT_COMMAND_HTML_LINK_CLICKED ,
- wxHtmlLinkEventHandler(
- //(wxObjectEventFunction)
- // (void (wxPanel::*)(wxEvent&))&
- WxBrowser::OnLinkClicked ) );
- Connect( mwxHtmlWindow->GetId(),
- wxEVT_COMMAND_HTML_CELL_HOVER,
- //(wxObjectEventFunction)
- wxHtmlCellEventHandler(
- // (void (wxPanel::*)(wxHtmlCellEvent&))&
- WxBrowser::OnCell ) );
- */
- }
- //========================================================================
-
-
- //========================================================================
- bool WxBrowser::GoTo(std::string& file)
- {
- // std::cout << "goto"<<std::endl;
-
- bool r = mwxHtmlWindow->LoadPage(std2wx(file));
- UpdateURL();
- return r;
- }
- //========================================================================
-
- //========================================================================
- void WxBrowser::OnBackButton(wxCommandEvent& )
- {
- // std::cout << "back"<<std::endl;
- mwxHtmlWindow->HistoryBack();
- UpdateURL();
- }
- //========================================================================
-
- //========================================================================
- void WxBrowser::OnForwardButton(wxCommandEvent& )
- {
- // std::cout << "forward"<<std::endl;
- mwxHtmlWindow->HistoryForward();
- UpdateURL();
- }
- //========================================================================
-
- //========================================================================
- void WxBrowser::GoHome()
- {
- std::string url = ConfigurationFile::GetInstance().Get_doc_path();
- url += "/bbtkWebSite/menu.html";
- GoTo(url);
-
- mwxURL->Clear();
- mwxURL->AppendText(std2wx(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 = mWxConsole; //::GetInstance();
- // MessageManager::SetMessageLevel("All",9);
- Interpreter* I = new Interpreter;
-
- if ((s>3) && (filename[s-1]=='s')
- && (filename[s-2]=='b')
- && (filename[s-3]=='b')
- && (filename[s-4]=='.'))
- {
- std::cout << "stat"<<std::endl;
- if (C!=0) C->SetStatusText(_T("Executing ")+mwxURL->GetValue());
- std::cout << "int"<<std::endl;
- I->InterpretFile(filename);
- std::cout << "eoint"<<std::endl;
- }
- else
- {
- if (C!=0) C->SetStatusText(_T("The current page is not a bbs file : cannot execute it"));
- }
-
- delete I;
- /*
- 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&)
- {
- mwxHtmlWindow->LoadPage(mwxURL->GetValue());
- }
- //========================================================================
-
-
- //========================================================================
- void WxBrowser::OnLinkClicked(wxHtmlLinkEvent& e)
- {
- mwxHtmlWindow->LoadPage( e.GetLinkInfo().GetHref() );
- UpdateURL();
- mwxHtmlWindow->LoadPage( mwxURL->GetValue() );
- }
- //========================================================================
-
-
- /*
- void WxBrowser::OnCell(wxHtmlCellEvent& )
- {
- std::cout << "OnCell"<<std::endl;
- }
- */
-
- //========================================================================
- void WxBrowser::UpdateURL()
- {
-
- wxString s = mwxHtmlWindow->GetOpenedPage();
- if (!mwxHtmlWindow->GetOpenedAnchor().IsEmpty())
- {
- s += _T("#") + mwxHtmlWindow->GetOpenedAnchor();
- }
- mwxURL->Clear();
- mwxURL->AppendText(s);
- }
- //========================================================================
-
- //========================================================================
- void WxBrowser::SetSize( wxSize s)
- {
- // wxPanel::SetSize(s);
- mwxHtmlWindow->SetSize(s);
- Fit();
- }
- //========================================================================
-}
-
-#endif