protected override void OnLayoutCalculatorConfigurate(ILayoutCalculator calculator) { var paddedLayout = calculator as PaddedLayoutCalculator; var padding = _setting.padding; paddedLayout.padding = padding; var linearLayout = paddedLayout.innerLayout as LinearLayoutCalculator; linearLayout.flexDirection = _setting.flexDirection; var itemSize = _setting.itemSize; if (_setting.itemCrossAxisSizeMatchParent) { var contentRect = this.content.rect; if (_setting.isMainAxisHorizontal) { itemSize.y = contentRect.height - padding.vertical; _lastContentSizeInCrossAxis = itemSize.y; } else { itemSize.x = contentRect.width - padding.horizontal; _lastContentSizeInCrossAxis = itemSize.x; } } linearLayout.itemSize = itemSize; linearLayout.interval = _setting.interval; linearLayout.itemCount = this.itemCount; }
private void UpdateLayoutSetting(ILayoutCalculator layoutCalculator) { var paddedLayout = layoutCalculator as PaddedLayoutCalculator; var gridLayout = paddedLayout.innerLayout as FlexGridLayoutCalculator; paddedLayout.padding = _setting.padding; gridLayout.flexDirection = _setting.flexDirection; gridLayout.itemSize = _setting.itemSize; gridLayout.interval = _setting.interval; gridLayout.alignItemsInMainAxis = _setting.alignItemsInMainAxis; gridLayout.crossAxisDirection = _setting.crossAxisDirection; if (gridLayout.isFlexHorizontal) { float flexMaxSize = -_setting.padding.horizontal; switch (_setting.flexSizeType) { case FlexSizeType.MatchTransform: flexMaxSize += (transform as RectTransform).rect.width; break; case FlexSizeType.Custom: flexMaxSize += _setting.flexSize; break; } gridLayout.flexMaxSize = flexMaxSize; } else { float flexMaxSize = -_setting.padding.vertical; switch (_setting.flexSizeType) { case FlexSizeType.MatchTransform: flexMaxSize += (transform as RectTransform).rect.height; break; case FlexSizeType.Custom: flexMaxSize += _setting.flexSize; break; } gridLayout.flexMaxSize = flexMaxSize; } gridLayout.itemCount = this.itemCount; }
/// <summary> /// Sets the labels panel bounds. /// </summary> /// <param name="element"></param> /// <param name="labelsPanel"></param> private void SetLabelsPanelBounds(UIElement element, ILayoutCalculator labelsPanel) { var left = Canvas.GetLeft(element); var top = Canvas.GetTop(element); var width = labelsPanel.DesiredSize.Width; var height = labelsPanel.DesiredSize.Height; var cartesianAxisLabelsPanel = labelsPanel as ChartCartesianAxisLabelsPanel; if (Axis.Orientation == Orientation.Horizontal) { left += Axis.ArrangeRect.Left; top += Axis.ArrangeRect.Top; cartesianAxisLabelsPanel.SetOffsetValues(left, top, width, height); } else { left += Axis.ArrangeRect.Left; top += Axis.ArrangeRect.Top; cartesianAxisLabelsPanel.SetOffsetValues(left, top, width, height); } }
protected override void OnLayoutCalculatorConfigurate(ILayoutCalculator calculator) { this.UpdateLayoutSetting(calculator); }
public PhyloTreeLayout(ILayoutCalculator layoutCalculator) : base(layoutCalculator) { }
protected abstract void OnLayoutCalculatorConfigurate(ILayoutCalculator calculator);
public GraphLayout(ILayoutCalculator layoutCalculator) { this.LayoutCalculator = layoutCalculator; }
public PaddedLayoutCalculator(ILayoutCalculator innerLayout) { _innerLayout = innerLayout; this.padding = new RectOffset(); }