18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2007 Kevin Ollivier All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This class provides a default new window implementation for wxWebView clients 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * who don't want/need to roll their own browser frame UI. 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h" 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "wx/wxprec.h" 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef WX_PRECOMP 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project #include "wx/wx.h" 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "wx/artprov.h" 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WebBrowserShell.h" 390617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#include "WebFrame.h" 400617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#include "WebView.h" 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WebViewPrivate.h" 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectwxPageSourceViewFrame::wxPageSourceViewFrame(const wxString& source) 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project : wxFrame(NULL, wxID_ANY, _("Page Source View"), wxDefaultPosition, wxSize(600, 500)) 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxTextCtrl* control = new wxTextCtrl(this, -1, source, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE); 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectenum { 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_LOADFILE = wxID_HIGHEST + 1, 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_TEXTCTRL = wxID_HIGHEST + 2, 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_BACK = wxID_HIGHEST + 3, 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_FORWARD = wxID_HIGHEST + 4, 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_TOGGLE_BEFORE_LOAD = wxID_HIGHEST + 5, 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_MAKE_TEXT_LARGER = wxID_HIGHEST + 6, 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_MAKE_TEXT_SMALLER = wxID_HIGHEST + 7, 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_STOP = wxID_HIGHEST + 8, 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_RELOAD = wxID_HIGHEST + 9, 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_GET_SOURCE = wxID_HIGHEST + 10, 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_SET_SOURCE = wxID_HIGHEST + 11, 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_SEARCHCTRL = wxID_HIGHEST + 12, 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_LOADURL = wxID_HIGHEST + 13, 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_NEW_WINDOW = wxID_HIGHEST + 14, 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_BROWSE = wxID_HIGHEST + 15, 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_EDIT = wxID_HIGHEST + 16, 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ID_RUN_SCRIPT = wxID_HIGHEST + 17, 670617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen ID_WEBVIEW = wxID_HIGHEST + 18, 680617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen ID_EDIT_COMMAND = wxID_HIGHEST + 19, 690617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen ID_GET_EDIT_COMMAND_STATE = wxID_HIGHEST + 20 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectBEGIN_EVENT_TABLE(wxWebBrowserShell, wxFrame) 730bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch EVT_MENU(wxID_CUT, wxWebBrowserShell::OnCut) 740bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch EVT_MENU(wxID_COPY, wxWebBrowserShell::OnCopy) 750bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch EVT_MENU(wxID_PASTE, wxWebBrowserShell::OnPaste) 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(wxID_EXIT, wxWebBrowserShell::OnQuit) 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(wxID_ABOUT, wxWebBrowserShell::OnAbout) 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_LOADFILE, wxWebBrowserShell::OnLoadFile) 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_TEXT_ENTER(ID_TEXTCTRL, wxWebBrowserShell::OnAddressBarEnter) 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_TEXT_ENTER(ID_SEARCHCTRL, wxWebBrowserShell::OnSearchCtrlEnter) 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_WEBVIEW_LOAD(ID_WEBVIEW, wxWebBrowserShell::OnLoadEvent) 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_WEBVIEW_BEFORE_LOAD(ID_WEBVIEW, wxWebBrowserShell::OnBeforeLoad) 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_BACK, wxWebBrowserShell::OnBack) 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_FORWARD, wxWebBrowserShell::OnForward) 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_STOP, wxWebBrowserShell::OnStop) 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_RELOAD, wxWebBrowserShell::OnReload) 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_MAKE_TEXT_LARGER, wxWebBrowserShell::OnMakeTextLarger) 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_MAKE_TEXT_SMALLER, wxWebBrowserShell::OnMakeTextSmaller) 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_GET_SOURCE, wxWebBrowserShell::OnGetSource) 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_SET_SOURCE, wxWebBrowserShell::OnSetSource) 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_BROWSE, wxWebBrowserShell::OnBrowse) 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_EDIT, wxWebBrowserShell::OnEdit) 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVT_MENU(ID_RUN_SCRIPT, wxWebBrowserShell::OnRunScript) 940617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen EVT_MENU(ID_EDIT_COMMAND, wxWebBrowserShell::OnEditCommand) 950617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen EVT_MENU(ID_GET_EDIT_COMMAND_STATE, wxWebBrowserShell::OnGetEditCommandState) 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectEND_EVENT_TABLE() 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectwxWebBrowserShell::wxWebBrowserShell(const wxString& title) : 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(600, 500)), 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_checkBeforeLoad(false) 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // create a menu bar 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxMenu *fileMenu = new wxMenu; 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fileMenu->Append(ID_NEW_WINDOW, _T("New Window\tCTRL+N")); 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fileMenu->Append(ID_LOADFILE, _T("Open File...\tCTRL+O")); 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fileMenu->Append(ID_LOADURL, _("Open Location...\tCTRL+L")); 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project fileMenu->Append(wxID_EXIT, _T("E&xit\tAlt-X"), _T("Quit this program")); 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxMenu *editMenu = new wxMenu; 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project editMenu->Append(wxID_CUT, _T("Cut\tCTRL+X")); 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project editMenu->Append(wxID_COPY, _T("Copy\tCTRL+C")); 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project editMenu->Append(wxID_PASTE, _T("Paste\tCTRL+V")); 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxMenu* viewMenu = new wxMenu; 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project viewMenu->AppendRadioItem(ID_BROWSE, _("Browse")); 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project viewMenu->AppendRadioItem(ID_EDIT, _("Edit")); 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project viewMenu->AppendSeparator(); 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project viewMenu->Append(ID_STOP, _("Stop")); 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project viewMenu->Append(ID_RELOAD, _("Reload Page")); 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project viewMenu->Append(ID_MAKE_TEXT_SMALLER, _("Make Text Smaller\tCTRL+-")); 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project viewMenu->Append(ID_MAKE_TEXT_LARGER, _("Make Text Bigger\tCTRL++")); 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project viewMenu->AppendSeparator(); 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project viewMenu->Append(ID_GET_SOURCE, _("View Page Source")); 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project viewMenu->AppendSeparator(); 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_debugMenu = new wxMenu; 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_debugMenu->Append(ID_SET_SOURCE, _("Test SetPageSource")); 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_debugMenu->Append(ID_RUN_SCRIPT, _("Test RunScript")); 1310617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen m_debugMenu->Append(ID_EDIT_COMMAND, _("Test EditCommand::Execute")); 1320617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen m_debugMenu->Append(ID_GET_EDIT_COMMAND_STATE, _("Test EditCommand::GetState")); 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // the "About" item should be in the help menu 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxMenu *helpMenu = new wxMenu; 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project helpMenu->Append(wxID_ABOUT, _T("&About...\tF1"), _T("Show about dialog")); 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // now append the freshly created menu to the menu bar... 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxMenuBar *menuBar = new wxMenuBar(); 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project menuBar->Append(fileMenu, _T("&File")); 1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project menuBar->Append(editMenu, _T("&Edit")); 1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project menuBar->Append(viewMenu, _T("&View")); 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project menuBar->Append(helpMenu, _T("&Help")); 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // ... and attach this menu bar to the frame 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project SetMenuBar(menuBar); 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxToolBar* toolbar = CreateToolBar(); 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project toolbar->SetToolBitmapSize(wxSize(32, 32)); 1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxBitmap back = wxArtProvider::GetBitmap(wxART_GO_BACK, wxART_TOOLBAR, wxSize(32,32)); 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project toolbar->AddTool(ID_BACK, back, wxT("Back")); 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxBitmap forward = wxArtProvider::GetBitmap(wxART_GO_FORWARD, wxART_TOOLBAR, wxSize(32,32)); 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project toolbar->AddTool(ID_FORWARD, forward, wxT("Next")); 1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project addressBar = new wxTextCtrl(toolbar, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxSize(400, -1), wxTE_PROCESS_ENTER); 1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project toolbar->AddControl(addressBar); 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project searchCtrl = new wxSearchCtrl(toolbar, ID_SEARCHCTRL, _("Search"), wxDefaultPosition, wxSize(200, -1), wxTE_PROCESS_ENTER); 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project toolbar->AddControl(searchCtrl); 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project toolbar->Realize(); 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project SetToolBar(toolbar); 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Create the wxWebView Window 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview = new wxWebView((wxWindow*)this, ID_WEBVIEW, wxDefaultPosition, wxSize(200, 200)); 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->SetBackgroundColour(*wxWHITE); 1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // create a status bar just for fun (by default with 1 pane only) 1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CreateStatusBar(2); 1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectwxWebBrowserShell::~wxWebBrowserShell() 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (m_debugMenu && GetMenuBar()->FindMenu(_("&Debug")) == wxNOT_FOUND) 1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project delete m_debugMenu; 1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::ShowDebugMenu(bool show) 1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int debugMenu = GetMenuBar()->FindMenu(_("&Debug")); 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (show && debugMenu == wxNOT_FOUND) { 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int prevMenu = GetMenuBar()->FindMenu(_("&View")); 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (prevMenu != wxNOT_FOUND) 1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GetMenuBar()->Insert((size_t)prevMenu+1, m_debugMenu, _("&Debug")); 1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else if (!show && debugMenu != wxNOT_FOUND) { 1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GetMenuBar()->Remove(debugMenu); 1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// event handlers 1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnQuit(wxCommandEvent& WXUNUSED(event)) 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // true is to force the frame to close 1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Close(true); 1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnAbout(wxCommandEvent& WXUNUSED(event)) 2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxString msg; 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project msg.Printf(_T("This is the About dialog of the wxWebKit sample.\n") 2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project _T("Welcome to %s"), wxVERSION_STRING); 2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxMessageBox(msg, _T("About wxWebKit Sample"), wxOK | wxICON_INFORMATION, this); 2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnLoadFile(wxCommandEvent& WXUNUSED(event)) 2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxFileDialog* dialog = new wxFileDialog(this, wxT("Choose a file")); 2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (dialog->ShowModal() == wxID_OK) { 2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxString path = dialog->GetPath().Prepend(wxT("file://")); 2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) 2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->LoadURL(path); 2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnLoadEvent(wxWebViewLoadEvent& event) 2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (GetStatusBar() != NULL){ 2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (event.GetState() == wxWEBVIEW_LOAD_NEGOTIATING) { 2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GetStatusBar()->SetStatusText(_("Contacting ") + event.GetURL()); 2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else if (event.GetState() == wxWEBVIEW_LOAD_TRANSFERRING) { 2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GetStatusBar()->SetStatusText(_("Loading ") + event.GetURL()); 2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else if (event.GetState() == wxWEBVIEW_LOAD_ONLOAD_HANDLED) { 2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GetStatusBar()->SetStatusText(_("Load complete.")); 2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project addressBar->SetValue(event.GetURL()); 2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project SetTitle(webview->GetPageTitle()); 2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else if (event.GetState() == wxWEBVIEW_LOAD_FAILED) { 2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GetStatusBar()->SetStatusText(_("Failed to load ") + event.GetURL()); 2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnBeforeLoad(wxWebViewBeforeLoadEvent& myEvent) 2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (m_checkBeforeLoad) { 2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int reply = wxMessageBox(_("Would you like to continue loading ") + myEvent.GetURL() + wxT("?"), _("Continue Loading?"), wxYES_NO); 2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (reply == wxNO) { 2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project myEvent.Cancel(); 2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnAddressBarEnter(wxCommandEvent& event) 2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) 2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->LoadURL(addressBar->GetValue()); 2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnSearchCtrlEnter(wxCommandEvent& event) 2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) { 2618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->LoadURL(wxString::Format(wxT("http://www.google.com/search?rls=en&q=%s&ie=UTF-8&oe=UTF-8"), searchCtrl->GetValue().wc_str())); 2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2650bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochvoid wxWebBrowserShell::OnCut(wxCommandEvent& event) 2660bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{ 2670bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (webview && webview->CanCut()) 2680bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch webview->Cut(); 2690bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch} 2700bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 2710bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochvoid wxWebBrowserShell::OnCopy(wxCommandEvent& event) 2720bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{ 2730bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (webview && webview->CanCopy()) 2740bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch webview->Copy(); 2750bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch} 2760bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 2770bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochvoid wxWebBrowserShell::OnPaste(wxCommandEvent& event) 2780bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{ 2790bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch if (webview && webview->CanPaste()) 2800bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch webview->Paste(); 2810bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch} 2820bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 2838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnBack(wxCommandEvent& event) 2848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) 2868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->GoBack(); 2878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnForward(wxCommandEvent& event) 2908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) 2928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->GoForward(); 2938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnStop(wxCommandEvent& myEvent) 2968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) 2988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->Stop(); 2998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnReload(wxCommandEvent& myEvent) 3028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) 3048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->Reload(); 3058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnMakeTextLarger(wxCommandEvent& myEvent) 3088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) { 3108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview->CanIncreaseTextSize()) 3118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->IncreaseTextSize(); 3128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnMakeTextSmaller(wxCommandEvent& myEvent) 3168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) { 3188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview->CanDecreaseTextSize()) 3198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->DecreaseTextSize(); 3208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnGetSource(wxCommandEvent& myEvent) 3248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) { 3268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxPageSourceViewFrame* pageSourceFrame = new wxPageSourceViewFrame(webview->GetPageSource()); 3278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project pageSourceFrame->Show(); 3288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnSetSource(wxCommandEvent& event) 3328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) 3348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->SetPageSource(wxString(wxT("<p>Hello World!</p>"))); 3358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnBrowse(wxCommandEvent& event) 3388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) 3408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->MakeEditable(!event.IsChecked()); 3418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid wxWebBrowserShell::OnEdit(wxCommandEvent& event) 3448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 3458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) 3468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project webview->MakeEditable(event.IsChecked()); 3478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3490617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsenvoid wxWebBrowserShell::OnRunScript(wxCommandEvent& myEvent) 3500617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen{ 3518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (webview) { 3528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxTextEntryDialog* dialog = new wxTextEntryDialog(this, _("Type in a JavaScript to exectute.")); 3538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (dialog->ShowModal() == wxID_OK) 3548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project wxMessageBox(wxT("Result is: ") + webview->RunScript(dialog->GetValue())); 3558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project dialog->Destroy(); 3578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 3590617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 3600617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsenvoid wxWebBrowserShell::OnEditCommand(wxCommandEvent& myEvent) 3610617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen{ 3620617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen if (webview) { 3630617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen if (!webview->IsEditable()) { 3640617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen wxMessageBox(wxT("Please enable editing before running editing commands.")); 3650617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen return; 3660617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen } 3670617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 3680617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen wxTextEntryDialog* dialog = new wxTextEntryDialog(this, _("Type in a editing command to exectute.")); 3690617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen if (dialog->ShowModal() == wxID_OK) { 3700617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen bool result = webview->ExecuteEditCommand(dialog->GetValue()); 3710617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen if (!result) 3720617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen wxMessageBox(wxT("Editing command failed.")); 3730617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen } 3740617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen dialog->Destroy(); 3750617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen } 3760617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen} 3770617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 3780617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsenvoid wxWebBrowserShell::OnGetEditCommandState(wxCommandEvent& myEvent) 3790617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen{ 3800617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen if (webview) { 3810617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen if (!webview->IsEditable()) { 3820617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen wxMessageBox(wxT("Please enable editing before running editing commands.")); 3830617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen return; 3840617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen } 3850617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 3860617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen wxTextEntryDialog* dialog = new wxTextEntryDialog(this, _("Type in a editing command whose state you want to get.")); 3870617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen if (dialog->ShowModal() == wxID_OK) { 3880617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen EditState result = webview->GetEditCommandState(dialog->GetValue()); 3890617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen if (result == EditStateTrue) 3900617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen wxMessageBox(wxT("State is true.")); 3910617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen else if (result == EditStateFalse) 3920617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen wxMessageBox(wxT("State is false.")); 3930617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen else if (result == EditStateMixed) 3940617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen wxMessageBox(wxT("State is mixed.")); 3950617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen } 3960617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen dialog->Destroy(); 3970617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen } 3980617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen} 399