]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkWxBrowser.cxx
*** empty log message ***
[bbtk.git] / kernel / src / bbtkWxBrowser.cxx
index 996e8a56cf261a7e4649e69938f78d5bf34ef39e..5a24a95b5d18b48f7db7955c101e240e566bcafa 100644 (file)
@@ -3,11 +3,13 @@
 #include "bbtkWxBrowser.h"
 #include "bbtkWxBlackBox.h"
 
+#include "bbtkConfigurationFile.h"
+#include "bbtkUtilities.h"
 
 namespace bbtk
 {  
 
-
+  //========================================================================
   void WxHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& e)
   {
     //    std::cout  << "WxHtmlWindow::OnLink"<<std::endl;
@@ -22,24 +24,34 @@ namespace bbtk
 
 
   }
+  //========================================================================
 
-
+  //========================================================================
   enum 
     {
       bwd_id,
       fwd_id,
+      home_id,
+      reload_id,
+      index_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(index_id, WxBrowser::OnMakeIndexButton )
     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)
@@ -65,7 +77,22 @@ namespace bbtk
     bsizer->Add ( mwxForwardButton, 0, wxALIGN_CENTRE | 
                  wxTOP | wxBOTTOM , 10);
 
-  
+    mwxHomeButton = new wxButton( panel, home_id,_T("~"),wxDefaultPosition,
+                                 wxDefaultSize,wxBU_EXACTFIT);
+    bsizer->Add ( mwxHomeButton, 0, wxALIGN_CENTRE | 
+                 wxLEFT | wxTOP | wxBOTTOM , 10 );
+    
+    mwxReloadButton = new wxButton( panel, reload_id,_T("."),wxDefaultPosition,
+                                   wxDefaultSize,wxBU_EXACTFIT);
+    bsizer->Add ( mwxReloadButton, 0, wxALIGN_CENTRE | 
+                 wxTOP | wxBOTTOM , 10 );
+
+    mwxMakeIndexButton = new wxButton( panel, index_id,
+                                      _T("*"),wxDefaultPosition,
+                                      wxDefaultSize,wxBU_EXACTFIT);
+    bsizer->Add ( mwxMakeIndexButton, 0, wxALIGN_CENTRE | 
+                 wxLEFT | wxTOP | wxBOTTOM , 10 );
+    
     mwxURL = new wxTextCtrl(panel,url_id,_T(""),
                            wxDefaultPosition,
                            wxDefaultSize,
@@ -102,6 +129,8 @@ namespace bbtk
     panel      -> SetAutoLayout(true);
     panel      -> Layout();
 
+    GoHome();
+
     /*
     Connect( mwxBackButton->GetId(), 
             wxEVT_COMMAND_BUTTON_CLICKED , 
@@ -130,8 +159,10 @@ namespace bbtk
                                    WxBrowser::OnCell ) ); 
     */
   }
-
+  //========================================================================
  
+
+  //========================================================================
   bool WxBrowser::GoTo(std::string& file)
   { 
     //  std::cout << "goto"<<std::endl;
@@ -139,28 +170,80 @@ namespace bbtk
     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_url();
+    url += "/bbtkWebSite/menu.html";
+    if (Utilities::FileExists(url)) 
+      {
+       GoTo(url);
+      }
+    else 
+      {
+       // what ?
+      }
+  }
+  //========================================================================
+
+  //========================================================================
+  void WxBrowser::OnHomeButton(wxCommandEvent& )
+  {
+    GoHome();
+  }
+  //========================================================================
+
+  //========================================================================
+  void WxBrowser::OnReloadButton(wxCommandEvent& )
+  {
+    std::string s = wx2std(mwxHtmlWindow->GetOpenedPage());
+    GoTo(s);
+  }
+  //========================================================================
+
+  //========================================================================
+  void WxBrowser::OnMakeIndexButton(wxCommandEvent& )
+  {
+    /*
+    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"<<std::endl;
     mwxHtmlWindow->LoadPage(mwxURL->GetValue());
   }
-
+  //========================================================================
   
+  //========================================================================
   void WxBrowser::OnLinkClicked(wxHtmlLinkEvent& e)
   {
     std::cout  << "WxBrowser::OnLinkClicked"<<std::endl;
@@ -168,12 +251,16 @@ namespace bbtk
     mwxHtmlWindow->LoadPage(e.GetLinkInfo().GetHref());
        UpdateURL();
   }
+  //========================================================================
+
   /*
   void WxBrowser::OnCell(wxHtmlCellEvent& )
   {
     std::cout  << "OnCell"<<std::endl;
   }
   */
+
+  //========================================================================
   void WxBrowser::UpdateURL()
   {
 
@@ -185,13 +272,16 @@ namespace bbtk
     mwxURL->Clear();
     mwxURL->AppendText(s);
   }
+  //========================================================================
+
+  //========================================================================
   void WxBrowser::SetSize( wxSize s)
   {
     //    wxPanel::SetSize(s);
     mwxHtmlWindow->SetSize(s);
     Fit();
   }
-
+  //========================================================================
 }
 
 #endif