Exemplo n.º 1
0
 private bool ShouldSerializeImagePadding()
 {
     return(!ImagePadding.Equals(Padding.Empty));
 }
Exemplo n.º 2
0
 public bool Equals(AllocationParams other)
 {
     return(true && Flags.Equals(other.Flags) && Align.Equals(other.Align) && Prefix.Equals(other.Prefix) && Padding.Equals(other.Padding));
 }
Exemplo n.º 3
0
 private bool ShouldSerializeContentPadding()
 {
     return(!ContentPadding.Equals(Padding.Empty));
 }
Exemplo n.º 4
0
 private bool ShouldSerializeTitlePadding()
 {
     return(!TitlePadding.Equals(Padding.Empty));
 }
Exemplo n.º 5
0
        void SetButtonMode()
        {
            if (Icon != null && Text.Length > 0)
            {
                mode = ButtonMode.IconWithText;
            }
            else if (Icon != null && Text.Length == 0)
            {
                mode = ButtonMode.IconOnly;
            }
            else if (Icon == null && Text.Length > 0)
            {
                mode = ButtonMode.TextOnly;
            }

            switch (mode)
            {
            case ButtonMode.IconOnly:
                ContainerContent.HorizontalOptions = LayoutOptions.Fill;
                Grid.SetColumnSpan(ButtonIcon, 2);
                Grid.SetColumn(ButtonText, 1);
                ButtonText.IsVisible = false;
                if (Padding.Equals(new Thickness(-1)))
                {
                    Padding = new Thickness(HeightRequest * .3, HeightRequest * .3);
                }
                break;

            case ButtonMode.IconWithText:
                ContainerContent.HorizontalOptions = LayoutOptions.Center;

                switch (IconOrientation)
                {
                case IconOrientation.Left:
                    FirstColumn.Width  = new GridLength(1, GridUnitType.Star);
                    SecondColumn.Width = GridLength.Auto;

                    Grid.SetColumn(ButtonIcon, 0);
                    Grid.SetColumnSpan(ButtonIcon, 1);
                    Grid.SetColumn(ButtonText, 1);
                    break;

                case IconOrientation.Right:
                    FirstColumn.Width  = GridLength.Auto;
                    SecondColumn.Width = new GridLength(1, GridUnitType.Star);

                    Grid.SetColumn(ButtonIcon, 1);
                    Grid.SetColumnSpan(ButtonIcon, 1);
                    Grid.SetColumn(ButtonText, 0);
                    break;
                }

                ButtonText.IsVisible = true;
                if (Padding.Equals(new Thickness(-1)))
                {
                    Padding = new Thickness(HeightRequest * .1, HeightRequest * .3);
                }
                break;

            case ButtonMode.TextOnly:
                ContainerContent.HorizontalOptions = LayoutOptions.Center;
                Grid.SetColumnSpan(ButtonIcon, 1);
                Grid.SetColumn(ButtonText, 0);
                ButtonText.IsVisible = true;
                if (Padding.Equals(new Thickness(-1)))
                {
                    Padding = new Thickness(0);
                }
                break;
            }
        }
Exemplo n.º 6
0
        public string Canonicalize()
        {
            var sb = StringBuilderCache.Aquire();

            sb.Append("blob#" + Source.Key);

            if (Expires != null)
            {
                sb.Append("|>expires(");
                sb.Append(new DateTimeOffset(Expires.Value).ToUnixTimeSeconds());
                sb.Append(')');
            }

            if (Encode.Format == FormatId.Json && Metadata != null)
            {
                sb.Append("|>");
                Metadata.WriteTo(sb);
                sb.Append("|>");
                Encode.WriteTo(sb);

                return(sb.ToString());
            }

            if (Extract is ExtractFilter extract)
            {
                sb.Append("|>");

                // frame | page | timestamp
                sb.Append(extract.ToString());
            }

            if (Background != null)
            {
                sb.Append("|>background(");
                sb.Append(Background);
                sb.Append(')');
            }

            if (Flip != null)
            {
                sb.Append("|>");

                Flip.WriteTo(sb);
            }

            if (Rotate != 0)
            {
                sb.Append("|>rotate(");
                sb.Append(Rotate);
                sb.Append("deg)");
            }

            if (Crop is Rectangle crop)
            {
                sb.Append("|>");
                sb.Append($"crop({crop.X},{crop.Y},{crop.Width},{crop.Height})");
            }

            if (Scale != null)
            {
                sb.Append("|>");

                Scale.WriteTo(sb);
            }

            // pad(0,0)

            if (!Padding.Equals(Padding.Zero))
            {
                sb.Append("|>");
                sb.Append("pad(");
                sb.Append(Padding.ToString());
                sb.Append(")");
            }

            foreach (var filter in Filters)
            {
                sb.Append("|>");

                if (filter is ICanonicalizable canonicalizable)
                {
                    canonicalizable.WriteTo(sb);
                }
                else
                {
                    sb.Append(filter.Canonicalize());
                }
            }

            sb.Append("|>");

            Encode.WriteTo(sb);

            if (IsDebug)
            {
                sb.Append("|>debug");
            }

            return(StringBuilderCache.ExtractAndRelease(sb));
        }
Exemplo n.º 7
0
        public string ToTransformPath()
        {
            if (Encode == null)
            {
                throw new Exception("Missing Encode");
            }

            var sb = StringBuilderCache.Aquire();

            if (Expires != null)
            {
                sb.Append('/');
                sb.Append("expires(");
                sb.Append(new DateTimeOffset(Expires.Value).ToUnixTimeSeconds());
                sb.Append(')');
            }

            if (Encode.Format == FormatId.Json && Metadata != null)
            {
                sb.Append('/');
                Metadata.WriteTo(sb);
                sb.Append(".json");

                return(sb.ToString());
            }

            if (Extract is ExtractFilter extract)
            {
                sb.Append('/');

                // page | timestamp | frame | poster
                sb.Append(extract.ToString());
            }

            if (Background != null)
            {
                sb.Append('/');
                sb.Append("background(");
                sb.Append(Background);
                sb.Append(')');
            }

            if (Flip != null)
            {
                sb.Append('/');

                Flip.WriteTo(sb);
            }

            // TODO: Orient...

            if (Rotate != 0)
            {
                sb.Append('/');
                sb.Append("rotate(");
                sb.Append(Rotate);
                sb.Append("deg)");
            }

            if (Crop is Rectangle crop)
            {
                sb.Append('/');
                sb.Append($"crop({crop.X},{crop.Y},{crop.Width},{crop.Height})");
            }

            if (Scale != null)
            {
                sb.Append('/');

                sb.Append(Scale.Width);
                sb.Append('x');
                sb.Append(Scale.Height);
            }

            // pad(0,0)

            if (!Padding.Equals(Padding.Zero))
            {
                sb.Append('/');
                sb.Append("pad(");
                sb.Append(Padding.ToString());
                sb.Append(")");
            }

            foreach (var filter in Filters)
            {
                sb.Append('/');

                if (filter is ICanonicalizable canonicalizable)
                {
                    canonicalizable.WriteTo(sb);
                }
                else
                {
                    sb.Append(filter.Canonicalize());
                }
            }

            if (Encode.Flags.HasFlag(EncodeFlags.Lossless))
            {
                sb.Append('/');
                sb.Append("lossless");
            }
            else if (Encode.Quality != null)
            {
                sb.Append('/');
                sb.Append("quality(");
                sb.Append(Encode.Quality.Value);
                sb.Append(')');
            }

            sb.Append('.');
            sb.Append(Encode.Format.ToString().ToLower());

            return(StringBuilderCache.ExtractAndRelease(sb).Substring(1));
        }