/// Creates an initialized fade.<br />
/// </summary>
/// <remarks>DurationmSeconds must be greater than zero.</remarks>
- public FadeTransitionItem(View view, float opacity, bool isAppearing, TimePeriod timePeriod, AlphaFunction alphaFunction) : this(Interop.FadeTransitionItem.New(view.SwigCPtr, opacity, timePeriod.SwigCPtr), true)
+ public FadeTransitionItem(View view, float opacity, bool appearingTransition, TimePeriod timePeriod, AlphaFunction alphaFunction) : this(Interop.FadeTransitionItem.New(view.SwigCPtr, opacity, timePeriod.SwigCPtr), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- AppearingTransition = isAppearing;
+ AppearingTransition = appearingTransition;
AlphaFunction = alphaFunction;
}
/// Creates an initialized ScaleTransition.<br />
/// </summary>
/// <remarks>Delay and duration of timePeriod must be greater than zero.</remarks>
- public ScaleTransitionItem(View view, float scale, bool isAppearing, TimePeriod timePeriod, AlphaFunction alphaFunction) : this(Interop.ScaleTransitionItem.New(view.SwigCPtr, scale, timePeriod.SwigCPtr), true)
+ public ScaleTransitionItem(View view, float scale, bool appearingTransition, TimePeriod timePeriod, AlphaFunction alphaFunction) : this(Interop.ScaleTransitionItem.New(view.SwigCPtr, scale, timePeriod.SwigCPtr), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- AppearingTransition = isAppearing;
+ AppearingTransition = appearingTransition;
AlphaFunction = alphaFunction;
}
/// Creates an initialized ScaleTransition.<br />
/// </summary>
/// <remarks>Delay and duration of timePeriod must be greater than zero.</remarks>
- public ScaleTransitionItem(View view, Vector2 scale, bool isAppearing, TimePeriod timePeriod, AlphaFunction alphaFunction) : this(Interop.ScaleTransitionItem.New(view.SwigCPtr, scale.SwigCPtr, timePeriod.SwigCPtr), true)
+ public ScaleTransitionItem(View view, Vector2 scale, bool appearingTransition, TimePeriod timePeriod, AlphaFunction alphaFunction) : this(Interop.ScaleTransitionItem.New(view.SwigCPtr, scale.SwigCPtr, timePeriod.SwigCPtr), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- AppearingTransition = isAppearing;
+ AppearingTransition = appearingTransition;
AlphaFunction = alphaFunction;
}
/// Creates an initialized SlideTransition.<br />
/// </summary>
/// <remarks>Delay and duration of timePeriod must be greater than zero.</remarks>
- public SlideTransitionItem(View view, Vector2 direction, bool isAppearing, TimePeriod timePeriod, AlphaFunction alphaFunction) : this(Interop.SlideTransitionItem.New(view.SwigCPtr, direction.SwigCPtr, timePeriod.SwigCPtr), true)
+ public SlideTransitionItem(View view, Vector2 direction, bool appearingTransition, TimePeriod timePeriod, AlphaFunction alphaFunction) : this(Interop.SlideTransitionItem.New(view.SwigCPtr, direction.SwigCPtr, timePeriod.SwigCPtr), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- AppearingTransition = isAppearing;
+ AppearingTransition = appearingTransition;
AlphaFunction = alphaFunction;
}
--- /dev/null
+/*
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+using Tizen.NUI.BaseComponents;
+using System.Collections.Generic;
+
+namespace Tizen.NUI
+{
+ /// <summary>
+ /// TransitionGroupItem is an object to set Fade transition of a View that will appear or disappear.
+ /// TransitionGroupItem object is required to be added to the TransitionSet to play.
+ /// </summary>
+ internal class TransitionGroupItem : TransitionItemBase
+ {
+ private List<TransitionItemBase> transitionItemList = null;
+
+ private bool useGroupTimePeriod = false;
+ private bool stepTransition = false;
+ private bool useGroupAlphaFunction = false;
+
+ private View transitionView = null;
+
+ /// <summary>
+ /// Creates an initialized fade.<br />
+ /// </summary>
+ /// <remarks>DurationmSeconds must be greater than zero.</remarks>
+ public TransitionGroupItem(View view, List<TransitionBase> transitionList, bool useGroupTimePeriod, bool stepTransition, bool useGroupAlphaFunction, bool appearingTransition, TimePeriod timePeriod, AlphaFunction alphaFunction)
+ : base(view, appearingTransition, timePeriod, alphaFunction)
+ {
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+
+ this.useGroupTimePeriod = useGroupTimePeriod;
+ this.stepTransition = stepTransition;
+ this.useGroupAlphaFunction = useGroupAlphaFunction;
+ transitionView = view;
+
+ transitionItemList = new List<TransitionItemBase>();
+ for (int index = 0; index < transitionList.Count; ++index)
+ {
+ TimePeriod localTimePeriod = new TimePeriod(transitionList[index].GetTimePeriod().DelayMilliseconds, transitionList[index].GetTimePeriod().DurationMilliseconds);
+ AlphaFunction localAlphaFunction = transitionList[index].GetAlphaFunction();
+ if (useGroupTimePeriod)
+ {
+ int stepMilliseconds = 0;
+ if (stepTransition)
+ {
+ stepMilliseconds = TimePeriod.DurationMilliseconds / transitionList.Count;
+ }
+ localTimePeriod.DelayMilliseconds += TimePeriod.DelayMilliseconds + stepMilliseconds * index;
+ }
+ if (useGroupAlphaFunction)
+ {
+ localAlphaFunction = AlphaFunction;
+ }
+ transitionItemList.Add(transitionList[index].CreateTransition(transitionView, AppearingTransition, localTimePeriod, localAlphaFunction));
+ }
+ }
+
+ public int TransitionCount
+ {
+ get
+ {
+ if(transitionItemList != null)
+ {
+ return transitionItemList.Count;
+ }
+ return 0;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets whether the View moves with child or not.
+ /// </summary>
+ public override bool TransitionWithChild
+ {
+ set
+ {
+ foreach (TransitionItemBase item in transitionItemList)
+ {
+ item.TransitionWithChild = value;
+ }
+ }
+ }
+
+ public TransitionItemBase GetTransitionAt(int index)
+ {
+ if (transitionItemList != null && index < transitionItemList.Count)
+ {
+ return transitionItemList[index];
+ }
+ return null;
+ }
+ }
+}
{
internal class TransitionItemBase : BaseHandle
{
+ private bool appearingTransition = true;
+
/// <summary>
/// Creates an initialized TransitionItemBase.<br />
/// </summary>
- public TransitionItemBase(View target, bool isAppearing, TimePeriod timePeriod, AlphaFunction alphaFunction) : this(Interop.TransitionItemBase.New(), true)
+ public TransitionItemBase(View target, bool appearingTransition, TimePeriod timePeriod, AlphaFunction alphaFunction) : this(Interop.TransitionItemBase.New(), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- AppearingTransition = isAppearing;
+ AppearingTransition = appearingTransition;
TimePeriod = timePeriod;
AlphaFunction = alphaFunction;
}
/// <summary>
/// Gets or sets whether the View moves with child or not.
/// </summary>
- public bool TransitionWithChild
+ public virtual bool TransitionWithChild
{
set
{
{
set
{
+ appearingTransition = value;
Interop.TransitionItemBase.SetAppearingTransition(SwigCPtr, value);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
+ get
+ {
+ return appearingTransition;
+ }
}
/// <summary>
public void AddTransition(TransitionItemBase transition)
{
- Interop.TransitionSet.AddTransition(SwigCPtr, transition.SwigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ if (transition is TransitionGroupItem)
+ {
+ TransitionGroupItem transitionGroup = transition as TransitionGroupItem;
+ for (int index = 0; index < transitionGroup.TransitionCount; ++index)
+ {
+ this.AddTransition(transitionGroup.GetTransitionAt(index));
+ }
+ }
+ else
+ {
+ Interop.TransitionSet.AddTransition(SwigCPtr, transition.SwigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
}
public TransitionItemBase GetTransitionAt(uint index)
}
}
- internal override TransitionItemBase CreateTransition(View view, bool isAppearing)
+ internal override TransitionItemBase CreateTransition(View view, bool appearingTransition, TimePeriod timePeriod, AlphaFunction alphaFunction)
{
- FadeTransitionItem fade = new FadeTransitionItem(view, Opacity, isAppearing, GetTimePeriod(), GetAlphaFunction());
+ FadeTransitionItem fade = new FadeTransitionItem(view, Opacity, appearingTransition, timePeriod, alphaFunction);
return fade;
}
}
/// <since_tizen> 9 </since_tizen>
public Vector2 ScaleFactor { get; set; } = new Vector2(0.0f, 0.0f);
- internal override TransitionItemBase CreateTransition(View view, bool isAppearing)
+ internal override TransitionItemBase CreateTransition(View view, bool appearingTransition, TimePeriod timePeriod, AlphaFunction alphaFunction)
{
- ScaleTransitionItem scale = new ScaleTransitionItem(view, ScaleFactor, isAppearing, GetTimePeriod(), GetAlphaFunction());
+ ScaleTransitionItem scale = new ScaleTransitionItem(view, ScaleFactor, appearingTransition, timePeriod, alphaFunction);
return scale;
}
}
/// <since_tizen> 9 </since_tizen>
public Vector2 Direction { get; set; } = SlideTransitionDirection.Right;
- internal override TransitionItemBase CreateTransition(View view, bool isAppearing)
+ internal override TransitionItemBase CreateTransition(View view, bool appearingTransition, TimePeriod timePeriod, AlphaFunction alphaFunction)
{
- SlideTransitionItem slide = new SlideTransitionItem(view, Direction, isAppearing, GetTimePeriod(), GetAlphaFunction());
+ SlideTransitionItem slide = new SlideTransitionItem(view, Direction, appearingTransition, timePeriod, alphaFunction);
return slide;
}
}
return alphaFunction ??= new AlphaFunction(AlphaFunction.BuiltinFunctions.Default);
}
- internal virtual TransitionItemBase CreateTransition(View view, bool isAppearing)
+ internal TransitionItemBase CreateTransition(View view, bool appearingTransition)
{
- return new TransitionItemBase(view, isAppearing, GetTimePeriod(), GetAlphaFunction());
+ return CreateTransition(view, appearingTransition, GetTimePeriod(), GetAlphaFunction());
+ }
+
+ internal virtual TransitionItemBase CreateTransition(View view, bool appearingTransition, TimePeriod timePeriod, AlphaFunction alphaFunction)
+ {
+ return new TransitionItemBase(view, appearingTransition, timePeriod, alphaFunction);
}
[EditorBrowsable(EditorBrowsableState.Never)]
--- /dev/null
+/*
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+using Tizen.NUI.BaseComponents;
+using System.Collections.Generic;
+
+namespace Tizen.NUI
+{
+ /// <summary>
+ /// FadeTransition class is a cluster of properties for the fade transition of a View.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public class TransitionGroup : TransitionBase
+ {
+ private List<TransitionBase> transitionList = null;
+
+ /// <summary>
+ /// Create a FadeTransition for the View pair.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public TransitionGroup()
+ {
+ }
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public bool UseGroupTimePeriod { set; get; } = false;
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public bool StepTransition { set; get; } = false;
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public bool UseGroupAlphaFunction { set; get; } = false;
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public void AddTransition(TransitionBase transition)
+ {
+ if (transitionList == null)
+ {
+ transitionList = new List<TransitionBase>();
+ }
+ transitionList.Add(transition);
+ }
+
+ internal override TransitionItemBase CreateTransition(View view, bool appearingTransition, TimePeriod timePeriod, AlphaFunction alphaFunction)
+ {
+ TransitionGroupItem group = new TransitionGroupItem(view, transitionList, UseGroupTimePeriod, StepTransition, UseGroupAlphaFunction, appearingTransition, timePeriod, alphaFunction);
+ return group;
+ }
+ }
+}
layoutView.Add(greenButton);
layoutView.Add(blueButton);
+
+ TransitionGroup transitionGroup = new TransitionGroup()
+ {
+ UseGroupTimePeriod = true,
+ UseGroupAlphaFunction = true,
+ StepTransition = true,
+ TimePeriod = new TimePeriod(500, 3000),
+ AlphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInOut),
+ };
+ SlideTransition slide = new SlideTransition()
+ {
+ TimePeriod = new TimePeriod(1000),
+ AlphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default),
+ Direction = SlideTransitionDirection.Top
+ };
+ transitionGroup.AddTransition(slide);
+ FadeTransition fade = new FadeTransition()
+ {
+ Opacity = 0.3f,
+ TimePeriod = new TimePeriod(1000),
+ AlphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default)
+ };
+ transitionGroup.AddTransition(fade);
+ ScaleTransition scale = new ScaleTransition()
+ {
+ ScaleFactor = new Vector2(0.3f, 0.3f),
+ TimePeriod = new TimePeriod(1000),
+ AlphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default)
+ };
+ transitionGroup.AddTransition(scale);
+
mainPage = new ContentPage()
{
BackgroundColor = Color.Transparent,
AlphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default),
ScaleFactor = new Vector2(0.5f, 1.5f)
},
- AppearingTransition = new SlideTransition()
- {
- TimePeriod = new TimePeriod(500),
- AlphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default),
- Direction = SlideTransitionDirection.Top
- },
+ AppearingTransition = transitionGroup,
};
navigator.Push(mainPage);
};
pageRoot.Add(pageBackground);
+ TransitionGroup transitionGroup = new TransitionGroup();
+ FadeTransition slide = new FadeTransition()
+ {
+ TimePeriod = new TimePeriod(500),
+ AlphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default),
+ };
+ transitionGroup.AddTransition(slide);
+
Page page = new ContentPage()
{
BackgroundColor = Color.Transparent,
Content = pageRoot,
- AppearingTransition = new FadeTransition()
- {
- TimePeriod = new TimePeriod(500),
- AlphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default),
- },
+
+ AppearingTransition = transitionGroup,
DisappearingTransition = new SlideTransition()
{
TimePeriod = new TimePeriod(500),