Example #1
0
        private void SetDisplayText()
        {
            string format = "Convert to {0}";

            switch (_format)
            {
            case ColorFormat.Rgb:
                _colorModel.Format = ColorFormat.Rgb;
                _displayText       = string.Format(CultureInfo.InvariantCulture, format, ColorFormatter.FormatColor(_colorModel, ColorFormat.Rgb));
                break;

            case ColorFormat.Hsl:
                _displayText = string.Format(CultureInfo.InvariantCulture, format, FormatHslColor(_colorModel));     //string.Format(CultureInfo.InvariantCulture, format, ColorFormatter.FormatColorAs(_colorModel, ColorFormat.Hsl));
                break;

            case ColorFormat.Name:
                _displayText = string.Format(CultureInfo.InvariantCulture, format, GetNamedColor(_colorModel.Color));
                break;

            case ColorFormat.RgbHex3:
            case ColorFormat.RgbHex6:
                _displayText = string.Format(CultureInfo.InvariantCulture, format, ColorFormatter.FormatColor(_colorModel, ColorFormat.RgbHex3));
                break;
            }
        }
Example #2
0
        public IEnumerable <ISmartTagAction> GetSmartTagActions(ParseItem item, int position, ITrackingSpan itemTrackingSpan, ITextView view)
        {
            HexColorValue hex = (HexColorValue)item;

            if (!item.IsValid)
            {
                yield break;
            }

            ColorModel model = ColorParser.TryParseColor(hex.Text, ColorParser.Options.None);

            if (model != null)
            {
                if (ColorConverterSmartTagAction.GetNamedColor(model.Color) != null)
                {
                    yield return(new ColorConverterSmartTagAction(itemTrackingSpan, model, ColorFormat.Name));
                }

                if (model.Format == ColorFormat.RgbHex6)
                {
                    model.Format = ColorFormat.RgbHex3;
                    string hex3 = ColorFormatter.FormatColor(model, ColorFormat.RgbHex3);

                    if (hex3.Length == 4)
                    {
                        yield return(new ColorConverterSmartTagAction(itemTrackingSpan, model, ColorFormat.RgbHex3));
                    }
                }

                yield return(new ColorConverterSmartTagAction(itemTrackingSpan, model, ColorFormat.Rgb));

                yield return(new ColorConverterSmartTagAction(itemTrackingSpan, model, ColorFormat.Hsl));
            }
        }
Example #3
0
        public override void Invoke()
        {
            var value = _item.Text;

            switch (_format)
            {
            case ColorFormat.Name:
                value = GetNamedColor(_colorModel.Color);
                break;

            case ColorFormat.Hsl:
                value = FormatHslColor(_colorModel);     //ColorFormatter.FormatColorAs(_colorModel, ColorFormat.Hsl);
                break;

            case ColorFormat.Rgb:
                _colorModel.Format = ColorFormat.Rgb;
                value = ColorFormatter.FormatColor(_colorModel, ColorFormat.Rgb);
                break;

            case ColorFormat.RgbHex3:
            case ColorFormat.RgbHex6:
                _colorModel.Format = ColorFormat.RgbHex3;
                value = ColorFormatter.FormatColor(_colorModel, ColorFormat.RgbHex3);
                break;
            }

            _span.TextBuffer.Replace(_span.GetSpan(_span.TextBuffer.CurrentSnapshot), value);
        }
Example #4
0
        private static string GetColorString(ColorFormat format, ColorModel model)
        {
            switch (format)
            {
            case ColorFormat.Name:
                return(GetNamedColor(model.Color));

            case ColorFormat.Hsl:
                return(FormatHslColor(model));    //ColorFormatter.FormatColorAs(_colorModel, ColorFormat.Hsl);

            case ColorFormat.Rgb:
            case ColorFormat.RgbHex3:
            case ColorFormat.RgbHex6:
                return(ColorFormatter.FormatColor(model, format));

            default:
                throw new InvalidEnumArgumentException("format", (int)format, typeof(ColorFormat));
            }
        }