Title: [104145] trunk/Source/WebKit2
Revision
104145
Author
carlo...@webkit.org
Date
2012-01-05 05:04:35 -0800 (Thu, 05 Jan 2012)

Log Message

[GTK] Add methods to get/set the WebView zoom level to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=75248

Reviewed by Gustavo Noronha Silva.

It uses the page zoom factor unconditionally for now.

* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewSetProperty):
(webkitWebViewGetProperty):
(webkit_web_view_class_init): Add WebKitWebView:zoom-level
property.
(webkit_web_view_set_zoom_level): Set current zoom level.
(webkit_web_view_get_zoom_level): Get current zoom level.
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
* UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
(testWebViewZoomLevel):
(beforeAll):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (104144 => 104145)


--- trunk/Source/WebKit2/ChangeLog	2012-01-05 12:55:50 UTC (rev 104144)
+++ trunk/Source/WebKit2/ChangeLog	2012-01-05 13:04:35 UTC (rev 104145)
@@ -1,5 +1,27 @@
 2012-01-05  Carlos Garcia Campos  <cgar...@igalia.com>
 
+        [GTK] Add methods to get/set the WebView zoom level to WebKit2 GTK+ API
+        https://bugs.webkit.org/show_bug.cgi?id=75248
+
+        Reviewed by Gustavo Noronha Silva.
+
+        It uses the page zoom factor unconditionally for now.
+
+        * UIProcess/API/gtk/WebKitWebView.cpp:
+        (webkitWebViewSetProperty):
+        (webkitWebViewGetProperty):
+        (webkit_web_view_class_init): Add WebKitWebView:zoom-level
+        property.
+        (webkit_web_view_set_zoom_level): Set current zoom level.
+        (webkit_web_view_get_zoom_level): Get current zoom level.
+        * UIProcess/API/gtk/WebKitWebView.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
+        * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+        (testWebViewZoomLevel):
+        (beforeAll):
+
+2012-01-05  Carlos Garcia Campos  <cgar...@igalia.com>
+
         [GTK] Rename webkit_web_view_load_alternate_html as webkit_web_view_replace_content in WebKit2 GTK+
         https://bugs.webkit.org/show_bug.cgi?id=75433
 

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp (104144 => 104145)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp	2012-01-05 12:55:50 UTC (rev 104144)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp	2012-01-05 13:04:35 UTC (rev 104145)
@@ -67,7 +67,8 @@
     PROP_WEB_CONTEXT,
     PROP_TITLE,
     PROP_ESTIMATED_LOAD_PROGRESS,
-    PROP_URI
+    PROP_URI,
+    PROP_ZOOM_LEVEL
 };
 
 struct _WebKitWebViewPrivate {
@@ -187,6 +188,9 @@
     case PROP_WEB_CONTEXT:
         webView->priv->context = WEBKIT_WEB_CONTEXT(g_value_get_object(value));
         break;
+    case PROP_ZOOM_LEVEL:
+        webkit_web_view_set_zoom_level(webView, g_value_get_double(value));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
     }
@@ -209,6 +213,9 @@
     case PROP_URI:
         g_value_set_string(value, webkit_web_view_get_uri(webView));
         break;
+    case PROP_ZOOM_LEVEL:
+        g_value_set_double(value, webkit_web_view_get_zoom_level(webView));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
     }
@@ -405,6 +412,20 @@
                      G_TYPE_POINTER);
 
     /**
+     * WebKitWebView:zoom-level:
+     *
+     * The zoom level of the #WebKitWebView content.
+     * See webkit_web_view_set_zoom_level() for more details.
+     */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_ZOOM_LEVEL,
+                                    g_param_spec_double("zoom-level",
+                                                        "Zoom level",
+                                                        "The zoom level of the view content",
+                                                        0, G_MAXDOUBLE, 1,
+                                                        WEBKIT_PARAM_READWRITE));
+
+    /**
      * WebKitWebView::create:
      * @web_view: the #WebKitWebView on which the signal is emitted
      *
@@ -1147,3 +1168,40 @@
 
     return webView->priv->windowProperties.get();
 }
+
+/**
+ * webkit_web_view_set_zoom_level:
+ * @web_view: a #WebKitWebView
+ * @zoom_level: the zoom level
+ *
+ * Set the zoom level of @web_view, i.e. the factor by which the
+ * view contents are scaled with respect to their original size.
+ */
+void webkit_web_view_set_zoom_level(WebKitWebView* webView, gdouble zoomLevel)
+{
+    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
+
+    WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)));
+    if (WKPageGetPageZoomFactor(wkPage) == zoomLevel)
+        return;
+
+    WKPageSetPageZoomFactor(wkPage, zoomLevel);
+    g_object_notify(G_OBJECT(webView), "zoom-level");
+}
+
+/**
+ * webkit_web_view_get_zoom_level:
+ * @web_view: a #WebKitWebView
+ *
+ * Get the zoom level of @web_view, i.e. the factor by which the
+ * view contents are scaled with respect to their original size.
+ *
+ * Returns: the current zoom level of @web_view
+ */
+gdouble webkit_web_view_get_zoom_level(WebKitWebView* webView)
+{
+    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 1);
+
+    WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)));
+    return WKPageGetPageZoomFactor(wkPage);
+}

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h (104144 => 104145)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h	2012-01-05 12:55:50 UTC (rev 104144)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h	2012-01-05 13:04:35 UTC (rev 104145)
@@ -201,6 +201,12 @@
 WEBKIT_API WebKitWindowProperties *
 webkit_web_view_get_window_properties        (WebKitWebView             *web_view);
 
+WEBKIT_API void
+webkit_web_view_set_zoom_level               (WebKitWebView             *web_view,
+                                              gdouble                    zoom_level);
+WEBKIT_API gdouble
+webkit_web_view_get_zoom_level               (WebKitWebView             *web_view);
+
 G_END_DECLS
 
 #endif

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt (104144 => 104145)


--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2012-01-05 12:55:50 UTC (rev 104144)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2012-01-05 13:04:35 UTC (rev 104145)
@@ -72,6 +72,8 @@
 webkit_web_view_set_settings
 webkit_web_view_get_settings
 webkit_web_view_get_window_properties
+webkit_web_view_set_zoom_level
+webkit_web_view_get_zoom_level
 
 <SUBSECTION Standard>
 WebKitWebViewClass

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp (104144 => 104145)


--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp	2012-01-05 12:55:50 UTC (rev 104144)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp	2012-01-05 13:04:35 UTC (rev 104145)
@@ -357,6 +357,13 @@
     g_assert_cmpint(events[2], ==, UIClientTest::Close);
 }
 
+static void testWebViewZoomLevel(WebViewTest* test, gconstpointer)
+{
+    g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 1);
+    webkit_web_view_set_zoom_level(test->m_webView, 2.5);
+    g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 2.5);
+}
+
 void beforeAll()
 {
     WebViewTest::add("WebKitWebView", "default-context", testWebViewDefaultContext);
@@ -366,6 +373,7 @@
     UIClientTest::add("WebKitWebView", "create-ready-close", testWebViewCreateReadyClose);
     UIClientTest::add("WebKitWebView", "_javascript_-dialogs", testWebViewJavaScriptDialogs);
     UIClientTest::add("WebKitWebView", "window-properties", testWebViewWindowProperties);
+    WebViewTest::add("WebKitWebView", "zoom-level", testWebViewZoomLevel);
 }
 
 void afterAll()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to