private Animation underlineAni = null;
private bool isNeedAnimation = false;
private Extents space;
+ static Tab() { }
/// <summary>
/// Creates a new instance of a Tab.
/// Creates a new instance of a Tab with style.
/// </summary>
/// <param name="style">Create Tab by special style defined in UX.</param>
- /// <since_tizen> 6 </since_tizen>
- /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <since_tizen> 8 </since_tizen>
public Tab(string style) : base(style)
{
Initialize();
/// <summary>
/// Creates a new instance of a Tab with style.
/// </summary>
- /// <param name="style">Create Tab by style customized by user.</param>
- /// <since_tizen> 6 </since_tizen>
- /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
- [EditorBrowsable(EditorBrowsableState.Never)]
- public Tab(TabStyle style) : base(style)
+ /// <param name="tabStyle">Create Tab by style customized by user.</param>
+ /// <since_tizen> 8 </since_tizen>
+ public Tab(TabStyle tabStyle) : base(tabStyle)
{
Initialize();
}
/// <since_tizen> 6 </since_tizen>
public event EventHandler<ItemChangedEventArgs> ItemChangedEvent;
- /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <summary>
+ /// Get style of tab.
+ /// </summary>
+ /// <since_tizen> 8 </since_tizen>
public new TabStyle Style => ViewStyle as TabStyle;
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public View Underline
+ {
+ get
+ {
+ if (null == underline)
+ {
+ underline = new View()
+ {
+ PositionUsesPivotPoint = true,
+ ParentOrigin = Tizen.NUI.ParentOrigin.BottomLeft,
+ PivotPoint = Tizen.NUI.PivotPoint.BottomLeft,
+ };
+ Add(underline);
+ }
+ return underline;
+ }
+ internal set
+ {
+ underline = value;
+ }
+ }
+
/// <summary>
/// Selected item's index in Tab.
/// </summary>
}
set
{
- textColorSelector.Clone(value);
+ if (value == null || textColorSelector == null)
+ {
+ Tizen.Log.Fatal("NUI", "[Exception] Tab.TextColorSelector is null");
+ throw new NullReferenceException("Tab.TextColorSelector is null");
+ }
+ else
+ {
+ textColorSelector.Clone(value);
+ }
}
}
UpdateItems();
}
- /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <summary>
+ /// Apply style to tab.
+ /// </summary>
+ /// <param name="viewStyle">The style to apply.</param>
+ /// <since_tizen> 8 </since_tizen>
public override void ApplyStyle(ViewStyle viewStyle)
{
base.ApplyStyle(viewStyle);
if (null != tabStyle)
{
- if (null == underline)
- {
- underline = new View()
- {
- PositionUsesPivotPoint = true,
- ParentOrigin = Tizen.NUI.ParentOrigin.BottomLeft,
- PivotPoint = Tizen.NUI.PivotPoint.BottomLeft,
- };
- Add(underline);
- CreateUnderLineAnimation();
- }
-
- underline.ApplyStyle(Style.UnderLine);
+ Underline.ApplyStyle(tabStyle.UnderLine);
+ CreateUnderLineAnimation();
}
}
}
/// <summary>
- /// Update Tab by attributes.
+ /// Update Tab.
/// </summary>
/// <since_tizen> 6 </since_tizen>
/// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
}
/// <summary>
- /// Get Tab attribues.
+ /// Get Tab style.
/// </summary>
- /// <since_tizen> 6 </since_tizen>
- /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected override ViewStyle GetViewStyle()
+ /// <returns>The default tab style.</returns>
+ /// <since_tizen> 8 </since_tizen>
+ protected override ViewStyle CreateViewStyle()
{
return new TabStyle();
}
/// <summary>
/// Theme change callback when theme is changed, this callback will be trigger.
/// </summary>
- /// <since_tizen> 6 </since_tizen>
- /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <param name="sender">The sender</param>
+ /// <param name="e">The event data</param>
+ /// <since_tizen> 8 </since_tizen>
protected override void OnThemeChangedEvent(object sender, StyleManager.ThemeChangeEventArgs e)
{
- TabStyle tempAttributes = StyleManager.Instance.GetAttributes(style) as TabStyle;
- if (tempAttributes != null)
+ TabStyle tabStyle = StyleManager.Instance.GetViewStyle(style) as TabStyle;
+ if (tabStyle != null)
{
- Style.CopyFrom(tempAttributes);
+ Style.CopyFrom(tabStyle);
}
}
{
for (int i = 0; i < totalNum; i++)
{
- preW = (itemList[i].NaturalSize2D != null ? itemList[i].NaturalSize2D.Width : 0);
+ preW = (itemList[i].TextItem.NaturalSize2D != null ? itemList[i].TextItem.NaturalSize2D.Width : 0);
itemList[i].Position2D.X = preX;
itemList[i].Size2D.Width = preW;
preX = itemList[i].Position2D.X + preW + itemSpace;
private void AddItemByIndex(TabItemData itemData, int index)
{
+ if (null == itemData) return;
int h = 0;
int topSpace = (int)Style.ItemPadding.Top;
if (Style.UnderLine != null && Style.UnderLine.Size != null)
}
}
- private void CreateUnderLineAttributes()
- {
- if (Style.UnderLine == null)
- {
- Style.UnderLine = new ViewStyle()
- {
- PositionUsesPivotPoint = true,
- ParentOrigin = Tizen.NUI.ParentOrigin.BottomLeft,
- PivotPoint = Tizen.NUI.PivotPoint.BottomLeft,
- };
- }
- }
-
private void CreateUnderLineAnimation()
{
if (underlineAni == null)
VerticalAlignment = VerticalAlignment.Center
};
Add(TextItem);
+
+ EnableControlStatePropagation = true;
}
internal int Index