]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkWxGUIHtmlBrowser.cxx
Forgot this one
[bbtk.git] / kernel / src / bbtkWxGUIHtmlBrowser.cxx
index 6e474755eedae40cdc0c38055617dfa7c8aeed7b..4994d18c40eaec19814fe7e081df3e06e7386082 100644 (file)
@@ -1,20 +1,35 @@
-/*=========================================================================
-                                                                                
+/*=========================================================================                                                                               
   Program:   bbtk
   Module:    $RCSfile: bbtkWxGUIHtmlBrowser.cxx,v $
   Language:  C++
-  Date:      $Date: 2008/04/22 14:30:25 $
-  Version:   $Revision: 1.5 $
-                                                                                
-  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: 2009/03/23 13:06:41 $
+  Version:   $Revision: 1.13 $
+=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
+* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+*
+*  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.
+* ------------------------------------------------------------------------ */                                                                         
+
+
+/**
  * \brief Short description in one line
  * 
  * Long description which 
@@ -51,27 +66,30 @@ namespace bbtk
       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  }
+
 
   //========================================================================
   
@@ -82,7 +100,9 @@ namespace bbtk
     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()
   //========================================================================
 
@@ -133,8 +153,13 @@ namespace bbtk
     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"));
 
     /*
 
@@ -147,25 +172,18 @@ namespace bbtk
     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);
@@ -206,23 +224,8 @@ namespace bbtk
   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);
   }
   //========================================================================
 
@@ -286,29 +289,69 @@ namespace bbtk
   }
   //========================================================================
   
-
+       //========================================================================
+       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 << "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& )
   {
@@ -319,7 +362,6 @@ namespace bbtk
   //========================================================================
   void WxGUIHtmlBrowser::UpdateURL()
   {
-
     wxString s = mwxHtmlWindow->GetOpenedPage();
     if (!mwxHtmlWindow->GetOpenedAnchor().IsEmpty())
     {