/*========================================================================= Program: bbtk Module: $RCSfile: bbtkWxGUIHtmlBrowser.h,v $ Language: C++ Date: $Date: 2008/06/10 19:19:42 $ Version: $Revision: 1.4 $ 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. =========================================================================*//** * \brief Short description in one line * * Long description which * can span multiple lines */ /** * \file * \brief */ /** * \class bbtk:: * \brief */ #ifdef _USE_WXWIDGETS_ #ifndef __bbtkWxGUIHtmlBrowser_h_INCLUDED__ #define __bbtkWxGUIHtmlBrowser_h_INCLUDED__ #include "bbtkWx.h" #include namespace bbtk { class WxGUIHtmlBrowser; class WxHtmlWindow : public virtual wxHtmlWindow { public: WxHtmlWindow( wxWindow *parent, int id, WxGUIHtmlBrowser* browser, wxSize size) : wxHtmlWindow(parent, id, wxDefaultPosition, size, wxHW_SCROLLBAR_AUTO, _T("bbtk::WxGUIHtmlBrowser")), mBrowser(browser) { SetBorders(30); }; // wxHtmlOpeningStatus OnOpeningURL(wxHtmlURLType type,const wxString& url, wxString *redirect); //EED virtual void OnLinkClicked(const wxHtmlLinkInfo& link); //EED2 void OnSize( wxSizeEvent&); private: WxGUIHtmlBrowser* mBrowser; // any class wishing to process wxWidgets events must use this macro //EED2 DECLARE_EVENT_TABLE() }; /// Abstract class which defines the callbacks invoked by WxGUIHtmlBrowser class WxGUIHtmlBrowserUser { public : WxGUIHtmlBrowserUser() {} ~WxGUIHtmlBrowserUser() {} virtual bool WxGUIHtmlBrowserUserOnLinkClicked(const std::string& target) { return true; } }; // class WxGUIConsole; class BBTK_EXPORT WxGUIHtmlBrowser : public wxPanel { public: WxGUIHtmlBrowser ( wxWindow *parent, wxSize size, WxGUIHtmlBrowserUser* = 0 ); bool GoTo(std::string&); void GoHome(); void OnBackButton(wxCommandEvent& ); void OnForwardButton(wxCommandEvent& ); void OnHomeButton(wxCommandEvent& ); void OnReloadButton(wxCommandEvent& ); // void OnRunButton(wxCommandEvent& ); void OnLinkClicked(wxHtmlLinkEvent& ); void OnURLEnter( wxCommandEvent&); void OnSize( wxSizeEvent&); void UpdateURL(); // void OnCell(wxHtmlCellEvent& ); void SetSize( wxSize ); std::string GetCurrentPage(); private: WxHtmlWindow* mwxHtmlWindow; wxTextCtrl* mwxURL; wxButton* mwxBackButton; wxButton* mwxForwardButton; wxButton* mwxHomeButton; wxButton* mwxReloadButton; // wxButton* mwxRunButton; WxGUIHtmlBrowserUser* mUser; // any class wishing to process wxWidgets events must use this macro DECLARE_EVENT_TABLE() }; } #endif #endif