using ComPDFKitViewer.AnnotEvent;
using ComPDFKitViewer.PdfViewer;
using PDF_Office.CustomControl;
using Prism.Commands;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;

namespace PDF_Office.ViewModels.Tools
{ 

    /// <summary>
    /// 改变工具栏注释属性值，主要用来传参数：注释属性和同步工具栏对应图标的属性（颜色）
    /// </summary>
    public class AnnotPropertyPanel
    {
        public AnnotAttribEvent AnnotEvent { get; set; }
        public AnnotHandlerEventArgs annot;
        public event EventHandler<Dictionary<AnnotArgsType, object>> DataChanged;
        public event EventHandler<Dictionary<AnnotArgsType, object>> AnnotTypeChanged;
        public event EventHandler<object> DefaultStored;
        public AnnotPropertyPanel(){ }

        /// <summary>
        /// 触发到工具栏注释工具，改变工具图标下的颜色值
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="keyValues"></param>
        public void DataChangedInvoke(object sender, Dictionary<AnnotArgsType, object> keyValues)
        {
            DataChanged?.Invoke(sender, keyValues);
        }

        public void AnnotTypeChangedInvoke(object sender, Dictionary<AnnotArgsType, object> keyValues)
        {
            AnnotTypeChanged?.Invoke(sender, keyValues);
        }
    }

    public sealed partial class AnnotToolContentViewModel
    {
        #region 属性

        #region 注释工具
        //高亮
        private Brush highLightColor = new SolidColorBrush(Color.FromRgb(0xFF, 0xBB, 0x00));
        public Brush HighLightColor { get { return highLightColor; } set { SetProperty(ref highLightColor, value); } }

        //
        private double highLightOpacity = 1;
        public double HighLightOpacity {get { return highLightOpacity; } set { SetProperty(ref highLightOpacity, value); } }

        //
        private Brush underLine = new SolidColorBrush(Color.FromRgb(0xFF, 0xBB, 0x00));
        public Brush UnderLineColor {get { return underLine; } set { SetProperty(ref underLine, value); }}

        //
        private double underLineOpacity = 1;
        public double UnderLineOpacity { get { return underLineOpacity; } set { SetProperty(ref underLineOpacity, value); }}

        //
        private Brush squigglyColor = new SolidColorBrush(Color.FromRgb(0xFF, 0xBB, 0x00));
        public Brush SquigglyColor{ get { return squigglyColor; } set { SetProperty(ref squigglyColor, value); } }

        //
        private double squigglyOpacity = 1;
        public double SquigglyOpacity {get { return squigglyOpacity; } set { SetProperty(ref squigglyOpacity, value); } }

        //
        private Brush strikeoutColor = new SolidColorBrush(Color.FromRgb(0xFF, 0xBB, 0x00));
        public Brush StrikeoutColor{ get { return strikeoutColor; }  set { SetProperty(ref strikeoutColor, value); }}

        //
        private double strikeoutOpacity = 1;
        public double StrikeoutOpacity {get { return strikeoutOpacity; }  set { SetProperty(ref strikeoutOpacity, value); } }

        #endregion

        #endregion




        private CPDFViewer PDFViewer;
        private ViewContentViewModel viewContentViewModel;
        public DelegateCommand<CustomIconToggleBtn> MyToolsCommand { get; set; }
        AnnotPropertyPanel propertyPanel = new AnnotPropertyPanel();
    }
}
