[PATCH] uianimation.idl: Add more interfaces

Vijay Kiran Kamuju infyquest at gmail.com
Thu Mar 7 15:36:26 CST 2019


with minor changes related to coclass definiions

From: Louis Lenders <xerox.xerox2000x at gmail.com>

Signed-off-by: Louis Lenders <xerox.xerox2000x at gmail.com>
Signed-off-by: Vijay Kiran Kamuju <infyquest at gmail.com>
---
 include/uianimation.idl | 267 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 267 insertions(+)

diff --git a/include/uianimation.idl b/include/uianimation.idl
index 6c026a6ced..e8b366e8fb 100644
--- a/include/uianimation.idl
+++ b/include/uianimation.idl
@@ -20,10 +20,19 @@ import "unknwn.idl";
 
 interface IUIAnimationStoryboard;
 interface IUIAnimationVariable;
+interface IUIAnimationManager;
+interface IUIAnimationPriorityComparison;
+interface IUIAnimationTransitionFactory;
+interface IUIAnimationInterpolator;
+interface IUIAnimationManagerEventHandler;
+interface IUIAnimationTransition;
+interface IUIAnimationTransitionLibrary;
 
 typedef DOUBLE UI_ANIMATION_SECONDS;
 typedef struct { int _; } *UI_ANIMATION_KEYFRAME;
 
+const UI_ANIMATION_SECONDS UI_ANIMATION_SECONDS_EVENTUALLY = -1.0;
+
 typedef enum
 {
     UI_ANIMATION_MANAGER_IDLE,
@@ -76,6 +85,34 @@ typedef enum
     UI_ANIMATION_IDLE_BEHAVIOR_DISABLE,
 } UI_ANIMATION_IDLE_BEHAVIOR;
 
+typedef [v1_enum] enum
+{
+    UI_ANIMATION_MODE_DISABLED,
+    UI_ANIMATION_MODE_SYSTEM_DEFAULT,
+    UI_ANIMATION_MODE_ENABLED
+} UI_ANIMATION_MODE;
+
+typedef [v1_enum] enum
+{
+    UI_ANIMATION_PRIORITY_EFFECT_FAILURE,
+    UI_ANIMATION_PRIORITY_EFFECT_DELAY
+} UI_ANIMATION_PRIORITY_EFFECT;
+
+typedef [v1_enum] enum
+{
+    UI_ANIMATION_DEPENDENCY_NONE = 0,
+    UI_ANIMATION_DEPENDENCY_INTERMEDIATE_VALUES = 0x1,
+    UI_ANIMATION_DEPENDENCY_FINAL_VALUE = 0x2,
+    UI_ANIMATION_DEPENDENCY_FINAL_VELOCITY = 0x4,
+    UI_ANIMATION_DEPENDENCY_DURATION = 0x8
+} UI_ANIMATION_DEPENDENCIES;
+
+typedef [v1_enum] enum
+{
+    UI_ANIMATION_SLOPE_INCREASING,
+    UI_ANIMATION_SLOPE_DECREASING
+} UI_ANIMATION_SLOPE;
+
 [
     local,
     object,
@@ -334,6 +371,212 @@ interface IUIAnimationTimer : IUnknown
         [in] UINT32 fps);
 }
 
+[
+    local,
+    object,
+    uuid(9169896c-ac8d-4e7d-94e5-67fa4dc2f2e8),
+    pointer_default(unique)
+]
+interface IUIAnimationManager : IUnknown
+{
+    HRESULT CreateAnimationVariable(
+        [in] UI_ANIMATION_SECONDS initialvalue,
+        [out, retval] IUIAnimationVariable **variable);
+
+    HRESULT ScheduleTransition(
+        [in] IUIAnimationVariable *variable,
+        [in] IUIAnimationTransition *transition,
+        [in] UI_ANIMATION_SECONDS timenow);
+
+    HRESULT CreateStoryboard(
+        [out, retval] IUIAnimationStoryboard **storyboard);
+
+    HRESULT FinishAllStoryboards(
+        [in] UI_ANIMATION_SECONDS deadline);
+
+    HRESULT AbandonAllStoryboards();
+
+    HRESULT Update(
+        [in] UI_ANIMATION_SECONDS timenow,
+        [out, defaultvalue(0)] UI_ANIMATION_UPDATE_RESULT *updateresult);
+
+    HRESULT GetVariableFromTag(
+        [in] IUnknown * object,
+        [in] UINT32 id,
+        [out, retval] IUIAnimationVariable **variable);
+
+    HRESULT GetStoryboardFromTag(
+        [in] IUnknown * object,
+        [in] UINT32 id,
+        [out, retval] IUIAnimationStoryboard **storyboard);
+
+    HRESULT GetStatus(
+        [out, retval] UI_ANIMATION_MANAGER_STATUS *status);
+
+    HRESULT SetAnimationMode(
+        [in] UI_ANIMATION_MODE mode);
+
+    HRESULT Pause();
+
+    HRESULT Resume();
+
+    HRESULT SetManagerEventHandler(
+        [in] IUIAnimationManagerEventHandler *handler);
+
+    HRESULT SetCancelPriorityComparison(
+        [in] IUIAnimationPriorityComparison *comparison);
+
+    HRESULT SetTrimPriorityComparison(
+        [in] IUIAnimationPriorityComparison *comparison);
+
+    HRESULT SetCompressPriorityComparison(
+        [in] IUIAnimationPriorityComparison *comparison);
+
+    HRESULT SetConcludePriorityComparison(
+        [in] IUIAnimationPriorityComparison *comparison);
+
+    HRESULT SetDefaultLongestAcceptableDelay(
+        [in] UI_ANIMATION_SECONDS delay);
+
+    HRESULT Shutdown();
+}
+
+[
+    local,
+    object,
+    uuid(83fa9b74-5f86-4618-bc6a-a2fac19b3f44),
+    pointer_default(unique)
+]
+interface IUIAnimationPriorityComparison : IUnknown
+{
+    HRESULT HasPriority(
+        [in] IUIAnimationStoryboard *scheduledboard,
+        [in] IUIAnimationStoryboard *newboard,
+        [in] UI_ANIMATION_PRIORITY_EFFECT effect);
+}
+
+[
+    local,
+    object,
+    uuid(fcd91e03-3e3b-45ad-bbb1-6dfc8153743d),
+    pointer_default(unique)
+]
+interface IUIAnimationTransitionFactory : IUnknown
+{
+    HRESULT CreateTransition(
+        [in] IUIAnimationInterpolator *interpolator,
+        [out, retval] IUIAnimationTransition **transition);
+}
+
+[
+    local,
+    object,
+    uuid(7815cbba-ddf7-478c-a46c-7b6c738b7978),
+    pointer_default(unique)
+]
+interface IUIAnimationInterpolator : IUnknown
+{
+    HRESULT SetInitialValueAndVelocity(
+        [in] double initialvalue,
+        [in] double initialvelocity);
+
+    HRESULT SetDuration(
+        [in] UI_ANIMATION_SECONDS duration);
+
+    HRESULT GetDuration(
+        [out, retval] UI_ANIMATION_SECONDS *duration);
+
+    HRESULT GetFinalValue(
+        [out, retval] double *value);
+
+    HRESULT InterpolateValue(
+        [in] UI_ANIMATION_SECONDS offset,
+        [out, retval] double *value);
+
+    HRESULT InterpolateVelocity(
+        [in] UI_ANIMATION_SECONDS offset,
+        [out, retval] double *velocity);
+
+    HRESULT GetDependencies(
+        [out] UI_ANIMATION_DEPENDENCIES *initialvaluedependencies,
+        [out] UI_ANIMATION_DEPENDENCIES *initialvelocitydependencies,
+        [out] UI_ANIMATION_DEPENDENCIES *durationdependencies);
+}
+
+[
+    local,
+    object,
+    uuid(ca5a14b1-d24f-48b8-8fe4-c78169ba954e),
+    pointer_default(unique)
+]
+interface IUIAnimationTransitionLibrary : IUnknown
+{
+    HRESULT CreateInstantaneousTransition(
+        [in] double finalvalue,
+        [out, retval] IUIAnimationTransition **transition);
+
+    HRESULT CreateConstantTransition(
+        [in] UI_ANIMATION_SECONDS duration,
+        [out, retval] IUIAnimationTransition **transition);
+
+    HRESULT CreateDiscreteTransition(
+        [in] UI_ANIMATION_SECONDS delay,
+        [in] double finalvalue,
+        [in] UI_ANIMATION_SECONDS hold,
+        [out, retval] IUIAnimationTransition **transition);
+
+    HRESULT CreateLinearTransition(
+        [in] UI_ANIMATION_SECONDS duration,
+        [in] double finalvalue,
+        [out, retval] IUIAnimationTransition **transition);
+
+    HRESULT CreateLinearTransitionFromSpeed(
+        [in] double speed,
+        [in] double finalvalue,
+        [out, retval] IUIAnimationTransition **transition);
+
+    HRESULT CreateSinusoidalTransitionFromVelocity(
+        [in] UI_ANIMATION_SECONDS duration,
+        [in] UI_ANIMATION_SECONDS period,
+        [out, retval] IUIAnimationTransition **transition);
+
+    HRESULT CreateSinusoidalTransitionFromRange(
+        [in] UI_ANIMATION_SECONDS duration,
+        [in] double minimumvalue,
+        [in] double maximumvalue,
+        [in] UI_ANIMATION_SECONDS period,
+        [in] UI_ANIMATION_SLOPE slope,
+        [out, retval] IUIAnimationTransition **transition);
+
+  HRESULT CreateAccelerateDecelerateTransition(
+        [in] UI_ANIMATION_SECONDS duration,
+        [in] double finalvalue,
+        [in] double accelerationratio,
+        [in] double decelerationratio,
+        [out, retval] IUIAnimationTransition **transition);
+
+    HRESULT CreateReversalTransition(
+        [in] UI_ANIMATION_SECONDS duration,
+        [out, retval] IUIAnimationTransition **transition);
+
+    HRESULT CreateCubicTransition(
+        [in] UI_ANIMATION_SECONDS duration,
+        [in] double finalvalue,
+        [in] double finalvelocity,
+        [out, retval] IUIAnimationTransition **transition);
+
+    HRESULT CreateSmoothStopTransition(
+        [in] UI_ANIMATION_SECONDS maximumduration,
+        [in] double finalvalue,
+        [out, retval] IUIAnimationTransition **transition);
+
+    HRESULT CreateParabolicTransitionFromAcceleration(
+        [in] UI_ANIMATION_SECONDS finalvalue,
+        [in] double finalvelocity,
+        [in] double acceleration,
+        [out, retval] IUIAnimationTransition **transition);
+}
+
 [
     uuid(44ca24db-1a92-4149-bab5-fb14d64b401e),
     version(1.0)
@@ -347,4 +590,28 @@ library UIAnimation
     {
         [default] interface IUIAnimationTimer;
     }
+
+    [
+        uuid(4c1fc63a-695c-47e8-a339-1a194be3d0b8)
+    ]
+    coclass UIAnimationManager
+    {
+        [default] interface IUIAnimationManager;
+    }
+
+    [
+        uuid(8a9b1cdd-fcd7-419c-8b44-42fd17db1887)
+    ]
+    coclass UIAnimationTransitionFactory
+    {
+        [default] interface IUIAnimationTransitionFactory;
+    }
+
+    [
+        uuid(1d6322ad-aa85-4ef5-a828-86d71067d145)
+    ]
+    coclass UIAnimationTransitionLibrary
+    {
+        [default] interface IUIAnimationTransitionLibrary;
+    }
 }
-- 
2.21.0




More information about the wine-devel mailing list