]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/html/test/test.cpp
setting focus explicitely when using showmodal
[wxWidgets.git] / samples / html / test / test.cpp
index d9e8cd3c22eb56f1e309889152af2316eb28774b..d3efde3d9e9e20c719c5c63b69b729396365fde8 100644 (file)
@@ -21,7 +21,7 @@
 #endif
 
 // For all others, include the necessary headers (this file is usually all you
-// need because it includes almost all "standard" wxWindows headers
+// need because it includes almost all "standard" wxWidgets headers
 #ifndef WX_PRECOMP
     #include "wx/wx.h"
 #endif
@@ -44,6 +44,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,10 +73,10 @@ public:
     void OnProcessor(wxCommandEvent& event);
 
 private:
-    wxHtmlWindow *m_Html;
+    MyHtmlWindow *m_Html;
     wxHtmlProcessor *m_Processor;
 
-    // Any class wishing to process wxWindows events must use this macro
+    // Any class wishing to process wxWidgets events must use this macro
     DECLARE_EVENT_TABLE()
 };
 
@@ -97,7 +111,7 @@ enum
 };
 
 // ----------------------------------------------------------------------------
-// event tables and other macros for wxWindows
+// event tables and other macros for wxWidgets
 // ----------------------------------------------------------------------------
 
 BEGIN_EVENT_TABLE(MyFrame, wxFrame)
@@ -130,7 +144,7 @@ bool MyApp::OnInit()
     wxFileSystem::AddHandler(new wxInternetFSHandler);
 #endif
 
-    SetVendorName(wxT("wxWindows"));
+    SetVendorName(wxT("wxWidgets"));
     SetAppName(wxT("wxHtmlTest"));
     // the following call to wxConfig::Get will use it to create an object...
 
@@ -184,13 +198,17 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     SetAcceleratorTable(accel);
 #endif // wxUSE_ACCEL
 
-    CreateStatusBar(1);
+#if wxUSE_STATUSBAR
+    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);
+#endif // wxUSE_STATUSBAR
     m_Html->ReadCustomization(wxConfig::Get());
     m_Html->LoadFile(wxFileName(wxT("test.htm")));
     m_Html->AddProcessor(m_Processor);
@@ -238,3 +256,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;
+}