/* * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther * Copyright (C) 2008 Jan Michael C. Alonzo * Copyright (C) 2008, 2010 Collabora Ltd. * Copyright (C) 2010 Igalia S.L. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifndef webkitwebviewprivate_h #define webkitwebviewprivate_h #include "DataObjectGtk.h" #include "FullscreenVideoController.h" #include "GOwnPtr.h" #include "ResourceHandle.h" #include namespace WebKit { WebCore::Page* core(WebKitWebView*); WebKitWebView* kit(WebCore::Page*); typedef struct DroppingContext_ { WebKitWebView* webView; GdkDragContext* gdkContext; RefPtr dataObject; WebCore::IntPoint lastMotionPosition; int pendingDataRequests; bool dropHappened; } DroppingContext; } extern "C" { #define WEBKIT_WEB_VIEW_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_VIEW, WebKitWebViewPrivate)) typedef struct _WebKitWebViewPrivate WebKitWebViewPrivate; struct _WebKitWebViewPrivate { WebCore::Page* corePage; GRefPtr webSettings; GRefPtr webInspector; GRefPtr viewportAttributes; GRefPtr webWindowFeatures; WebKitWebFrame* mainFrame; GRefPtr backForwardList; GtkMenu* currentMenu; gint lastPopupXPosition; gint lastPopupYPosition; HashSet children; GRefPtr imContext; gboolean transparent; GRefPtr horizontalAdjustment; GRefPtr verticalAdjustment; #ifndef GTK_API_VERSION_2 // GtkScrollablePolicy needs to be checked when // driving the scrollable adjustment values GtkScrollablePolicy horizontalScrollingPolicy; GtkScrollablePolicy verticalScrollingPolicy; #endif gboolean zoomFullContent; WebKitLoadStatus loadStatus; CString encoding; CString customEncoding; CString iconURI; gboolean disposing; gboolean usePrimaryForPaste; #if ENABLE(VIDEO) FullscreenVideoController* fullscreenVideoController; #endif // These are hosted here because the DataSource object is // created too late in the frame loading process. GRefPtr mainResource; CString mainResourceIdentifier; GRefPtr subResources; CString tooltipText; WebCore::IntRect tooltipArea; int currentClickCount; WebCore::IntPoint previousClickPoint; guint previousClickButton; guint32 previousClickTime; HashMap > draggingDataObjects; HashMap droppingContexts; }; void webkit_web_view_notify_ready(WebKitWebView*); void webkit_web_view_request_download(WebKitWebView*, WebKitNetworkRequest*, const WebCore::ResourceResponse& = WebCore::ResourceResponse(), WebCore::ResourceHandle* = 0); void webkit_web_view_add_resource(WebKitWebView*, const char*, WebKitWebResource*); void webkit_web_view_add_main_resource(WebKitWebView*, const char*, WebKitWebResource*); void webkit_web_view_remove_resource(WebKitWebView*, const char*); WebKitWebResource* webkit_web_view_get_resource(WebKitWebView*, char*); WebKitWebResource* webkit_web_view_get_main_resource(WebKitWebView*); void webkit_web_view_clear_resources(WebKitWebView*); GList* webkit_web_view_get_subresources(WebKitWebView*); void webkit_web_view_set_tooltip_text(WebKitWebView*, const char*); GtkMenu* webkit_web_view_get_context_menu(WebKitWebView*); WEBKIT_API gchar* webkit_web_view_get_selected_text(WebKitWebView*); bool webkit_web_view_use_primary_for_paste(WebKitWebView*); void webViewEnterFullscreen(WebKitWebView* webView, WebCore::Node*); void webViewExitFullscreen(WebKitWebView* webView); } #endif