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()));
+}