Title: [132479] trunk/Source/WebKit2
Revision
132479
Author
[email protected]
Date
2012-10-25 06:22:19 -0700 (Thu, 25 Oct 2012)

Log Message

[WK2][EFL] Add ewk_view_pagination_mode_set/get() APIs
https://bugs.webkit.org/show_bug.cgi?id=100213

Patch by KyungTae Kim <[email protected]> on 2012-10-25
Reviewed by Gyuyoung Kim.

Add ewk_view_pagination_mode_set/get() APIs for paginated display.

* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_pagination_mode_set):
(ewk_view_pagination_mode_get):
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (132478 => 132479)


--- trunk/Source/WebKit2/ChangeLog	2012-10-25 13:20:32 UTC (rev 132478)
+++ trunk/Source/WebKit2/ChangeLog	2012-10-25 13:22:19 UTC (rev 132479)
@@ -1,3 +1,19 @@
+2012-10-25  KyungTae Kim  <[email protected]>
+
+        [WK2][EFL] Add ewk_view_pagination_mode_set/get() APIs
+        https://bugs.webkit.org/show_bug.cgi?id=100213
+
+        Reviewed by Gyuyoung Kim.
+
+        Add ewk_view_pagination_mode_set/get() APIs for paginated display.
+
+        * UIProcess/API/efl/ewk_view.cpp:
+        (ewk_view_pagination_mode_set):
+        (ewk_view_pagination_mode_get):
+        * UIProcess/API/efl/ewk_view.h:
+        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+        (TEST_F):
+
 2012-10-25  Sudarsana Nagineni  <[email protected]>
 
         [EFL][AC] Fix build break when AC is enabled

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp (132478 => 132479)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp	2012-10-25 13:20:32 UTC (rev 132478)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp	2012-10-25 13:22:19 UTC (rev 132479)
@@ -1239,3 +1239,28 @@
     return false;
 #endif
 }
+
+// Ewk_Pagination_Mode should be matched up orders with WebCore::Pagination::Mode.
+COMPILE_ASSERT_MATCHING_ENUM(EWK_PAGINATION_MODE_UNPAGINATED, WebCore::Pagination::Unpaginated);
+COMPILE_ASSERT_MATCHING_ENUM(EWK_PAGINATION_MODE_LEFT_TO_RIGHT, WebCore::Pagination::LeftToRightPaginated);
+COMPILE_ASSERT_MATCHING_ENUM(EWK_PAGINATION_MODE_RIGHT_TO_LEFT, WebCore::Pagination::RightToLeftPaginated);
+COMPILE_ASSERT_MATCHING_ENUM(EWK_PAGINATION_MODE_TOP_TO_BOTTOM, WebCore::Pagination::TopToBottomPaginated);
+COMPILE_ASSERT_MATCHING_ENUM(EWK_PAGINATION_MODE_BOTTOM_TO_TOP, WebCore::Pagination::BottomToTopPaginated);
+
+Eina_Bool ewk_view_pagination_mode_set(Evas_Object* ewkView, Ewk_Pagination_Mode mode)
+{
+    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+    EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl, false);
+    
+    impl->pageProxy->setPaginationMode(static_cast<WebCore::Pagination::Mode>(mode));
+
+    return true;
+}
+
+Ewk_Pagination_Mode ewk_view_pagination_mode_get(const Evas_Object* ewkView)
+{
+    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, EWK_PAGINATION_MODE_INVALID);
+    EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl, EWK_PAGINATION_MODE_INVALID);
+
+    return static_cast<Ewk_Pagination_Mode>(impl->pageProxy->paginationMode());
+}

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h (132478 => 132479)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h	2012-10-25 13:20:32 UTC (rev 132478)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h	2012-10-25 13:22:19 UTC (rev 132479)
@@ -271,6 +271,18 @@
 typedef enum Ewk_Find_Options Ewk_Find_Options;
 
 /**
+ * Enum values used to set pagination mode.
+ */
+typedef enum {
+    EWK_PAGINATION_MODE_INVALID = -1, /**< invalid pagination mode that will be returned when error occured. */
+    EWK_PAGINATION_MODE_UNPAGINATED, /**< default mode for pagination. not paginated  */
+    EWK_PAGINATION_MODE_LEFT_TO_RIGHT, /**< go to the next page with scrolling left to right horizontally. */
+    EWK_PAGINATION_MODE_RIGHT_TO_LEFT, /**< go to the next page with scrolling right to left horizontally. */
+    EWK_PAGINATION_MODE_TOP_TO_BOTTOM, /**< go to the next page with scrolling top to bottom vertically. */
+    EWK_PAGINATION_MODE_BOTTOM_TO_TOP /**< go to the next page with scrolling bottom to top vertically. */
+} Ewk_Pagination_Mode;
+
+/**
  * Sets the smart class APIs, enabling view to be inherited.
  *
  * @param api class definition to set, all members with the
@@ -793,6 +805,28 @@
  */
 EAPI Eina_Bool ewk_view_inspector_close(Evas_Object *o);
 
+/**
+ * Set pagination mode to the current web page.
+ *
+ * @param o view object to set the pagenation mode
+ * @param mode The Ewk_Pagination_Mode to set
+ *
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
+EAPI Eina_Bool ewk_view_pagination_mode_set(Evas_Object *o, Ewk_Pagination_Mode mode);
+
+/**
+ * Get pagination mode of the current web page. 
+ * 
+ * The default value is EWK_PAGINATION_MODE_UNPAGINATED.
+ * When error occured, EWK_PAGINATION_MODE_INVALID is returned. 
+ *
+ * @param o view object to get the pagination mode
+ *
+ * @return The pagination mode of the current web page
+ */
+EAPI Ewk_Pagination_Mode ewk_view_pagination_mode_get(const Evas_Object *o);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp (132478 => 132479)


--- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp	2012-10-25 13:20:32 UTC (rev 132478)
+++ trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp	2012-10-25 13:22:19 UTC (rev 132479)
@@ -967,3 +967,32 @@
     ASSERT_TRUE(loadUrlSync(environment->defaultTestPageUrl()));
     ASSERT_FLOAT_EQ(1, ewk_view_scale_get(webView()));
 }
+
+TEST_F(EWK2UnitTestBase, ewk_view_pagination)
+{
+    ASSERT_TRUE(loadUrlSync(environment->defaultTestPageUrl()));
+
+    // Default pagination value is EWK_PAGINATION_MODE_UNPAGINATED
+    ASSERT_EQ(EWK_PAGINATION_MODE_UNPAGINATED, ewk_view_pagination_mode_get(webView()));
+
+    ASSERT_TRUE(ewk_view_pagination_mode_set(webView(), EWK_PAGINATION_MODE_LEFT_TO_RIGHT));
+    // Reload page to check the pagination mode.
+    ASSERT_TRUE(loadUrlSync(environment->defaultTestPageUrl()));
+    ASSERT_EQ(EWK_PAGINATION_MODE_LEFT_TO_RIGHT, ewk_view_pagination_mode_get(webView()));
+
+    ASSERT_TRUE(ewk_view_pagination_mode_set(webView(), EWK_PAGINATION_MODE_RIGHT_TO_LEFT));
+    ASSERT_TRUE(loadUrlSync(environment->defaultTestPageUrl()));
+    ASSERT_EQ(EWK_PAGINATION_MODE_RIGHT_TO_LEFT, ewk_view_pagination_mode_get(webView()));
+
+    ASSERT_TRUE(ewk_view_pagination_mode_set(webView(), EWK_PAGINATION_MODE_TOP_TO_BOTTOM));
+    ASSERT_TRUE(loadUrlSync(environment->defaultTestPageUrl()));
+    ASSERT_EQ(EWK_PAGINATION_MODE_TOP_TO_BOTTOM, ewk_view_pagination_mode_get(webView()));
+
+    ASSERT_TRUE(ewk_view_pagination_mode_set(webView(),  EWK_PAGINATION_MODE_BOTTOM_TO_TOP));
+    ASSERT_TRUE(loadUrlSync(environment->defaultTestPageUrl()));
+    ASSERT_EQ(EWK_PAGINATION_MODE_BOTTOM_TO_TOP, ewk_view_pagination_mode_get(webView()));
+
+    ASSERT_TRUE(ewk_view_pagination_mode_set(webView(), EWK_PAGINATION_MODE_UNPAGINATED));
+    ASSERT_TRUE(loadUrlSync(environment->defaultTestPageUrl()));
+    ASSERT_EQ(EWK_PAGINATION_MODE_UNPAGINATED, ewk_view_pagination_mode_get(webView()));
+}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to