mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-23 01:10:08 +00:00
v3.0.0-preivew8
This commit is contained in:
@@ -10,7 +10,6 @@ namespace XCharts.Runtime
|
||||
internal sealed class MarkAreaHandler : MainComponentHandler<MarkArea>
|
||||
{
|
||||
private GameObject m_MarkLineLabelRoot;
|
||||
private bool m_LabelShow;
|
||||
private bool m_NeedUpdateLabelPosition;
|
||||
|
||||
public override void InitComponent()
|
||||
@@ -41,23 +40,16 @@ namespace XCharts.Runtime
|
||||
|
||||
private void InitMarkArea(MarkArea markArea)
|
||||
{
|
||||
m_LabelShow = markArea.label.show && !string.IsNullOrEmpty(component.text);
|
||||
markArea.painter = chart.m_PainterTop;
|
||||
markArea.refreshComponent = delegate ()
|
||||
{
|
||||
var label = markArea.label;
|
||||
var color = !ChartHelper.IsClearColor(label.textStyle.color) ? label.textStyle.color : chart.theme.axis.textColor;
|
||||
var element = ChartHelper.AddSerieLabel("label", m_MarkLineLabelRoot.transform, label.backgroundWidth,
|
||||
label.backgroundHeight, color, label.textStyle, chart.theme);
|
||||
var isAutoSize = label.backgroundWidth == 0 || label.backgroundHeight == 0;
|
||||
var item = ChartHelper.GetOrAddComponent<ChartLabel>(element);
|
||||
var label = ChartHelper.AddChartLabel("label", m_MarkLineLabelRoot.transform, markArea.label, chart.theme.axis,
|
||||
component.text, Color.clear, TextAnchor.MiddleCenter);
|
||||
UpdateRuntimeData(component);
|
||||
item.SetLabel(element, isAutoSize, label.paddingLeftRight, label.paddingTopBottom);
|
||||
item.SetIconActive(false);
|
||||
item.SetActive(m_LabelShow);
|
||||
item.SetPosition(component.runtimeLabelPosition);
|
||||
item.SetText(component.text);
|
||||
markArea.runtimeLabel = item;
|
||||
label.SetActive(markArea.label.show);
|
||||
label.SetPosition(component.runtimeLabelPosition);
|
||||
label.SetText(component.text);
|
||||
markArea.runtimeLabel = label;
|
||||
};
|
||||
markArea.refreshComponent();
|
||||
}
|
||||
@@ -96,7 +88,7 @@ namespace XCharts.Runtime
|
||||
|
||||
private void UpdateLabelPosition(MarkArea markArea)
|
||||
{
|
||||
if (!m_LabelShow) return;
|
||||
if (!markArea.label.show) return;
|
||||
m_NeedUpdateLabelPosition = true;
|
||||
var rect = markArea.runtimeRect;
|
||||
switch (markArea.label.position)
|
||||
@@ -120,7 +112,7 @@ namespace XCharts.Runtime
|
||||
markArea.runtimeLabelPosition = rect.center + new Vector2(0, rect.height / 2);
|
||||
break;
|
||||
}
|
||||
markArea.runtimeLabelPosition += markArea.label.offset + markArea.label.textStyle.offsetv3;
|
||||
markArea.runtimeLabelPosition += markArea.label.offset;
|
||||
}
|
||||
|
||||
private Vector3 GetPosition(MarkAreaData data, Serie serie, DataZoom dataZoom, XAxis xAxis, YAxis yAxis,
|
||||
|
||||
@@ -72,21 +72,16 @@ namespace XCharts.Runtime
|
||||
data.painter = chart.m_PainterTop;
|
||||
data.refreshComponent = delegate ()
|
||||
{
|
||||
var label = data.label;
|
||||
var textName = string.Format("markLine_{0}_{1}", serie.index, data.index);
|
||||
var color = !ChartHelper.IsClearColor(label.textStyle.color) ? label.textStyle.color : chart.theme.axis.textColor;
|
||||
var element = ChartHelper.AddSerieLabel(textName, m_MarkLineLabelRoot.transform, label.backgroundWidth,
|
||||
label.backgroundHeight, color, label.textStyle, chart.theme);
|
||||
var isAutoSize = label.backgroundWidth == 0 || label.backgroundHeight == 0;
|
||||
var backgroundColor = label.textStyle.GetBackgroundColor(chart.GetChartBackgroundColor());
|
||||
var item = ChartHelper.GetOrAddComponent<ChartLabel>(element);
|
||||
item.SetLabel(element, isAutoSize, label.paddingLeftRight, label.paddingTopBottom);
|
||||
item.SetIconActive(false);
|
||||
item.SetActive(data.label.show);
|
||||
item.SetPosition(MarkLineHelper.GetLabelPosition(data));
|
||||
item.SetText(MarkLineHelper.GetFormatterContent(serie, data));
|
||||
item.color = backgroundColor;
|
||||
data.runtimeLabel = item;
|
||||
var content = MarkLineHelper.GetFormatterContent(serie, data);
|
||||
var label = ChartHelper.AddChartLabel(textName, m_MarkLineLabelRoot.transform, data.label, chart.theme.axis,
|
||||
content, Color.clear, TextAnchor.MiddleCenter);
|
||||
label.SetActive(data.label.show);
|
||||
|
||||
label.SetIconActive(false);
|
||||
label.SetActive(data.label.show);
|
||||
label.SetPosition(MarkLineHelper.GetLabelPosition(data));
|
||||
data.runtimeLabel = label;
|
||||
};
|
||||
data.refreshComponent();
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace XCharts.Runtime
|
||||
var numericFormatter = serieLabel.numericFormatter;
|
||||
if (serieLabel.formatterFunction != null)
|
||||
{
|
||||
return serieLabel.formatterFunction(data.index, data.runtimeValue);
|
||||
return serieLabel.formatterFunction(data.index, data.runtimeValue, null);
|
||||
}
|
||||
if (string.IsNullOrEmpty(serieLabel.formatter))
|
||||
return ChartCached.NumberToStr(data.runtimeValue, numericFormatter);
|
||||
@@ -29,8 +29,8 @@ namespace XCharts.Runtime
|
||||
if (!data.label.show) return Vector3.zero;
|
||||
var dir = (data.runtimeEndPosition - data.runtimeStartPosition).normalized;
|
||||
var horizontal = Mathf.Abs(Vector3.Dot(dir, Vector3.right)) == 1;
|
||||
var labelWidth = data.runtimeLabel == null ? 50 : data.runtimeLabel.GetLabelWidth();
|
||||
var labelHeight = data.runtimeLabel == null ? 20 : data.runtimeLabel.GetLabelHeight();
|
||||
var labelWidth = data.runtimeLabel == null ? 50 : data.runtimeLabel.GetTextWidth();
|
||||
var labelHeight = data.runtimeLabel == null ? 20 : data.runtimeLabel.GetTextHeight();
|
||||
switch (data.label.position)
|
||||
{
|
||||
case LabelStyle.Position.Start:
|
||||
|
||||
Reference in New Issue
Block a user