]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkWxBrowser.cxx
*** empty log message ***
[bbtk.git] / kernel / src / bbtkWxBrowser.cxx
index f0df6cff60d91ac1f13732b79141bc4ce3ed21b2..72ffbb08d74b046b1f68fa70f35a45ff5df04106 100644 (file)
@@ -1,17 +1,34 @@
 #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() )
@@ -20,28 +37,19 @@ namespace bbtk
        LoadPage(_T("#"+GetOpenedAnchor()));
       }
     mBrowser->UpdateURL();
-
-
   }
   //========================================================================
+*/
+
 
-  //========================================================================
-  enum 
-    {
-      bwd_id,
-      fwd_id,
-      home_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(index_id, WxBrowser::OnMakeIndexButton )
+    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()
@@ -60,40 +68,38 @@ namespace bbtk
     
 
     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  );
     
-    mwxMakeIndexButton = new wxButton( panel, index_id,
-                                      _T("*"),wxDefaultPosition,
+    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 ( 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);
 
     /*
 
@@ -105,22 +111,33 @@ namespace bbtk
     */
     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();
+
     /*
     Connect( mwxBackButton->GetId(), 
             wxEVT_COMMAND_BUTTON_CLICKED , 
@@ -156,6 +173,7 @@ namespace bbtk
   bool WxBrowser::GoTo(std::string& file)
   { 
     //  std::cout << "goto"<<std::endl;
+
     bool r = mwxHtmlWindow->LoadPage(std2wx(file));
     UpdateURL();
     return r;
@@ -181,17 +199,65 @@ namespace bbtk
   //========================================================================
 
   //========================================================================
-  void WxBrowser::OnHomeButton(wxCommandEvent& )
+  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::OnMakeIndexButton(wxCommandEvent& )
+  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 = 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";
@@ -206,21 +272,27 @@ namespace bbtk
   //======================================================================== 
   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& )
   {