Пример #1
0
        public virtual void RenderShadow(Cairo.Context context, Gdk.Rectangle region, PopupPosition arrowPosition)
        {
            RenderBorder(context, region, arrowPosition);
            double r = CornerRadius;
            double x = region.X + 0.5, y = region.Y + 0.5, w = region.Width - 1, h = region.Height - 1;

            context.MoveTo(x + w, y + h - r);
            context.Arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5);
            if (ShowArrow && (arrowPosition & PopupPosition.Bottom) != 0)
            {
                double apos = ArrowOffset;
                context.LineTo(x + apos + ArrowWidth / 2, y + h);
                context.RelLineTo(-ArrowWidth / 2, ArrowLength);
                context.RelLineTo(-ArrowWidth / 2, -ArrowLength);
            }
            context.Arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI);

            // FIXME: VV: Remove gradient features
            using (var lg = new Cairo.LinearGradient(0, y + h - r, 0, y + h)) {
                lg.AddColorStop(0.5, ShadowColor.MultiplyAlpha(0.0));
                lg.AddColorStop(1, ShadowColor);
                context.SetSource(lg);
                context.LineWidth = 1;
                context.Stroke();
            }
        }
Пример #2
0
 public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
 {
     if (FontFamily != null)
     {
         info.AddValue("FontFamily", FontFamily.ToString());
     }
     info.AddValue("FontSize", FontSize);
     info.AddValue("FontWeight", FontWeight);
     info.AddValue("StrokeWeight", StrokeWeight);
     info.AddValue("TopMargin", TopMargin);
     info.AddValue("BottomMargin", BottomMargin);
     info.AddValue("LeftMargin", LeftMargin);
     info.AddValue("RightMargin", RightMargin);
     info.AddValue("EnableDesktopLyrics", EnableDesktopLyrics);
     info.AddValue("EnableEmbeddedLyrics", EnableEmbeddedLyrics);
     info.AddValue("Opacity", Opacity);
     info.AddValue("Foreground", Foreground.ToString());
     info.AddValue("StrokeColor", StrokeColor.ToString());
     info.AddValue("ShadowColor", ShadowColor.ToString());
     info.AddValue("AutoForeground", AutoForeground);
     info.AddValue("SingleLineLyrics", SingleLineLyrics);
     info.AddValue("HorizontalAlignment", HorizontalAlignment);
     info.AddValue("VerticalAlignment", VerticalAlignment);
     info.AddValue("ForceTopMost", ForceTopMost);
     info.AddValue("HideWhenPause", HideWhenPause);
     info.AddValue("DesktopLyricsScreen", DesktopLyricsScreen);
 }
Пример #3
0
        internal void WriteTo(BinaryWriter writer)
        {
            WriteAssetTo(writer, () =>
            {
                writer.Write((uint)Time);

                for (var i = 0; i < TimeOfDayValues.Length; i++)
                {
                    LightingConfigurations[TimeOfDayValues[i]].WriteTo(writer, Version);
                }

                ShadowColor.WriteTo(writer);

                if (Version >= 7 && Version < 11)
                {
                    writer.Write(Unknown);
                }

                if (Version >= 12)
                {
                    writer.Write(Unknown2.Value);
                    Unknown3.Value.WriteTo(writer);
                }

                if (Version >= 8)
                {
                    writer.Write(NoCloudFactor.Value);
                }
            });
        }
Пример #4
0
        void OnPaintSurface(SKPaintSurfaceEventArgs e)
        {
            var canvas = e.Surface.Canvas;
            var info   = e.Info;

            canvas.Clear();

            var shadowThickness = Device.RuntimePlatform == Device.iOS ?
                                  1.5f * ShadowThickness :
                                  ShadowThickness;

            var blurfilter = SKMaskFilter.CreateBlur(SKBlurStyle.Solid, shadowThickness);

            var paint = new SKPaint
            {
                Style      = SKPaintStyle.Fill,
                MaskFilter = blurfilter,
                Color      = isShadowWithBackgroundColor ?
                             ShadowColor.ToSKColor() :
                             backgroundColorShadow.ToSKColor(),
                BlendMode = SKBlendMode.ColorBurn,
            };

            var space = Device.RuntimePlatform == Device.iOS ?
                        3f * ShadowThickness :
                        2f * ShadowThickness;

            var rect = new SKRect(
                left: space,
                top: space,
                right: info.Width - space,
                bottom: info.Height - space);

            canvas.DrawRoundRect(
                rect: rect,
                rx: CornerRadius,
                ry: CornerRadius,
                paint: paint);

            if (isShadowWithBackgroundColor)
            {
                var paintBackgroundColor = new SKPaint
                {
                    Style      = SKPaintStyle.Fill,
                    MaskFilter = blurfilter,
                    Color      = backgroundColorShadow.ToSKColor(),
                };

                canvas.DrawRoundRect(
                    rect: rect,
                    rx: CornerRadius,
                    ry: CornerRadius,
                    paint: paintBackgroundColor);
            }
        }
Пример #5
0
        //Implement ISerializable
        public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
        {
            info.AddValue("Opacity", Opacity);
            info.AddValue("Visible", Visible);
            info.AddValue("Name", Name);
            info.AddValue("DrawShadows", DrawShadows);
            info.AddValue("ShadowOffset", Serialize.AddPointF(ShadowOffset));
            info.AddValue("ShadowColor", ShadowColor.ToArgb().ToString());
            info.AddValue("SoftShadows", SoftShadows);

            info.AddValue("Elements", Elements);
        }
Пример #6
0
        private bool getShadowParameterHandler(string parameterName, out string parameterValue)
        {
            switch (parameterName)
            {
            case "ShadowTechnique":
                switch (ShadowTechnique)
                {
                case ShadowTechnique.None:
                    parameterValue = "None";
                    break;

                case ShadowTechnique.Simple:
                    parameterValue = "Simple";
                    break;

                case ShadowTechnique.Depth:
                    parameterValue = "Depth";
                    break;

                default:
                    parameterValue = "";
                    return(false);
                }
                break;

            case "ShadowColor":
                parameterValue = ShadowColor.To_0_255_String();
                break;

            case "ShadowTextureCount":
                parameterValue = ShadowTextureCount.ToString();
                break;

            case "ShadowTextureSize":
                parameterValue = ShadowTextureSize.ToString();
                break;

            case "ShadowFarDistance":
                parameterValue = ShadowFarDistance.ToString();
                break;

            case "Help":
                parameterValue = ShadowParameterHelp();
                break;

            default:
                parameterValue = "";
                return(false);
            }
            return(true);
        }
Пример #7
0
        /// <summary>
        /// Draws the TextSprite to the CurrentRenderTarget
        /// </summary>
        ///

        #endregion Constructors

        #region Methods

        public void Draw(IRenderTarget target, RenderStates states)
        {
            if (Shadowed)
            {
                var oldPos   = SFMLTextSprite.Position;
                var oldColor = SFMLTextSprite.FillColor;
                SFMLTextSprite.Position += ShadowOffset.Convert();
                SFMLTextSprite.FillColor = ShadowColor.Convert();
                SFMLTextSprite.Draw(target.SFMLTarget, states.SFMLRenderStates);
                SFMLTextSprite.Position  = oldPos;
                SFMLTextSprite.FillColor = oldColor;
            }
            SFMLTextSprite.Draw(target.SFMLTarget, states.SFMLRenderStates);

            if (CluwneLib.Debug.DebugTextboxes)
            {
                var fr = SFMLTextSprite.GetGlobalBounds().Convert();
                CluwneLib.drawHollowRectangle((int)fr.Left, (int)fr.Top, (int)fr.Width, (int)fr.Height, 1.0f, Color.Red);
            }
        }
Пример #8
0
 /// <inheritdoc/>
 public override int GetHashCode()
 {
     return(Lines.GetHashCode() ^ (Shadow.GetHashCode() + 16) ^ ShadowColor.GetHashCode() ^
            (ShadowWidth.GetHashCode() + 32) ^ (LeftLine.GetHashCode() << 1) ^ (TopLine.GetHashCode() << 2) ^
            (RightLine.GetHashCode() << 3) ^ (BottomLine.GetHashCode() << 4));
 }
        void ReleaseDesignerOutlets()
        {
            if (AddColorButton != null)
            {
                AddColorButton.Dispose();
                AddColorButton = null;
            }

            if (AntialiaseCheckbox != null)
            {
                AntialiaseCheckbox.Dispose();
                AntialiaseCheckbox = null;
            }

            if (BlendMode != null)
            {
                BlendMode.Dispose();
                BlendMode = null;
            }

            if (BlurCheckbox != null)
            {
                BlurCheckbox.Dispose();
                BlurCheckbox = null;
            }

            if (DeviationSlider != null)
            {
                DeviationSlider.Dispose();
                DeviationSlider = null;
            }

            if (DeviationValue != null)
            {
                DeviationValue.Dispose();
                DeviationValue = null;
            }

            if (FillCheckbox != null)
            {
                FillCheckbox.Dispose();
                FillCheckbox = null;
            }

            if (FillColor != null)
            {
                FillColor.Dispose();
                FillColor = null;
            }

            if (GradientDropdown != null)
            {
                GradientDropdown.Dispose();
                GradientDropdown = null;
            }

            if (HorizontalBlurSlider != null)
            {
                HorizontalBlurSlider.Dispose();
                HorizontalBlurSlider = null;
            }

            if (HorizontalBlurValue != null)
            {
                HorizontalBlurValue.Dispose();
                HorizontalBlurValue = null;
            }

            if (JitterCheckbox != null)
            {
                JitterCheckbox.Dispose();
                JitterCheckbox = null;
            }

            if (LengthSlider != null)
            {
                LengthSlider.Dispose();
                LengthSlider = null;
            }

            if (LengthValue != null)
            {
                LengthValue.Dispose();
                LengthValue = null;
            }

            if (LinkedColorSelector != null)
            {
                LinkedColorSelector.Dispose();
                LinkedColorSelector = null;
            }

            if (OpacitySlider != null)
            {
                OpacitySlider.Dispose();
                OpacitySlider = null;
            }

            if (OpacityValue != null)
            {
                OpacityValue.Dispose();
                OpacityValue = null;
            }

            if (VerticalBlurSlider != null)
            {
                VerticalBlurSlider.Dispose();
                VerticalBlurSlider = null;
            }

            if (VerticalBlurValue != null)
            {
                VerticalBlurValue.Dispose();
                VerticalBlurValue = null;
            }

            if (ShadowCheckbox != null)
            {
                ShadowCheckbox.Dispose();
                ShadowCheckbox = null;
            }

            if (ShadowColor != null)
            {
                ShadowColor.Dispose();
                ShadowColor = null;
            }

            if (LinkedShadowColor != null)
            {
                LinkedShadowColor.Dispose();
                LinkedShadowColor = null;
            }

            if (ShadowOpacitySlider != null)
            {
                ShadowOpacitySlider.Dispose();
                ShadowOpacitySlider = null;
            }

            if (ShadowOpacityValue != null)
            {
                ShadowOpacityValue.Dispose();
                ShadowOpacityValue = null;
            }

            if (HorizontalShadowOffsetSlider != null)
            {
                HorizontalShadowOffsetSlider.Dispose();
                HorizontalShadowOffsetSlider = null;
            }

            if (HorizontalShadowOffsetValue != null)
            {
                HorizontalShadowOffsetValue.Dispose();
                HorizontalShadowOffsetValue = null;
            }

            if (VerticalShadowOffsetSlider != null)
            {
                VerticalShadowOffsetSlider.Dispose();
                VerticalShadowOffsetSlider = null;
            }

            if (VerticalShadowOffsetValue != null)
            {
                VerticalShadowOffsetValue.Dispose();
                VerticalShadowOffsetValue = null;
            }

            if (HorizontalShadowBlurSlider != null)
            {
                HorizontalShadowBlurSlider.Dispose();
                HorizontalShadowBlurSlider = null;
            }

            if (HorizontalShadowBlurValue != null)
            {
                HorizontalShadowBlurValue.Dispose();
                HorizontalShadowBlurValue = null;
            }

            if (VerticalShadowBlurSlider != null)
            {
                VerticalShadowBlurSlider.Dispose();
                VerticalShadowBlurSlider = null;
            }

            if (VerticalShadowBlurValue != null)
            {
                VerticalShadowBlurValue.Dispose();
                VerticalShadowBlurValue = null;
            }
        }
        private void PaintRainbow(object sender, SKPaintSurfaceEventArgs args)
        {
            var info    = args.Info;
            var size    = info.Size;
            var surface = args.Surface;
            var canvas  = args.Surface.Canvas;

            var canvasCenter = new SKPoint(size.Width / 2.0f, size.Height / 2.0f);

            // Clear the canvas and move the canvas center point to the viewport center
            canvas.Clear();
            canvas.Translate(canvasCenter);

            // Draw background as a disc
            backgroundPaint.Color = BackgroundColor.ToSKColor();
            if (HasShadow)
            {
                backgroundPaint.ImageFilter = SKImageFilter.CreateDropShadow(
                    size.Width * 0.05f,
                    size.Height * 0.05f,
                    size.Width * 0.1f,
                    size.Height * 0.1f,
                    ShadowColor.ToSKColor(),
                    SKDropShadowImageFilterShadowMode.DrawShadowAndForeground);

                canvas.Scale(0.73f, 0.73f);
            }
            var radius = size.Width * 0.5f; // the term backgroundDiscRadiusScale is there just to ensure the shadow will be visible

            canvas.DrawCircle(0, 0, radius, backgroundPaint);

            // Rotate the canvas
            canvas.RotateDegrees((float)(_rotation * 360.0f));

            // Draw the progress arc
            var progressArcBoundingRect = new SKRect(
                -size.Width * _progressArcDiameterProportion * 0.5f,
                -size.Height * _progressArcDiameterProportion * 0.5f,
                size.Width * _progressArcDiameterProportion * 0.5f,
                size.Height * _progressArcDiameterProportion * 0.5f);

            progressPaint.StrokeWidth = size.Width * 0.08f;
            progressPaint.Color       = _currentColor;
            using (var arcPath = new SKPath())
            {
                float startAngle = 0.0f;
                float sweepAngle = 0.0f;
                if (_progress <= 0.5f)
                {
                    sweepAngle = (float)(2 * _progress * 360.0f);
                    startAngle = -90.0f;
                }

                if (_progress > 0.5d)
                {
                    startAngle = ((float)_progress - 0.5f) // shift the range to (0, 0.5]
                                 * 2                       // map the range to (0, 1.0]
                                 * 360.0f                  // map the range to (0, 360]
                                 - 90.0f;                  // shift the range to (-90.0, 270]
                    sweepAngle = 270.0f - startAngle;
                }

                arcPath.AddArc(progressArcBoundingRect, startAngle, sweepAngle);
                canvas.DrawPath(arcPath, progressPaint);
            }
        }
Пример #11
0
        void ReleaseDesignerOutlets()
        {
            if (ShadowCheckbox != null)
            {
                ShadowCheckbox.Dispose();
                ShadowCheckbox = null;
            }

            if (ShadowColor != null)
            {
                ShadowColor.Dispose();
                ShadowColor = null;
            }

            if (LinkedShadowColor != null)
            {
                LinkedShadowColor.Dispose();
                LinkedShadowColor = null;
            }

            if (ShadowOpacitySlider != null)
            {
                ShadowOpacitySlider.Dispose();
                ShadowOpacitySlider = null;
            }

            if (ShadowOpacityValue != null)
            {
                ShadowOpacityValue.Dispose();
                ShadowOpacityValue = null;
            }

            if (HorizontalShadowOffsetSlider != null)
            {
                HorizontalShadowOffsetSlider.Dispose();
                HorizontalShadowOffsetSlider = null;
            }

            if (HorizontalShadowOffsetValue != null)
            {
                HorizontalShadowOffsetValue.Dispose();
                HorizontalShadowOffsetValue = null;
            }

            if (VerticalShadowOffsetSlider != null)
            {
                VerticalShadowOffsetSlider.Dispose();
                VerticalShadowOffsetSlider = null;
            }

            if (VerticalShadowOffsetValue != null)
            {
                VerticalShadowOffsetValue.Dispose();
                VerticalShadowOffsetValue = null;
            }

            if (HorizontalShadowBlurSlider != null)
            {
                HorizontalShadowBlurSlider.Dispose();
                HorizontalShadowBlurSlider = null;
            }

            if (HorizontalShadowBlurValue != null)
            {
                HorizontalShadowBlurValue.Dispose();
                HorizontalShadowBlurValue = null;
            }

            if (VerticalShadowBlurSlider != null)
            {
                VerticalShadowBlurSlider.Dispose();
                VerticalShadowBlurSlider = null;
            }

            if (VerticalShadowBlurValue != null)
            {
                VerticalShadowBlurValue.Dispose();
                VerticalShadowBlurValue = null;
            }

            if (AddColorButton != null)
            {
                AddColorButton.Dispose();
                AddColorButton = null;
            }

            if (AntialiasCheckbox != null)
            {
                AntialiasCheckbox.Dispose();
                AntialiasCheckbox = null;
            }

            if (BlendMode != null)
            {
                BlendMode.Dispose();
                BlendMode = null;
            }

            if (BlurCheckbox != null)
            {
                BlurCheckbox.Dispose();
                BlurCheckbox = null;
            }

            if (Dash1 != null)
            {
                Dash1.Dispose();
                Dash1 = null;
            }

            if (Dash10 != null)
            {
                Dash10.Dispose();
                Dash10 = null;
            }

            if (Dash11 != null)
            {
                Dash11.Dispose();
                Dash11 = null;
            }

            if (Dash12 != null)
            {
                Dash12.Dispose();
                Dash12 = null;
            }

            if (Dash13 != null)
            {
                Dash13.Dispose();
                Dash13 = null;
            }

            if (Dash14 != null)
            {
                Dash14.Dispose();
                Dash14 = null;
            }

            if (Dash15 != null)
            {
                Dash15.Dispose();
                Dash15 = null;
            }

            if (Dash16 != null)
            {
                Dash16.Dispose();
                Dash16 = null;
            }

            if (Dash2 != null)
            {
                Dash2.Dispose();
                Dash2 = null;
            }

            if (Dash3 != null)
            {
                Dash3.Dispose();
                Dash3 = null;
            }

            if (Dash4 != null)
            {
                Dash4.Dispose();
                Dash4 = null;
            }

            if (Dash5 != null)
            {
                Dash5.Dispose();
                Dash5 = null;
            }

            if (Dash6 != null)
            {
                Dash6.Dispose();
                Dash6 = null;
            }

            if (Dash7 != null)
            {
                Dash7.Dispose();
                Dash7 = null;
            }

            if (Dash8 != null)
            {
                Dash8.Dispose();
                Dash8 = null;
            }

            if (Dash9 != null)
            {
                Dash9.Dispose();
                Dash9 = null;
            }

            if (DashCheckbox != null)
            {
                DashCheckbox.Dispose();
                DashCheckbox = null;
            }

            if (DeviationSlider != null)
            {
                DeviationSlider.Dispose();
                DeviationSlider = null;
            }

            if (DeviationValue != null)
            {
                DeviationValue.Dispose();
                DeviationValue = null;
            }

            if (EndCap != null)
            {
                EndCap.Dispose();
                EndCap = null;
            }

            if (FrameCheckbox != null)
            {
                FrameCheckbox.Dispose();
                FrameCheckbox = null;
            }

            if (FrameColor != null)
            {
                FrameColor.Dispose();
                FrameColor = null;
            }

            if (GradientDropdown != null)
            {
                GradientDropdown.Dispose();
                GradientDropdown = null;
            }

            if (HorizontalBlurSlider != null)
            {
                HorizontalBlurSlider.Dispose();
                HorizontalBlurSlider = null;
            }

            if (HorizontalBlurValue != null)
            {
                HorizontalBlurValue.Dispose();
                HorizontalBlurValue = null;
            }

            if (JitterCheckbox != null)
            {
                JitterCheckbox.Dispose();
                JitterCheckbox = null;
            }

            if (JoinType != null)
            {
                JoinType.Dispose();
                JoinType = null;
            }

            if (LengthSlider != null)
            {
                LengthSlider.Dispose();
                LengthSlider = null;
            }

            if (LengthValue != null)
            {
                LengthValue.Dispose();
                LengthValue = null;
            }

            if (LinkedColorSelector != null)
            {
                LinkedColorSelector.Dispose();
                LinkedColorSelector = null;
            }

            if (MiterSlider != null)
            {
                MiterSlider.Dispose();
                MiterSlider = null;
            }

            if (MiterValue != null)
            {
                MiterValue.Dispose();
                MiterValue = null;
            }

            if (OpacitySlider != null)
            {
                OpacitySlider.Dispose();
                OpacitySlider = null;
            }

            if (OpacityValue != null)
            {
                OpacityValue.Dispose();
                OpacityValue = null;
            }

            if (VerticalBlurSlider != null)
            {
                VerticalBlurSlider.Dispose();
                VerticalBlurSlider = null;
            }

            if (VerticalBlurValue != null)
            {
                VerticalBlurValue.Dispose();
                VerticalBlurValue = null;
            }

            if (WidthSlider != null)
            {
                WidthSlider.Dispose();
                WidthSlider = null;
            }

            if (WidthValue != null)
            {
                WidthValue.Dispose();
                WidthValue = null;
            }
        }