public LayoutElement(LayoutElementType type = LayoutElementType.Word, IEnumerable<LayoutElement> children = null) 
 {
     Type = type;
     Children = new List<LayoutElement>();
     if (children != null) 
     { 
         Children.AddRange(children);
         SetBoundsFromNodes(false);
         Text = children.Select(x => x.Text).Where(x => !String.IsNullOrEmpty(x)).ElementsToStringS(delim: " ");
     }
 }
Example #2
0
        public static GridUnitType GetGridUnitType(LayoutElementType type)
        {
            switch (type)
            {
            case LayoutElementType.Fixed:
                return(GridUnitType.Absolute);

            case LayoutElementType.Grow:
                return(GridUnitType.Auto);

            default:
                return(GridUnitType.Star);
            }
        }
        public static LayoutElement NewRow(IEnumerable<LayoutElement> nodes, 
            LayoutElementType type = LayoutElementType.Row)
        {
            RectangleF dummyBounds = new RectangleF(0,0,1,1);
            var e = new LayoutElement(type, dummyBounds, null, nodes);

            // set bounds
            if (!nodes.IsEmpty())
            {
                e.Text = nodes.Select(x => x.Text).Where(x => !String.IsNullOrEmpty(x)).ElementsToStringS(delim: " ");
                e.SetBoundsFromNodes(false);
            }

            return e;
        }
Example #4
0
        public static InputElement CreateInputElement(LayoutElementType type, out int elemSize)
        {
            InputElement element = new InputElement();
            switch(type & LayoutElementType.TypeMask)
            {
                case LayoutElementType.Position3:
                    element.SemanticName = "POSITION";
                    element.Format = SharpDX.DXGI.Format.R32G32B32_Float;
                    elemSize = 12;
                    break;
                case LayoutElementType.Position4:
                    element.SemanticName = "POSITION";
                    element.Format = SharpDX.DXGI.Format.R32G32B32A32_Float;
                    elemSize = 16;
                    break;
                case LayoutElementType.Normal3:
                    element.SemanticName = "NORMAL";
                    element.Format = SharpDX.DXGI.Format.R32G32B32_Float;
                    elemSize = 12;
                    break;
                case LayoutElementType.Normal4:
                    element.SemanticName = "NORMAL";
                    element.Format = SharpDX.DXGI.Format.R32G32B32A32_Float;
                    elemSize = 16;
                    break;
                case LayoutElementType.Color4:
                    element.SemanticName = "COLOR";
                    element.Format = SharpDX.DXGI.Format.R32G32B32A32_Float;
                    elemSize = 16;
                    break;
                case LayoutElementType.TexCoords2:
                    element.SemanticName = "TEXCOORD";
                    element.Format = SharpDX.DXGI.Format.R32G32_Float;
                    elemSize = 8;
                    break;
                default:
                    element.SemanticName = "POSITION";
                    element.Format = SharpDX.DXGI.Format.R32G32B32_Float;
                    elemSize = 12;
                    break;
            }

            switch(type & LayoutElementType.SlotMask)
            {
                case LayoutElementType.Slot0:
                    element.SemanticName += "0";
                    element.Slot = 0;
                    break;
                case LayoutElementType.Slot1:
                    element.SemanticName += "1";
                    element.Slot = 1;
                    break;
                case LayoutElementType.Slot2:
                    element.SemanticName += "2";
                    element.Slot = 2;
                    break;
                case LayoutElementType.Slot3:
                    element.SemanticName += "3";
                    element.Slot = 3;
                    break;
                default:
                    element.Slot = 0;
                    break;
            }

            return element;
        }
Example #5
0
 public static LayoutElementType CreateElementType(LayoutElementType dataType, 
     LayoutElementType slot = LayoutElementType.NoSlot)
 {
     return dataType | slot;
 }
Example #6
0
        public static InputLayout CreateInputLayout(Device dxDevice, ShaderSignature signature,
            LayoutElementType[] elementTypes)
        {
            InputElement[] elements = new InputElement[elementTypes.Length];

            int offset = 0;
            for(int i = 0; i < elements.Length; ++i)
            {
                var type = elementTypes[i];
                int size;
                var element = CreateInputElement(type, out size);
                element.AlignedByteOffset = offset;
                elements[i] = element;
                offset += size;
            }

            return new InputLayout(dxDevice, signature, elements);
        }
        public LayoutElement(LayoutElementType type, RectangleF unitBounds, String text = null, IEnumerable<LayoutElement> nodes = null)
        {
            ArgCheck.NotEmpty(unitBounds, "unitBounds empty");

            Type = type;
            UnitBounds = unitBounds;
            Text = text;

            if (nodes != null)
            {
                Children = new List<LayoutElement>();
                Children.AddRange(nodes);
            }
        }
 Pen GetPen(LayoutElementType Type)
 {
     switch (Type)
     {
         case LayoutElementType.Word:
             return Pens.LightBlue;
         case LayoutElementType.Image:
             return Pens.Violet;
         case LayoutElementType.TitleRow:
             return Pens.Magenta;
         case LayoutElementType.Row:
             return Pens.Red;
         case LayoutElementType.HeaderRow:
             return Pens.DarkGreen;
         case LayoutElementType.FooterRow:
             return Pens.Blue;
         case LayoutElementType.FootnoteRow:
             return Pens.Green;
         case LayoutElementType.Page:
             return Pens.LightBlue;
         case LayoutElementType.Column:
             return Pens.BurlyWood;
         default:
             return Pens.Yellow;
     }
 }