#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 << "WxHtmlWindow::OnLink"<<std::endl;
// std::cout << e.GetHref()<<std::endl;
LoadPage(e.GetHref());
if ( ! GetOpenedAnchor().IsEmpty() )
LoadPage(_T("#"+GetOpenedAnchor()));
}
mBrowser->UpdateURL();
-
-
}
//========================================================================
+*/
+
- //========================================================================
- enum
- {
- bwd_id,
- fwd_id,
- home_id,
- reload_id,
- index_id,
- url_id,
- html_id
- };
//========================================================================
BEGIN_EVENT_TABLE(WxBrowser, wxPanel)
EVT_BUTTON(fwd_id, WxBrowser::OnForwardButton )
EVT_BUTTON(home_id, WxBrowser::OnHomeButton )
EVT_BUTTON(reload_id, WxBrowser::OnReloadButton )
- EVT_BUTTON(index_id, WxBrowser::OnMakeIndexButton )
+ EVT_BUTTON(include_id, WxBrowser::OnIncludeFileButton )
EVT_TEXT_ENTER(url_id, WxBrowser::OnURLEnter )
EVT_HTML_LINK_CLICKED(html_id, WxBrowser::OnLinkClicked)
END_EVENT_TABLE()
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("~"),wxDefaultPosition,
+ mwxHomeButton = new wxButton( panel, home_id,_T("Home"),wxDefaultPosition,
wxDefaultSize,wxBU_EXACTFIT);
- bsizer->Add ( mwxHomeButton, 0, wxALIGN_CENTRE |
- wxLEFT | wxTOP | wxBOTTOM , 10 );
+ bsizer->Add ( mwxHomeButton , 0, wxALIGN_CENTRE | wxLEFT | wxTOP | wxBOTTOM , 10 );
- mwxReloadButton = new wxButton( panel, reload_id,_T("."),wxDefaultPosition,
+ mwxReloadButton = new wxButton( panel, reload_id,_T("Reload"),wxDefaultPosition,
wxDefaultSize,wxBU_EXACTFIT);
- bsizer->Add ( mwxReloadButton, 0, wxALIGN_CENTRE |
- wxTOP | wxBOTTOM , 10 );
+ bsizer->Add ( mwxReloadButton , 0, wxALIGN_CENTRE | wxTOP | wxBOTTOM , 10 );
- mwxMakeIndexButton = new wxButton( panel, index_id,
- _T("*"),wxDefaultPosition,
+ mwxIncludeFileButton = new wxButton( panel, include_id,
+ _T("RUN"),wxDefaultPosition,
wxDefaultSize,wxBU_EXACTFIT);
- bsizer->Add ( mwxMakeIndexButton, 0, wxALIGN_CENTRE |
- wxLEFT | wxTOP | wxBOTTOM , 10 );
+ 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);
/*
*/
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();
+// GoHome();
/*
Connect( mwxBackButton->GetId(),
bool WxBrowser::GoTo(std::string& file)
{
// std::cout << "goto"<<std::endl;
+
bool r = mwxHtmlWindow->LoadPage(std2wx(file));
UpdateURL();
return r;
//========================================================================
void WxBrowser::GoHome()
{
- std::string url = ConfigurationFile::GetInstance().Get_url();
+ std::string url = ConfigurationFile::GetInstance().Get_doc_path();
url += "/bbtkWebSite/menu.html";
- GoTo(url);
+ GoTo(url);
+
+ mwxURL->Clear();
+ mwxURL->AppendText(std2wx(url));
+
+
+/*EED
+ if (Utilities::FileExists(url))
+ {
+ GoTo(url);
+ }
+ else
+ {
+ // what ?
+ }
+*/
}
//========================================================================
//========================================================================
//========================================================================
- void WxBrowser::OnReloadButton(wxCommandEvent& )
+ void WxBrowser::OnReloadButton(wxCommandEvent& e)
{
- std::string s = wx2std(mwxHtmlWindow->GetOpenedPage());
- GoTo(s);
+ OnURLEnter(e);
}
//========================================================================
//========================================================================
- void WxBrowser::OnMakeIndexButton(wxCommandEvent& )
+ 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";
//========================================================================
void WxBrowser::OnURLEnter( wxCommandEvent&)
{
- //std::cout << "OnURL"<<std::endl;
+ std::cout << "OnURL"<<std::endl;
+ printf ( "EED > WxBrowser::OnURLEnter URL(%s) \n ", (const char*) mwxURL->GetValue().mb_str() );
mwxHtmlWindow->LoadPage(mwxURL->GetValue());
}
//========================================================================
+
//========================================================================
void WxBrowser::OnLinkClicked(wxHtmlLinkEvent& e)
{
std::cout << "WxBrowser::OnLinkClicked"<<std::endl;
std::cout << e.GetLinkInfo().GetHref()<<std::endl;
- mwxHtmlWindow->LoadPage(e.GetLinkInfo().GetHref());
+ printf ( "EED > WxBrowser::OnLinkClicked eve(%s) \n ", (const char*) e.GetLinkInfo().GetHref().mb_str() );
+ mwxHtmlWindow->LoadPage( e.GetLinkInfo().GetHref() );
UpdateURL();
+ printf ( "EED > WxBrowser::OnLinkClicked URL(%s) \n ", (const char*) mwxURL->GetValue().mb_str() );
+ mwxHtmlWindow->LoadPage( mwxURL->GetValue() );
}
//========================================================================
+
/*
void WxBrowser::OnCell(wxHtmlCellEvent& )
{