Example #1
0
 public XmlTreeNode(RadTreeNode node)
 {
     this.Visible             = node.Visible;
     this.Expanded            = node.Expanded;
     this.Name                = node.Name;
     this.ImageKey            = node.ImageKey;
     this.ImageIndex          = node.ImageIndex;
     this.ItemHeight          = node.ItemHeight;
     this.Text                = node.Text;
     this.Tag                 = node.Tag;
     this.CheckState          = node.CheckState;
     this.CheckType           = node.CheckType;
     this.ForeColor           = node.ForeColor;
     this.BackColor           = node.BackColor;
     this.BackColor2          = node.BackColor2;
     this.BackColor3          = node.BackColor3;
     this.BackColor4          = node.BackColor4;
     this.BorderColor         = node.BorderColor;
     this.GradientAngle       = node.GradientAngle;
     this.GradientPercentage  = node.GradientPercentage;
     this.GradientPercentage2 = node.GradientPercentage2;
     this.GradientStyle       = node.GradientStyle;
     this.NumberOfColors      = node.NumberOfColors;
     if (node.HasStyle && node.Font != null)
     {
         this.Font = node.Font;
     }
     this.TextAlignment = node.TextAlignment;
     foreach (RadTreeNode node1 in (Collection <RadTreeNode>)node.Nodes)
     {
         this.Nodes.Add(new XmlTreeNode(node1));
     }
 }
Example #2
0
        public static Color ColorMixer(
            GradientStyles gradientSyle,
            int numberOfColors,
            float gradientPercent,
            float gradientPercent2,
            params Color[] colors)
        {
            if (numberOfColors < 1 || numberOfColors > 4)
            {
                throw new ArgumentException("Invalid number of colors. Should be between 1 and 4");
            }
            Color color;

            if (gradientSyle != GradientStyles.Solid)
            {
                switch (numberOfColors)
                {
                case 1:
                    break;

                case 2:
                    color = GridExportUtils.ColorMixer(colors[0], colors[1]);
                    goto label_8;

                case 3:
                    float num1 = 0.0f;
                    float num2 = 0.0f;
                    float num3 = 0.0f;
                    float num4 = num1 + (float)((double)colors[0].R * (double)gradientPercent / 2.0);
                    float num5 = num2 + (float)((double)colors[0].G * (double)gradientPercent / 2.0);
                    float num6 = num3 + (float)((double)colors[0].B * (double)gradientPercent / 2.0);
                    float num7 = num4 + (float)((int)colors[1].R / 2);
                    float num8 = num5 + (float)((int)colors[1].G / 2);
                    float num9 = num6 + (float)((int)colors[1].B / 2);
                    color = Color.FromArgb((int)(num7 + (float)colors[2].R * (float)((1.0 - (double)gradientPercent) / 2.0)), (int)(num8 + (float)colors[2].G * (float)((1.0 - (double)gradientPercent) / 2.0)), (int)(num9 + (float)colors[2].B * (float)((1.0 - (double)gradientPercent) / 2.0)));
                    goto label_8;

                default:
                    float num10 = 0.0f;
                    float num11 = 0.0f;
                    float num12 = 0.0f;
                    float num13 = num10 + (float)((double)colors[0].R * (double)gradientPercent / 2.0);
                    float num14 = num11 + (float)((double)colors[0].G * (double)gradientPercent / 2.0);
                    float num15 = num12 + (float)((double)colors[0].B * (double)gradientPercent / 2.0);
                    float num16 = num13 + (float)colors[1].R * (float)((double)gradientPercent / 2.0 + ((double)gradientPercent2 - (double)gradientPercent) / 2.0);
                    float num17 = num14 + (float)colors[1].G * (float)((double)gradientPercent / 2.0 + ((double)gradientPercent2 - (double)gradientPercent) / 2.0);
                    float num18 = num15 + (float)colors[1].B * (float)((double)gradientPercent / 2.0 + ((double)gradientPercent2 - (double)gradientPercent) / 2.0);
                    float num19 = num16 + (float)colors[2].R * (float)(((double)gradientPercent2 - (double)gradientPercent) / 2.0 + (1.0 - (double)gradientPercent2) / 2.0);
                    float num20 = num17 + (float)colors[2].G * (float)(((double)gradientPercent2 - (double)gradientPercent) / 2.0 + (1.0 - (double)gradientPercent2) / 2.0);
                    float num21 = num18 + (float)colors[2].B * (float)(((double)gradientPercent2 - (double)gradientPercent) / 2.0 + (1.0 - (double)gradientPercent2) / 2.0);
                    color = Color.FromArgb((int)(num19 + (float)colors[3].R * (float)((1.0 - (double)gradientPercent2) / 2.0)), (int)(num20 + (float)colors[3].G * (float)((1.0 - (double)gradientPercent2) / 2.0)), (int)(num21 + (float)colors[3].B * (float)((1.0 - (double)gradientPercent2) / 2.0)));
                    goto label_8;
                }
            }
            color = colors[0];
label_8:
            return(color);
        }
Example #3
0
        private GradientStop[] GetColorStops(IFillElement element)
        {
            float          gradientPercentage  = element.GradientPercentage;
            float          gradientPercentage2 = element.GradientPercentage2;
            GradientStyles gradientStyle       = element.GradientStyle;
            Color          color1         = this.GetColor(element.BackColor);
            Color          color2         = this.GetColor(element.BackColor2);
            Color          color3         = this.GetColor(element.BackColor3);
            Color          color4         = this.GetColor(element.BackColor4);
            int            numberOfColors = element.NumberOfColors;
            int            colorCount     = Math.Min(Math.Max(numberOfColors, 1), 4);

            GradientStop[] colorStops = new GradientStop[colorCount];
            for (int index = 0; index < colorCount; ++index)
            {
                colorStops[index] = new GradientStop();
            }
            if (gradientStyle == GradientStyles.Gel)
            {
                gradientPercentage  = 0.0f;
                gradientPercentage2 = 1f;
            }
            if (numberOfColors > 0)
            {
                colorStops[0].Color    = color1;
                colorStops[0].Position = 0.0f;
                if (numberOfColors > 1)
                {
                    colorStops[1].Color = color2;
                    colorStops[colorCount - 1].Position = 1f;
                    if (numberOfColors > 2)
                    {
                        colorStops[2].Color    = color3;
                        colorStops[1].Position = gradientPercentage;
                        if (numberOfColors > 3)
                        {
                            colorStops[3].Color    = this.GetColor(color4);
                            colorStops[2].Position = gradientPercentage2;
                        }
                    }
                }
            }
            switch (gradientStyle)
            {
            case GradientStyles.Radial:
                colorStops = this.GetFillRadialGradientStops(colorStops, colorCount, gradientPercentage, gradientPercentage2);
                break;

            case GradientStyles.Gel:
                colorStops = this.GetFillGelGradientStops(colorStops, colorCount);
                break;
            }
            return(colorStops);
        }
Example #4
0
        public void FillPath(IFillElement element, Path path)
        {
            GradientStyles gradientStyle       = element.GradientStyle;
            int            numberOfColors      = element.NumberOfColors;
            float          gradientPercentage  = element.GradientPercentage;
            float          gradientPercentage2 = element.GradientPercentage2;

            if (gradientStyle == GradientStyles.Gel || gradientStyle == GradientStyles.Radial || gradientStyle == GradientStyles.Linear)
            {
                GradientStop[] colorStops = this.GetColorStops(element);
                switch (gradientStyle)
                {
                case GradientStyles.Linear:
                case GradientStyles.Radial:
                    Color color1 = this.GetColor(element.BackColor);
                    Color color2 = this.GetColor(element.BackColor2);
                    if (numberOfColors < 2 || numberOfColors == 2 && color1 == color2)
                    {
                        this.FillSolid(path, color1);
                        break;
                    }
                    if (gradientStyle == GradientStyles.Linear)
                    {
                        this.FillLinear(path, colorStops, element.GradientAngle);
                        break;
                    }
                    this.FillRadial(path, colorStops);
                    break;

                case GradientStyles.Gel:
                    this.FillGel(path, colorStops, gradientPercentage, gradientPercentage2);
                    break;
                }
            }
            else
            {
                Color color1 = this.GetColor(element.BackColor);
                Color color2 = this.GetColor(element.BackColor2);
                Color color3 = this.GetColor(element.BackColor3);
                Color color4 = this.GetColor(element.BackColor4);
                switch (gradientStyle)
                {
                case GradientStyles.Solid:
                    this.FillSolid(path, color1);
                    break;

                case GradientStyles.Glass:
                    this.FillGlass(path, color1, color2, color3, color4, gradientPercentage, gradientPercentage2);
                    break;

                case GradientStyles.OfficeGlass:
                case GradientStyles.OfficeGlassRect:
                    this.FillOfficeGlass(path, color1, color2, color3, color4, gradientPercentage, gradientPercentage2, gradientStyle == GradientStyles.OfficeGlass);
                    break;

                case GradientStyles.Vista:
                    this.FillVista(path, color1, color2, color3, color4, gradientPercentage, gradientPercentage2);
                    break;
                }
            }
        }