public override bool InitializeDocument(params object[] args)
        {
            if (args.Length < 2)
            {
                return(false);
            }
            if (!(args[1] is GridPartitioning))
            {
                return(false);
            }
            _parentLayerGrid = (GridPartitioning)args[1];

            return(base.InitializeDocument(args));
        }
Esempio n. 2
0
        public static void ArrangeGrid(this ArrangeLayersDocument arrangement, GridPartitioning grid)
        {
            grid.XPartitioning.Clear();
            grid.YPartitioning.Clear();

            double columnSize = Math.Max(0, 1 - arrangement.LeftMargin - arrangement.RightMargin - (arrangement.NumberOfColumns - 1) * arrangement.ColumnSpacing);
            double rowSize    = Math.Max(0, 1 - arrangement.TopMargin - arrangement.BottomMargin - (arrangement.NumberOfRows - 1) * arrangement.RowSpacing);

            if (arrangement.NumberOfColumns > 0)
            {
                grid.XPartitioning.Add(RADouble.NewRel(arrangement.LeftMargin));
                for (int i = arrangement.NumberOfColumns - 1; i >= 0; --i)
                {
                    grid.XPartitioning.Add(RADouble.NewRel(columnSize / arrangement.NumberOfColumns));
                    if (i != 0)
                    {
                        grid.XPartitioning.Add(RADouble.NewRel(arrangement.ColumnSpacing));
                    }
                }
                grid.XPartitioning.Add(RADouble.NewRel(arrangement.RightMargin));
            }
            else
            {
                grid.XPartitioning.Add(RADouble.NewRel(1));
            }

            if (arrangement.NumberOfRows > 0)
            {
                grid.YPartitioning.Add(RADouble.NewRel(arrangement.TopMargin));
                for (int i = arrangement.NumberOfRows - 1; i >= 0; --i)
                {
                    grid.YPartitioning.Add(RADouble.NewRel(rowSize / arrangement.NumberOfRows));
                    if (i != 0)
                    {
                        grid.YPartitioning.Add(RADouble.NewRel(arrangement.RowSpacing));
                    }
                }
                grid.YPartitioning.Add(RADouble.NewRel(arrangement.BottomMargin));
            }
            else
            {
                grid.YPartitioning.Add(RADouble.NewRel(1));
            }
        }
Esempio n. 3
0
 public RectangleD2D GetAbsolute(GridPartitioning partition, PointD2D parentSize)
 {
     return(partition.GetTileRectangle(_gridColumn, _gridRow, _gridColumnSpan, _gridRowSpan, parentSize));
 }
		public static void ArrangeGrid(this ArrangeLayersDocument arrangement, GridPartitioning grid)
		{
			grid.XPartitioning.Clear();
			grid.YPartitioning.Clear();

			double columnSize = Math.Max(0, 1 - arrangement.LeftMargin - arrangement.RightMargin - (arrangement.NumberOfColumns - 1) * arrangement.ColumnSpacing);
			double rowSize = Math.Max(0, 1 - arrangement.TopMargin - arrangement.BottomMargin - (arrangement.NumberOfRows - 1) * arrangement.RowSpacing);

			if (arrangement.NumberOfColumns > 0)
			{
				grid.XPartitioning.Add(RADouble.NewRel(arrangement.LeftMargin));
				for (int i = arrangement.NumberOfColumns - 1; i >= 0; --i)
				{
					grid.XPartitioning.Add(RADouble.NewRel(columnSize / arrangement.NumberOfColumns));
					if (i != 0)
						grid.XPartitioning.Add(RADouble.NewRel(arrangement.ColumnSpacing));
				}
				grid.XPartitioning.Add(RADouble.NewRel(arrangement.RightMargin));
			}
			else
			{
				grid.XPartitioning.Add(RADouble.NewRel(1));
			}

			if (arrangement.NumberOfRows > 0)
			{
				grid.YPartitioning.Add(RADouble.NewRel(arrangement.TopMargin));
				for (int i = arrangement.NumberOfRows - 1; i >= 0; --i)
				{
					grid.YPartitioning.Add(RADouble.NewRel(rowSize / arrangement.NumberOfRows));
					if (i != 0)
						grid.YPartitioning.Add(RADouble.NewRel(arrangement.RowSpacing));
				}
				grid.YPartitioning.Add(RADouble.NewRel(arrangement.BottomMargin));
			}
			else
			{
				grid.YPartitioning.Add(RADouble.NewRel(1));
			}
		}