feat: rename item mode to position
This commit is contained in:
@@ -153,7 +153,7 @@
|
||||
<u:TimelineItem
|
||||
Content="Step 2"
|
||||
Header="Start"
|
||||
Mode="Right"
|
||||
Position="Right"
|
||||
Type="Ongoing"
|
||||
Time="2024-01-04 22:32:58"/>
|
||||
<u:TimelineItem
|
||||
@@ -164,7 +164,7 @@
|
||||
<u:TimelineItem
|
||||
Content="Step 4"
|
||||
Header="Finished"
|
||||
Mode="Right"
|
||||
Position="Right"
|
||||
Type="Success"
|
||||
Time="2024-01-05 00:27:44"/>
|
||||
</u:Timeline>
|
||||
|
||||
@@ -59,27 +59,27 @@
|
||||
<u:TimelineItem
|
||||
Content="Step 1"
|
||||
Header="第一步"
|
||||
Mode="Left"
|
||||
Position="Left"
|
||||
Type="Default" />
|
||||
<u:TimelineItem
|
||||
Content="Step 2"
|
||||
Header="第二步"
|
||||
Mode="Right"
|
||||
Position="Right"
|
||||
Type="Success" />
|
||||
<u:TimelineItem
|
||||
Content="Step 3"
|
||||
Header="第三步"
|
||||
Mode="Separate"
|
||||
Position="Separate"
|
||||
Type="Warning" />
|
||||
<u:TimelineItem
|
||||
Content="Step 4"
|
||||
Header="第四步"
|
||||
Mode="Separate"
|
||||
Position="Separate"
|
||||
Type="Ongoing" />
|
||||
<u:TimelineItem
|
||||
Content="Step 5"
|
||||
Header="第五步"
|
||||
Mode="Separate"
|
||||
Position="Separate"
|
||||
TimeFormat="yyyy-MM-dd"
|
||||
Type="Error" />
|
||||
</u:Timeline>
|
||||
|
||||
@@ -176,21 +176,21 @@ public class Timeline: ItemsControl
|
||||
{
|
||||
foreach (var item in items)
|
||||
{
|
||||
SetIfUnset(item, TimelineItem.ModeProperty, TimelineItemDisplayMode.Left);
|
||||
SetIfUnset(item, TimelineItem.PositionProperty, TimelineItemPosition.Left);
|
||||
}
|
||||
}
|
||||
else if (Mode == TimelineDisplayMode.Right)
|
||||
{
|
||||
foreach (var item in items)
|
||||
{
|
||||
SetIfUnset(item, TimelineItem.ModeProperty, TimelineItemDisplayMode.Right);
|
||||
SetIfUnset(item, TimelineItem.PositionProperty, TimelineItemPosition.Right);
|
||||
}
|
||||
}
|
||||
else if (Mode == TimelineDisplayMode.Center)
|
||||
{
|
||||
foreach (var item in items)
|
||||
{
|
||||
SetIfUnset(item, TimelineItem.ModeProperty, TimelineItemDisplayMode.Separate);
|
||||
SetIfUnset(item, TimelineItem.PositionProperty, TimelineItemPosition.Separate);
|
||||
}
|
||||
}
|
||||
else if (Mode == TimelineDisplayMode.Alternate)
|
||||
@@ -200,11 +200,11 @@ public class Timeline: ItemsControl
|
||||
{
|
||||
if (left)
|
||||
{
|
||||
SetIfUnset(item, TimelineItem.ModeProperty, TimelineItemDisplayMode.Left);
|
||||
SetIfUnset(item, TimelineItem.PositionProperty, TimelineItemPosition.Left);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetIfUnset(item, TimelineItem.ModeProperty, TimelineItemDisplayMode.Right);
|
||||
SetIfUnset(item, TimelineItem.PositionProperty, TimelineItemPosition.Right);
|
||||
}
|
||||
left = !left;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public enum TimelineDisplayMode
|
||||
/// Right means line is placed right to TimelineItem content.
|
||||
/// Separate means line is placed between TimelineItem content and time.
|
||||
/// </summary>
|
||||
public enum TimelineItemDisplayMode
|
||||
public enum TimelineItemPosition
|
||||
{
|
||||
Left,
|
||||
Right,
|
||||
|
||||
@@ -62,13 +62,13 @@ public class TimelineItem: HeaderedContentControl
|
||||
set => SetValue(TypeProperty, value);
|
||||
}
|
||||
|
||||
public static readonly StyledProperty<TimelineItemDisplayMode> ModeProperty = AvaloniaProperty.Register<TimelineItem, TimelineItemDisplayMode>(
|
||||
nameof(Mode), defaultValue: TimelineItemDisplayMode.Right);
|
||||
public static readonly StyledProperty<TimelineItemPosition> PositionProperty = AvaloniaProperty.Register<TimelineItem, TimelineItemPosition>(
|
||||
nameof(Position), defaultValue: TimelineItemPosition.Right);
|
||||
|
||||
public TimelineItemDisplayMode Mode
|
||||
public TimelineItemPosition Position
|
||||
{
|
||||
get => GetValue(ModeProperty);
|
||||
set => SetValue(ModeProperty, value);
|
||||
get => GetValue(PositionProperty);
|
||||
set => SetValue(PositionProperty, value);
|
||||
}
|
||||
|
||||
public static readonly DirectProperty<TimelineItem, double> LeftWidthProperty = AvaloniaProperty.RegisterDirect<TimelineItem, double>(
|
||||
@@ -119,20 +119,20 @@ public class TimelineItem: HeaderedContentControl
|
||||
static TimelineItem()
|
||||
{
|
||||
IconProperty.Changed.AddClassHandler<TimelineItem, object?>((item, args) => { item.OnIconChanged(args); });
|
||||
ModeProperty.Changed.AddClassHandler<TimelineItem, TimelineItemDisplayMode>((item, args) => { item.OnModeChanged(args); });
|
||||
PositionProperty.Changed.AddClassHandler<TimelineItem, TimelineItemPosition>((item, args) => { item.OnModeChanged(args); });
|
||||
AffectsMeasure<TimelineItem>(LeftWidthProperty, RightWidthProperty, IconWidthProperty);
|
||||
}
|
||||
|
||||
private void OnModeChanged(AvaloniaPropertyChangedEventArgs<TimelineItemDisplayMode> args)
|
||||
private void OnModeChanged(AvaloniaPropertyChangedEventArgs<TimelineItemPosition> args)
|
||||
{
|
||||
SetMode(args.NewValue.Value);
|
||||
}
|
||||
|
||||
private void SetMode(TimelineItemDisplayMode mode)
|
||||
private void SetMode(TimelineItemPosition mode)
|
||||
{
|
||||
PseudoClasses.Set(PC_AllLeft, mode == TimelineItemDisplayMode.Left);
|
||||
PseudoClasses.Set(PC_AllRight, mode == TimelineItemDisplayMode.Right);
|
||||
PseudoClasses.Set(PC_Separate, mode == TimelineItemDisplayMode.Separate);
|
||||
PseudoClasses.Set(PC_AllLeft, mode == TimelineItemPosition.Left);
|
||||
PseudoClasses.Set(PC_AllRight, mode == TimelineItemPosition.Right);
|
||||
PseudoClasses.Set(PC_Separate, mode == TimelineItemPosition.Separate);
|
||||
}
|
||||
|
||||
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
|
||||
@@ -144,7 +144,7 @@ public class TimelineItem: HeaderedContentControl
|
||||
_contentPresenter = e.NameScope.Find<ContentPresenter>(PART_Content);
|
||||
_timePresenter = e.NameScope.Find<TextBlock>(PART_Time);
|
||||
PseudoClasses.Set(PC_EmptyIcon, Icon is null);
|
||||
SetMode(Mode);
|
||||
SetMode(Position);
|
||||
}
|
||||
|
||||
private void OnIconChanged(AvaloniaPropertyChangedEventArgs<object?> args)
|
||||
@@ -166,17 +166,17 @@ public class TimelineItem: HeaderedContentControl
|
||||
double content = _contentPresenter?.DesiredSize.Width ?? 0;
|
||||
double time = _timePresenter?.DesiredSize.Width ?? 0;
|
||||
double max = Math.Max(header, content);
|
||||
if (Mode == TimelineItemDisplayMode.Left)
|
||||
if (Position == TimelineItemPosition.Left)
|
||||
{
|
||||
max = Math.Max(max, time);
|
||||
return (0, icon, max);
|
||||
}
|
||||
if (Mode == TimelineItemDisplayMode.Right)
|
||||
if (Position == TimelineItemPosition.Right)
|
||||
{
|
||||
max = Math.Max(max, time);
|
||||
return (max , icon, 0);
|
||||
}
|
||||
if (Mode == TimelineItemDisplayMode.Separate)
|
||||
if (Position == TimelineItemPosition.Separate)
|
||||
{
|
||||
return (time, icon, max);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user