// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
-#if wxUSE_WEBVIEW_WEBKIT
+#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT
#include "wx/stockitem.h"
#include "wx/gtk/webview_webkit.h"
if (status == WEBKIT_LOAD_FINISHED)
{
+ WebKitWebBackForwardList* hist = webkit_web_view_get_back_forward_list(WEBKIT_WEB_VIEW(widget));
+ WebKitWebHistoryItem* item = webkit_web_back_forward_list_get_current_item(hist);
+ //We have to check if we are actually storing history
+ //If the item isn't added we add it ourselves, it isn't added otherwise
+ //with a custom scheme.
+ if(WEBKIT_IS_WEB_HISTORY_ITEM(item) && webkit_web_history_item_get_uri(item) != url)
+ {
+ WebKitWebHistoryItem* newitem = webkit_web_history_item_new_with_data(url, webKitCtrl->GetCurrentTitle());
+ webkit_web_back_forward_list_add_item(hist, newitem);
+ }
+
webKitCtrl->m_busy = false;
wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_LOADED,
webKitCtrl->GetId(),
- url, target, false);
+ url, target);
if (webKitCtrl && webKitCtrl->GetEventHandler())
webKitCtrl->GetEventHandler()->ProcessEvent(event);
webKitCtrl->m_busy = true;
wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_NAVIGATED,
webKitCtrl->GetId(),
- url, target, false);
+ url, target);
if (webKitCtrl && webKitCtrl->GetEventHandler())
webKitCtrl->GetEventHandler()->ProcessEvent(event);
wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_NAVIGATING,
webKitCtrl->GetId(),
wxString( uri, wxConvUTF8 ),
- target,
- true);
+ target);
if (webKitCtrl && webKitCtrl->GetEventHandler())
webKitCtrl->GetEventHandler()->ProcessEvent(event);
- if (event.IsVetoed())
+ if (!event.IsAllowed())
{
webKitCtrl->m_busy = false;
webkit_web_policy_decision_ignore(policy_decision);
wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_ERROR,
webKitWindow->GetId(),
- uri, "", false);
+ uri, "");
event.SetString(description);
event.SetInt(type);
wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_NEWWINDOW,
webKitCtrl->GetId(),
wxString( uri, wxConvUTF8 ),
- target,
- true);
+ target);
if (webKitCtrl && webKitCtrl->GetEventHandler())
webKitCtrl->GetEventHandler()->ProcessEvent(event);
wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED,
webKitCtrl->GetId(),
webKitCtrl->GetCurrentURL(),
- "", true);
+ "");
event.SetString(wxString(title, wxConvUTF8));
if (webKitCtrl && webKitCtrl->GetEventHandler())
webkit_web_view_set_zoom_level (WEBKIT_WEB_VIEW(web_view), level);
}
-float wxWebViewWebKit::GetWebkitZoom()
+float wxWebViewWebKit::GetWebkitZoom() const
{
return webkit_web_view_get_zoom_level (WEBKIT_WEB_VIEW(web_view));
}
}
}
-void wxWebViewWebKit::LoadUrl(const wxString& url)
+void wxWebViewWebKit::LoadURL(const wxString& url)
{
webkit_web_view_load_uri(WEBKIT_WEB_VIEW(web_view), wxGTK_CONV(url));
}
}
-bool wxWebViewWebKit::CanGoBack()
+bool wxWebViewWebKit::CanGoBack() const
{
return webkit_web_view_can_go_back (WEBKIT_WEB_VIEW(web_view));
}
-bool wxWebViewWebKit::CanGoForward()
+bool wxWebViewWebKit::CanGoForward() const
{
return webkit_web_view_can_go_forward (WEBKIT_WEB_VIEW(web_view));
}
}
}
-bool wxWebViewWebKit::CanCut()
+bool wxWebViewWebKit::CanCut() const
{
return webkit_web_view_can_cut_clipboard(WEBKIT_WEB_VIEW(web_view));
}
-bool wxWebViewWebKit::CanCopy()
+bool wxWebViewWebKit::CanCopy() const
{
return webkit_web_view_can_copy_clipboard(WEBKIT_WEB_VIEW(web_view));
}
-bool wxWebViewWebKit::CanPaste()
+bool wxWebViewWebKit::CanPaste() const
{
return webkit_web_view_can_paste_clipboard(WEBKIT_WEB_VIEW(web_view));
}
webkit_web_view_paste_clipboard(WEBKIT_WEB_VIEW(web_view));
}
-bool wxWebViewWebKit::CanUndo()
+bool wxWebViewWebKit::CanUndo() const
{
return webkit_web_view_can_undo(WEBKIT_WEB_VIEW(web_view));
}
-bool wxWebViewWebKit::CanRedo()
+bool wxWebViewWebKit::CanRedo() const
{
return webkit_web_view_can_redo(WEBKIT_WEB_VIEW(web_view));
}
webkit_web_view_redo(WEBKIT_WEB_VIEW(web_view));
}
-wxString wxWebViewWebKit::GetCurrentURL()
+wxString wxWebViewWebKit::GetCurrentURL() const
{
// FIXME: check which encoding the web kit control uses instead of
// assuming UTF8 (here and elsewhere too)
}
-wxString wxWebViewWebKit::GetCurrentTitle()
+wxString wxWebViewWebKit::GetCurrentTitle() const
{
return wxString::FromUTF8(webkit_web_view_get_title(
WEBKIT_WEB_VIEW(web_view)));
}
-wxString wxWebViewWebKit::GetPageSource()
+wxString wxWebViewWebKit::GetPageSource() const
{
WebKitWebFrame* frame = webkit_web_view_get_main_frame(
WEBKIT_WEB_VIEW(web_view));
}
-wxWebViewZoom wxWebViewWebKit::GetZoom()
+wxWebViewZoom wxWebViewWebKit::GetZoom() const
{
float zoom = GetWebkitZoom();
}
-bool wxWebViewWebKit::IsBusy()
+bool wxWebViewWebKit::IsBusy() const
{
return m_busy;
webkit_web_view_set_editable(WEBKIT_WEB_VIEW(web_view), enable);
}
-bool wxWebViewWebKit::IsEditable()
+bool wxWebViewWebKit::IsEditable() const
{
return webkit_web_view_get_editable(WEBKIT_WEB_VIEW(web_view));
}
webkit_web_view_delete_selection(WEBKIT_WEB_VIEW(web_view));
}
-bool wxWebViewWebKit::HasSelection()
+bool wxWebViewWebKit::HasSelection() const
{
return webkit_web_view_has_selection(WEBKIT_WEB_VIEW(web_view));
}
webkit_web_view_select_all(WEBKIT_WEB_VIEW(web_view));
}
-wxString wxWebViewWebKit::GetSelectedText()
+wxString wxWebViewWebKit::GetSelectedText() const
{
WebKitDOMDocument* doc;
WebKitDOMDOMWindow* win;
wxConvUTF8);
}
-wxString wxWebViewWebKit::GetSelectedSource()
+wxString wxWebViewWebKit::GetSelectedSource() const
{
WebKitDOMDocument* doc;
WebKitDOMDOMWindow* win;
}
-wxString wxWebViewWebKit::GetPageText()
+wxString wxWebViewWebKit::GetPageText() const
{
WebKitDOMDocument* doc;
WebKitDOMHTMLElement* body;
}
-#endif // wxHAVE_WEB_BACKEND_GTK_WEBKIT
+#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT