Exemplo n.º 1
0
        public ColorRecord Duplicate(
            IColorRecordGetter item,
            FormKey formKey,
            TranslationCrystal?copyMask)
        {
            var newRec = new ColorRecord(formKey);

            newRec.DeepCopyIn(item, default(ErrorMaskBuilder?), copyMask);
            return(newRec);
        }
Exemplo n.º 2
0
        public ColorRecord DeepCopy(
            IColorRecordGetter item,
            ColorRecord.TranslationMask?copyMask = null)
        {
            ColorRecord ret = (ColorRecord)((ColorRecordCommon)((IColorRecordGetter)item).CommonInstance() !).GetNew();

            ((ColorRecordSetterTranslationCommon)((IColorRecordGetter)ret).CommonSetterTranslationInstance() !).DeepCopyIn(
                item: ret,
                rhs: item,
                errorMask: null,
                copyMask: copyMask?.GetCrystal(),
                deepCopy: true);
            return(ret);
        }
Exemplo n.º 3
0
 private void btnAddColor_Click(object sender, EventArgs e)
 {
     for (char c = 'A'; c < 'Z'; c++)
     {
         if (!Symbol.Colors.Keys.Contains(c))
         {
             ColorRecord cr = Symbol.ColorTable.Colors.Values.First();
             Symbol.Colors.Add(c, cr);
             ListViewItem listviewitem = new ListViewItem(cr.Code);
             listviewitem.SubItems.Add(c.ToString());
             this.listViewPalette.Items.Add(listviewitem);
             return;
         }
     }
 }
Exemplo n.º 4
0
        private static ColorRecord UnpackColorRecord(BinaryReader reader)
        {
            var recordNameLen = reader.ReadInt32();
            var nameBytes     = reader.ReadBytes(recordNameLen);

            var colorRecord = new ColorRecord
            {
                Name = Encoding.UTF8.GetString(nameBytes),
            };

            colorRecord.BackgroundPos = reader.BaseStream.Position;
            colorRecord.Background    = UnpackColor(reader);
            colorRecord.ForegroundPos = reader.BaseStream.Position;
            colorRecord.Foreground    = UnpackColor(reader);
            return(colorRecord);
        }
Exemplo n.º 5
0
        public ColorRecord DeepCopy(
            IColorRecordGetter item,
            out ColorRecord.ErrorMask errorMask,
            ColorRecord.TranslationMask?copyMask = null)
        {
            var         errorMaskBuilder = new ErrorMaskBuilder();
            ColorRecord ret = (ColorRecord)((ColorRecordCommon)((IColorRecordGetter)item).CommonInstance() !).GetNew();

            ((ColorRecordSetterTranslationCommon)((IColorRecordGetter)ret).CommonSetterTranslationInstance() !).DeepCopyIn(
                ret,
                item,
                errorMask: errorMaskBuilder,
                copyMask: copyMask?.GetCrystal(),
                deepCopy: true);
            errorMask = ColorRecord.ErrorMask.Factory(errorMaskBuilder);
            return(ret);
        }
        private static ColorRecord UnpackColorRecord(BinaryReader reader)
        {
            // See Microsoft.VisualStudio.Platform.WindowManagement.ColorRecord ctor
            var recordNameLen = reader.ReadInt32();
            var nameBytes     = reader.ReadBytes(recordNameLen);

            var colorRecord = new ColorRecord
            {
                Name = Encoding.UTF8.GetString(nameBytes),
            };

            colorRecord.BackgroundType = (VsColorType)reader.ReadByte();
            if (IsValidColorType(colorRecord.BackgroundType))
            {
                colorRecord.Background = UnpackColor(reader);
            }
            colorRecord.ForegroundType = (VsColorType)reader.ReadByte();
            if (IsValidColorType(colorRecord.ForegroundType))
            {
                colorRecord.Foreground = UnpackColor(reader);
            }
            return(colorRecord);
        }
Exemplo n.º 7
0
        public static void InjectColor(Color?fgColor, Color?bgColor, Theme theme, Category category, ColorRecord colorRec)
        {
            var regPath   = Path.Combine(ThemeReader.RegPath, theme.Guid.ToString("B"), category.Name);
            var reg       = Registry.CurrentUser.OpenSubKey(regPath, true);
            var colorData = reg.GetValue("Data") as byte[];

            using (var ms = new MemoryStream(colorData))
                using (var bw = new BinaryWriter(ms))
                {
                    if (bgColor != null)
                    {
                        ms.Seek(colorRec.BackgroundPos, SeekOrigin.Begin);
                        WriteColor(bgColor.Value, bw);
                    }
                    if (fgColor != null)
                    {
                        ms.Seek(colorRec.ForegroundPos, SeekOrigin.Begin);
                        WriteColor(fgColor.Value, bw);
                    }

                    bw.Flush();
                    bw.Close();
                    var setData = ms.ToArray();

                    reg.SetValue("Data", setData, RegistryValueKind.Binary);
                }
        }
Exemplo n.º 8
0
 public override object GetNew()
 {
     return(ColorRecord.GetNew());
 }