+/*
+ # ---------------------------------------------------------------------
+ #
+ # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+ # pour la SantÈ)
+ # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+ # Previous Authors : Laurent Guigues, Jean-Pierre Roux
+ # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+ #
+ # This software is governed by the CeCILL-B license under French law and
+ # abiding by the rules of distribution of free software. You can use,
+ # modify and/ or redistribute the software under the terms of the CeCILL-B
+ # license as circulated by CEA, CNRS and INRIA at the following URL
+ # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ # or in the file LICENSE.txt.
+ #
+ # As a counterpart to the access to the source code and rights to copy,
+ # modify and redistribute granted by the license, users are provided only
+ # with a limited warranty and the software's author, the holder of the
+ # economic rights, and the successive licensors have only limited
+ # liability.
+ #
+ # The fact that you are presently reading this means that you have had
+ # knowledge of the CeCILL-B license and that you accept its terms.
+ # ------------------------------------------------------------------------ */
+
+
/*=========================================================================
-
Program: bbtk
Module: $RCSfile: bbtkWxGUIHtmlBrowser.cxx,v $
Language: C++
- Date: $Date: 2008/03/21 14:59:39 $
- Version: $Revision: 1.3 $
-
- Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
- l'Image). All rights reserved. See Doc/License.txt or
- http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices for more information.
-
-=========================================================================*//**
+ Date: $Date: 2012/11/16 08:49:01 $
+ Version: $Revision: 1.15 $
+=========================================================================*/
+
+
+
+
+/**
* \brief Short description in one line
*
* Long description which
reload_id,
include_id,
url_id ,
- html_id
+ html_id = 10100
};
-/*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();
+ mBrowser->OnLinkClicked2(e);
}
- //========================================================================
*/
+//EED2 BEGIN_EVENT_TABLE(WxHtmlWindow, wxPanel)
+//EED2 EVT_SIZE(WxHtmlWindow::OnSize)
+//EED2 END_EVENT_TABLE()
+
+//EED2 void WxHtmlWindow::OnSize( wxSizeEvent& )
+//EED2 {
+//EED2 printf("EED WxHtmlWindow::OnSize \n" );
+//EED2 Scroll(10,500);
+//EED2 }
+
//========================================================================
EVT_BUTTON(reload_id, WxGUIHtmlBrowser::OnReloadButton )
// EVT_BUTTON(include_id, WxGUIHtmlBrowser::OnIncludeFileButton )
EVT_TEXT_ENTER(url_id, WxGUIHtmlBrowser::OnURLEnter )
- EVT_HTML_LINK_CLICKED(html_id, WxGUIHtmlBrowser::OnLinkClicked)
+ EVT_HTML_LINK_CLICKED(html_id, WxGUIHtmlBrowser::OnLinkClicked)
+ EVT_SIZE(WxGUIHtmlBrowser::OnSize)
+
END_EVENT_TABLE()
//========================================================================
{
wxPanel* panel = this;
-
+
wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
bsizer->Add(mwxURL, 1, wxEXPAND);
-// mwxHtmlWindow = new WxHtmlWindow(parent,html_id,this,size);
- mwxHtmlWindow = new WxHtmlWindow(this,html_id,this,size);
+// mwxHtmlWindow = new WxHtmlWindow(this,html_id,this,size);
+
+ mwxHtmlWindow = new wxHtmlWindow(this,html_id,
+ wxDefaultPosition,
+ size,
+ wxHW_SCROLLBAR_AUTO,
+ _T("bbtk::WxGUIHtmlBrowser"));
/*
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 );
+ sizer->Add ( bsizer , 0, wxEXPAND );
+
+// EED: This have a problem in macOS
+// wxStaticBoxSizer* hw =
+// new wxStaticBoxSizer(
+// new wxStaticBox( this, -1, _T(""), wxDefaultPosition, size ),
+// wxVERTICAL
+// );
+// hw->Add ( mwxHtmlWindow, 1, wxEXPAND );
//EED sizer->Add ( hw, 1, wxGROW ); // | wxLEFT | wxRIGHT | wxBOTTOM, 10 );
-
- sizer->Add ( bsizer , 0, wxEXPAND );
- sizer->Add ( hw, 1, wxGROW ); // | wxLEFT | wxRIGHT | wxBOTTOM, 10 );
-
-
+
+ sizer->Add ( mwxHtmlWindow, 1, wxGROW ); // | wxLEFT | wxRIGHT | wxBOTTOM, 10 );
panel -> SetSizer(sizer);
+
panel -> SetAutoLayout(true);
panel -> Layout();
//========================================================================
bool WxGUIHtmlBrowser::GoTo(std::string& file)
{
- // std::cout << "goto"<<std::endl;
-
bool r = mwxHtmlWindow->LoadPage(std2wx(file));
UpdateURL();
return r;
//========================================================================
void WxGUIHtmlBrowser::OnBackButton(wxCommandEvent& )
{
- // std::cout << "back"<<std::endl;
mwxHtmlWindow->HistoryBack();
UpdateURL();
}
//========================================================================
void WxGUIHtmlBrowser::OnForwardButton(wxCommandEvent& )
{
- // std::cout << "forward"<<std::endl;
mwxHtmlWindow->HistoryForward();
UpdateURL();
}
void WxGUIHtmlBrowser::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 ?
- }
-*/
+ url += "/help_contents.html";
+ GoTo(url);
}
//========================================================================
}
//========================================================================
-
+ //========================================================================
+ void WxGUIHtmlBrowser::OnLinkClicked2(const wxHtmlLinkInfo& info)
+ {
+ // std::cout << "OLK2"<<std::endl;
+ bool go = true;
+ if (mUser)
+ {
+ wxString file = info.GetHref();
+ go = mUser->WxGUIHtmlBrowserUserOnLinkClicked( wx2std( file ) );
+ }
+ if (go)
+ {
+ mwxHtmlWindow->LoadPage( info.GetHref() );
+ UpdateURL();
+ }
+
+
+ }
+
//========================================================================
void WxGUIHtmlBrowser::OnLinkClicked(wxHtmlLinkEvent& e)
{
- std::cout << "BrOnLink"<<std::endl;
-
+ // std::cout << "OLK"<<std::endl;
bool go = true;
if (mUser)
{
+ /*
wxString file = wxPathOnly(mwxURL->GetValue());
file += std2wx(ConfigurationFile::GetInstance().Get_file_separator());
file += e.GetLinkInfo().GetHref();
- go = mUser->WxGUIHtmlBrowserUserOnLinkClicked( wx2std( file ) );
+ */
+ wxString file = e.GetLinkInfo().GetHref();
+ go = mUser->WxGUIHtmlBrowserUserOnLinkClicked( wx2std( file ) );
}
if (go)
{
mwxHtmlWindow->LoadPage( e.GetLinkInfo().GetHref() );
UpdateURL();
- }
+ // OnURLEnter(e);
+ // mwxHtmlWindow->LoadPage(mwxURL->GetValue());
+ }
+
// mwxHtmlWindow->LoadPage( mwxURL->GetValue() );
}
//========================================================================
+ //========================================================================
+ void WxGUIHtmlBrowser::OnSize(wxSizeEvent& e)
+ {
+ mwxHtmlWindow->EnableScrolling(true,true);
+ if ( mwxURL->GetValue()!=wxString(_T("")) )
+ {
+// ?????????? No funciona ....?????
+//EED2 mwxHtmlWindow->LoadPage(mwxURL->GetValue());
+// printf("EED WxGUIHtmlBrowser::OnSize %s \n", mwxURL->GetValue().c_str() );
+//EED2 mwxHtmlWindow->Scroll( 10, 500);
+ } else {
+// GoHome();
+ }
+ e.Skip(true);
+ }
+
/*
void WxGUIHtmlBrowser::OnCell(wxHtmlCellEvent& )
{
//========================================================================
void WxGUIHtmlBrowser::UpdateURL()
{
-
wxString s = mwxHtmlWindow->GetOpenedPage();
if (!mwxHtmlWindow->GetOpenedAnchor().IsEmpty())
{