]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/html/test/test.cpp
Baked files for 2.6.1
[wxWidgets.git] / samples / html / test / test.cpp
index 50e10402e4fbeb1547993d54b6ec46d5d5d4df17..6bde933e5588733b912cd53e9121984cba4036f8 100644 (file)
@@ -9,8 +9,8 @@
 /////////////////////////////////////////////////////////////////////////////
 
 #if defined(__GNUG__) && !defined(__APPLE__)
-    #pragma implementation "test.cpp"
-    #pragma interface "test.cpp"
+    #pragma implementation
+    #pragma interface
 #endif
 
 // For compilers that support precompilation, includes "wx/wx.h".
@@ -33,6 +33,8 @@
 #include "wx/fs_inet.h"
 #include "wx/filedlg.h"
 
+#include "../../sample.xpm"
+
 // ----------------------------------------------------------------------------
 // private classes
 // ----------------------------------------------------------------------------
@@ -44,6 +46,20 @@ public:
     virtual bool OnInit();
 };
 
+// Define a new html window type: this is a wrapper for handling wxHtmlWindow events
+class MyHtmlWindow : public wxHtmlWindow
+{
+public:
+    MyHtmlWindow(wxWindow *parent) : wxHtmlWindow( parent ) { }
+
+    virtual wxHtmlOpeningStatus OnOpeningURL(wxHtmlURLType WXUNUSED(type),
+                                             const wxString& WXUNUSED(url),
+                                             wxString *WXUNUSED(redirect)) const;
+
+private:
+    DECLARE_NO_COPY_CLASS(MyHtmlWindow)
+};
+
 // Define a new frame type: this is going to be our main frame
 class MyFrame : public wxFrame
 {
@@ -59,7 +75,7 @@ public:
     void OnProcessor(wxCommandEvent& event);
 
 private:
-    wxHtmlWindow *m_Html;
+    MyHtmlWindow *m_Html;
     wxHtmlProcessor *m_Processor;
 
     // Any class wishing to process wxWidgets events must use this macro
@@ -174,6 +190,8 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     // ... and attach this menu bar to the frame
     SetMenuBar(menuBar);
 
+    SetIcon(wxIcon(sample_xpm));
+
 #if wxUSE_ACCEL
     // Create convenient accelerators for Back and Forward navigation
     wxAcceleratorEntry entries[2];
@@ -185,12 +203,12 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
 #endif // wxUSE_ACCEL
 
 #if wxUSE_STATUSBAR
-    CreateStatusBar(1);
+    CreateStatusBar(2);
 #endif // wxUSE_STATUSBAR
 
     m_Processor = new BoldProcessor;
     m_Processor->Enable(false);
-    m_Html = new wxHtmlWindow(this);
+    m_Html = new MyHtmlWindow(this);
     m_Html->SetRelatedFrame(this, _("HTML : %s"));
 #if wxUSE_STATUSBAR
     m_Html->SetRelatedStatusBar(0);
@@ -242,3 +260,11 @@ void MyFrame::OnProcessor(wxCommandEvent& WXUNUSED(event))
     m_Processor->Enable(!m_Processor->IsEnabled());
     m_Html->LoadPage(m_Html->GetOpenedPage());
 }
+
+wxHtmlOpeningStatus MyHtmlWindow::OnOpeningURL(wxHtmlURLType WXUNUSED(type),
+                                               const wxString& url,
+                                               wxString *WXUNUSED(redirect)) const
+{
+    GetRelatedFrame()->SetStatusText(url + _T(" lately opened"),1);
+    return wxHTML_OPEN;
+}