// Author: Julian Smart / Kevin Ollivier
// Modified by:
// Created: 04/16/2004
-// RCS-ID: $Id$
// Copyright: (c) Julian Smart / Kevin Ollivier
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#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
-#include "wx/html/wxWebKit.h"
+#include "wx/html/webkit.h"
+
+#ifndef wxHAS_IMAGES_IN_RESOURCES
+ #include "../../sample.xpm"
+#endif
// ----------------------------------------------------------------------------
// resources
// ----------------------------------------------------------------------------
-// the application icon (under Windows and OS/2 it is in resources and even
-// though we could still include the XPM here it would be unused)
-#if !defined(__WXMSW__) && !defined(__WXPM__)
- #include "../../sample.xpm"
-#endif
-
enum {
ID_BACK = wxID_HIGHEST + 1,
ID_NEXT = wxID_HIGHEST + 2,
ID_OPEN = wxID_HIGHEST + 8,
ID_SAVE = wxID_HIGHEST + 9,
ID_SET_SOURCE = wxID_HIGHEST + 10
- };
+};
// ----------------------------------------------------------------------------
// private classes
void OnViewSource(wxCommandEvent& myEvent);
void OnSetSource(wxCommandEvent& myEvent);
void OnStateChanged(wxWebKitStateChangedEvent& myEvent);
- wxWebKitControl* mySafari;
+ wxWebKitCtrl* mySafari;
wxTextCtrl* urlText;
private:
- // 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()
};
// ----------------------------------------------------------------------------
-// event tables and other macros for wxWindows
+// event tables and other macros for wxWidgets
// ----------------------------------------------------------------------------
-// the event tables connect the wxWindows events with the functions (event
+// the event tables connect the wxWidgets events with the functions (event
// handlers) which process them. It can be also done at run-time, but for the
// simple menu events like this the static method is much simpler.
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
//EVT_MENU(Minimal_About, MyFrame::OnAbout)
END_EVENT_TABLE()
-// Create a new application object: this macro will allow wxWindows to create
+// Create a new application object: this macro will allow wxWidgets to create
// the application object during program execution (it's better than using a
// static object for many reasons) and also implements the accessor function
// wxGetApp() which will return the reference of the right type (i.e. MyApp and
// 'Main program' equivalent: the program execution "starts" here
bool MyApp::OnInit()
{
+ if ( !wxApp::OnInit() )
+ return false;
+
// create the main application window
- MyFrame *frame = new MyFrame(_T("wxWebKit Sample"));
+ MyFrame *frame = new MyFrame(wxT("wxWebKit Sample"));
// and show it (the frames, unlike simple controls, are not shown when
// created initially)
MyFrame::MyFrame(const wxString& title)
: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(500,500))
{
+ SetIcon(wxICON(sample));
+
wxMenuBar* myBar = new wxMenuBar();
- wxMenu* fileMenu = new wxMenu(_("&File"));
- fileMenu->Append(ID_OPEN, _("Open"));
- fileMenu->Append(ID_SAVE, _("Save"));
- myBar->Append(fileMenu, _("File"));
-
- wxMenu* editMenu = new wxMenu(_("Edit"));
+ wxMenu* fileMenu = new wxMenu;
+ fileMenu->Append(ID_OPEN, _("&Open"));
+ fileMenu->Append(ID_SAVE, _("&Save"));
+ myBar->Append(fileMenu, _("&File"));
+
+ wxMenu* editMenu = new wxMenu;
editMenu->Append(ID_SET_SOURCE, _("Set Page Source"));
- myBar->Append(editMenu, _("Edit"));
-
+ myBar->Append(editMenu, _("&Edit"));
+
//wxMenu* viewMenu = new wxMenu(_("View"));
//viewMenu->Append(ID_VIEW_SOURCE, _("View Source"));
//myBar->Append(viewMenu, _("View"));
-
+
SetMenuBar(myBar);
wxToolBar* myToolbar = CreateToolBar();
wxButton* btnReload = new wxButton(myToolbar, ID_RELOAD, _("Reload"));
myToolbar->AddControl(btnReload);
myToolbar->AddSeparator();
- urlText = new wxTextCtrl(myToolbar, ID_URLLIST, _T("http://www.wxwidgets.org"), wxDefaultPosition, wxSize(220, -1), wxTE_PROCESS_ENTER);
+ urlText = new wxTextCtrl(myToolbar, ID_URLLIST, wxT("http://www.wxwidgets.org"), wxDefaultPosition, wxSize(220, -1), wxTE_PROCESS_ENTER);
myToolbar->AddControl(urlText);
myToolbar->AddSeparator();
myToolbar->Realize();
- mySafari = new wxWebKitControl(this, ID_WEBKIT, _T("http://www.wxwidgets.org"), wxDefaultPosition, wxSize(200, 200));
+ // Testing wxWebKitCtrl inside a panel
+#if 1
+ wxPanel* panel = new wxPanel(this, wxID_ANY);
+
+ wxBoxSizer* boxSizer = new wxBoxSizer(wxVERTICAL);
+ panel->SetSizer(boxSizer);
+
+ mySafari = new wxWebKitCtrl(panel, ID_WEBKIT, wxT("http://www.wxwidgets.org"), wxDefaultPosition, wxSize(200, 200));
+
+ boxSizer->Add(mySafari, 1, wxEXPAND);
+
+ wxBoxSizer* frameSizer = new wxBoxSizer(wxVERTICAL);
+ SetSizer(frameSizer);
+ frameSizer->Add(panel, 1, wxEXPAND);
+#else
+ mySafari = new wxWebKitCtrl(this, ID_WEBKIT, wxT("http://www.wxwidgets.org"), wxDefaultPosition, wxSize(200, 200));
+#endif
#if wxUSE_STATUSBAR
CreateStatusBar(2);
#endif // wxUSE_STATUSBAR
}
-void MyFrame::OnBackButton(wxCommandEvent& myEvent){
+void MyFrame::OnBackButton(wxCommandEvent& WXUNUSED(myEvent))
+{
if (mySafari->CanGoBack())
mySafari->GoBack();
}
-void MyFrame::OnNextButton(wxCommandEvent& myEvent){
+void MyFrame::OnNextButton(wxCommandEvent& WXUNUSED(myEvent))
+{
if (mySafari->CanGoForward())
mySafari->GoForward();
}
-void MyFrame::OnStopButton(wxCommandEvent& myEvent){
+void MyFrame::OnStopButton(wxCommandEvent& WXUNUSED(myEvent))
+{
mySafari->Stop();
}
-void MyFrame::OnReloadButton(wxCommandEvent& myEvent){
- mySafari->Reload();
+void MyFrame::OnReloadButton(wxCommandEvent& WXUNUSED(myEvent))
+{
+ mySafari->Reload();
}
-void MyFrame::OnURLEnter(wxCommandEvent& myEvent){
+void MyFrame::OnURLEnter(wxCommandEvent& WXUNUSED(myEvent))
+{
mySafari->LoadURL(urlText->GetValue());
}
-void MyFrame::OnStateChanged(wxWebKitStateChangedEvent& myEvent){
- if (GetStatusBar() != NULL){
- if (myEvent.GetState() == wxWEBKIT_STATE_NEGOTIATING){
+void MyFrame::OnStateChanged(wxWebKitStateChangedEvent& myEvent)
+{
+ if (GetStatusBar() != NULL)
+ {
+ if (myEvent.GetState() == wxWEBKIT_STATE_NEGOTIATING)
+ {
GetStatusBar()->SetStatusText(_("Contacting ") + myEvent.GetURL());
+ urlText->SetValue(myEvent.GetURL());
}
- else if (myEvent.GetState() == wxWEBKIT_STATE_TRANSFERRING){
+ else if (myEvent.GetState() == wxWEBKIT_STATE_TRANSFERRING)
+ {
GetStatusBar()->SetStatusText(_("Loading ") + myEvent.GetURL());
}
- else if (myEvent.GetState() == wxWEBKIT_STATE_STOP){
+ else if (myEvent.GetState() == wxWEBKIT_STATE_STOP)
+ {
GetStatusBar()->SetStatusText(_("Load complete."));
SetTitle(mySafari->GetTitle());
}
- else if (myEvent.GetState() == wxWEBKIT_STATE_FAILED){
+ else if (myEvent.GetState() == wxWEBKIT_STATE_FAILED)
+ {
GetStatusBar()->SetStatusText(_("Failed to load ") + myEvent.GetURL());
}
}
}
-void MyFrame::OnViewSource(wxCommandEvent& myEvent){
+void MyFrame::OnViewSource(wxCommandEvent& WXUNUSED(myEvent))
+{
if (mySafari->CanGetPageSource())
wxMessageBox(mySafari->GetPageSource());
}
-void MyFrame::OnSetSource(wxCommandEvent& myEvent){
- if (mySafari){
- wxString myText = wxString("<HTML><HEAD></HEAD><BODY><P>Hello world!</P></BODY></HTML>");
+void MyFrame::OnSetSource(wxCommandEvent& WXUNUSED(myEvent))
+{
+ if (mySafari)
+ {
+ wxString myText = wxT("<HTML><HEAD></HEAD><BODY><P>Hello world!</P></BODY></HTML>");
mySafari->SetPageSource(myText);
}
}