[GTK][AC] Implement basic transform animations with clutter ac backend
https://bugs.webkit.org/show_bug.cgi?id=109363

Patch by ChangSeok Oh <shivamidow@gmail.com> on 2013-02-13
Reviewed by Gustavo Noronha Silva.

Implement basic transform animation with clutter ac backend.
GraphicsLayerClutter is almost same with GraphicsLayerCA. And PlatformClutterAnimation
interfaces are also similar with PlatformCAAnimation, but they are implemented
with native clutter APIs. Clutter backend AC supports a basic single transform animation
with this patch now, but additive animation combination and keyframe animation
are not supported yet.

Covered by existing animation tests.

* platform/graphics/clutter/GraphicsLayerActor.cpp:
(graphicsLayerActorSetTransform):
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::isTransformTypeTransformationMatrix):
(WebCore):
(WebCore::isTransformTypeFloatPoint3D):
(WebCore::isTransformTypeNumber):
(WebCore::getTransformFunctionValue):
(WebCore::getValueFunctionNameForTransformOperation):
(WebCore::GraphicsLayerClutter::setTransformAnimationEndpoints):
(WebCore::GraphicsLayerClutter::appendToUncommittedAnimations):
(WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(GraphicsLayerClutter):
* platform/graphics/clutter/PlatformClutterAnimation.cpp:
(WebCore::toClutterActorPropertyString):
(WebCore):
(WebCore::PlatformClutterAnimation::supportsValueFunction):
(WebCore::PlatformClutterAnimation::duration):
(WebCore::PlatformClutterAnimation::setDuration):
(WebCore::PlatformClutterAnimation::setAdditive):
(WebCore::PlatformClutterAnimation::valueFunction):
(WebCore::PlatformClutterAnimation::setValueFunction):
(WebCore::PlatformClutterAnimation::setFromValue):
(WebCore::PlatformClutterAnimation::setToValue):
(WebCore::PlatformClutterAnimation::timeline):
(WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
(WebCore::PlatformClutterAnimation::addOpacityTransition):
(WebCore::PlatformClutterAnimation::addTransformTransition):
(WebCore::PlatformClutterAnimation::addAnimationForKey):
* platform/graphics/clutter/PlatformClutterAnimation.h:
(PlatformClutterAnimation):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142749 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][WK2] Introduce WKViewClient C API
https://bugs.webkit.org/show_bug.cgi?id=109559

Reviewed by Anders Carlsson.

This patch introduces the WKViewClient C API for EFL's WKView. The purpose of
this new C API is to eventually remove the interdependency between EFL's
PageClient and EwkView. When completed, PageClient should only interact with
WebView and not be aware of EwkView so that we have a clean separation between
internal WebKit2 classes and our EFL Ewk API implementation.

This patch is only a first step towards this goal as there is a lot of work
to do to achieve complete separation between EwkView and PageClient. The purpose
of this patch is to introduce the needed architecture which will later be
extended by introducing new WKViewClient callbacks.

* PlatformEfl.cmake: Add new ViewClientEfl.cpp and WebViewClient.cpp to EFL's CMake
configuration.
* UIProcess/API/C/efl/WKView.cpp:
(WKViewSetViewClient):
* UIProcess/API/C/efl/WKView.h: Introduce new WKViewClient C API.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView): Initialize ViewClientEfl.
* UIProcess/API/efl/EwkView.h: Add new ViewClientEfl member.
(WebKit):
(EwkView):
* UIProcess/API/efl/EwkViewCallbacks.h: Update ContentsSizeChanged smart callback to
accept a WKSize in parameter instead of an IntRect.
* UIProcess/efl/PageClientBase.cpp: Start calling WKViewClient callbacks instead of
interacting directly with EwkView to avoid violating API layering.
(WebKit::PageClientBase::view):
(WebKit::PageClientBase::setViewNeedsDisplay):
* UIProcess/efl/PageClientBase.h:
(WebKit):
(PageClientBase):
* UIProcess/efl/PageClientDefaultImpl.cpp: Start calling WKViewClient callbacks instead of
interacting directly with EwkView to avoid violating API layering.
(WebKit::PageClientDefaultImpl::didChangeContentsSize):
* UIProcess/efl/PageClientLegacyImpl.cpp: Start calling WKViewClient callbacks instead of
interacting directly with EwkView to avoid violating API layering.
(WebKit::PageClientLegacyImpl::didChangeContentsSize):
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit):
(WebKit::ViewClientEfl::toEwkView):
(WebKit::ViewClientEfl::viewNeedsDisplay):
(WebKit::ViewClientEfl::didChangeContentsSize):
(WebKit::ViewClientEfl::ViewClientEfl):
(WebKit::ViewClientEfl::~ViewClientEfl):
* UIProcess/efl/ViewClientEfl.h: Introduce new ViewClientEfl which handles WKViewClient callbacks
and interacts with EwkView.
(WebKit):
(ViewClientEfl):
(WebKit::ViewClientEfl::create):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::initializeClient):
(WebKit):
(WebKit::WebView::setViewNeedsDisplay):
(WebKit::WebView::didChangeContentsSize):
* UIProcess/efl/WebView.h: Add new WebViewClient member and corresponding methods to interact
with it.
(WebView):
* UIProcess/efl/WebViewClient.cpp:
(WebKit):
(WebKit::WebViewClient::viewNeedsDisplay):
(WebKit::WebViewClient::didChangeContentsSize):
* UIProcess/efl/WebViewClient.h: Add new WebViewClient APIClient for WKViewClient.
(WebCore):
(WebKit):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142750 268f45cc-cd09-0410-ab3c-d52691b4dbfc