using ComPDFKitViewer.PdfViewer;
using PDF_Office.Model.EditTools.Background;
using PDF_Office.Model.EditTools.Watermark;
using PDFSettings;
using Prism.Commands;
using Prism.Events;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;

namespace PDF_Office.EventAggregators
{

    public enum EnumCloseMode
    {
        StatusConfirm,
        StatusCancel,
    }

    public enum EnumTemplateListOrCreate
    {
        StatusNone = -1,
        StatusTemplate,
        StatusCreate
    }

    public enum EnumColorOrFile
    {
        StatusNone = -1,
        StatusColor,
        StatusFile
    }

    public enum EnumTextOrFile
    {
        StatusNone = -1,
        StatusText,
        StatusFile
    }
    public enum EnumDelete
    {
        StatusCreate,
        StatusDeleteAll,
        StatusDeleteInitial
    }

    

    public class StringWithUnicode
    {
        public string Unicode;
        public string EditToolsContentName;
    }

    public class EnumCloseModeUnicode
    {
        public string Unicode;
        public EnumCloseMode Status;
    }

    public class EnumTemplateListOrCreateUnicode
    {
        public string Unicode;
        public EnumTemplateListOrCreate Status;
    }

    public class EnumColorOrFileUnicode
    {
        public string Unicode;
        public EnumColorOrFile Status;
    }

    public class EnumTextOrFileUnicode
    {
        public string Unicode;
        public EnumTextOrFile Status;
    }

    public class EnumDeleteUnicode
    {
        public string Unicode;
        public EnumDelete Status;
    }

    public class stringUnicode
    {
        public string Unicode;
        public string Status;
    }

    public class BackgroundInfoUnicode
    {
        public string Unicode;
        public BackgroundInfo Status;
    }

    public class WatermarkInfoUnicode
    {
        public string Unicode;
        public WatermarkInfo Status;
    }

    public class BackgroundItemUnicode
    {
        public string Unicode;
        public BackgroundItem Status;
    }

    public class WatermarkItemUnicode
    {
        public string Unicode;
        public WatermarkItem Status;
    }

    public class BatesHeaderFooterItemUnicode
    {
        public string Unicode;
        public string Type;
        public BatesHeaderFooterItem Status;
    }

    public class CPDFViewerUnicode
    {
        public string Unicode;
        public CPDFViewer Status;
    }

    public class EnterSelectedEditToolEvent : PubSubEvent<StringWithUnicode>
    {
    }

    public class CloseEditToolEvent : PubSubEvent<EnumCloseModeUnicode>
    {
    }

    public class EnterTemplateListOrCreateEvent : PubSubEvent<EnumTemplateListOrCreateUnicode>
    {
    }


    public class ConfirmEditToolsBackgroundEvent : PubSubEvent
    {
    }

    public class ConfirmEditToolsWatermarkEvent : PubSubEvent
    {
    }

    public class SetCurrentCreateModEvent : PubSubEvent<stringUnicode>
    {
    }

    public class SetCurrentTemplateListModEvent : PubSubEvent<stringUnicode>
    {
    }

    public class SetBackgroundEvent : PubSubEvent<BackgroundInfoUnicode>
    {
    }

    public class SetWatermarkEvent : PubSubEvent<WatermarkInfoUnicode>
    {
    }

    public class SaveBackgroundTemplateEvent : PubSubEvent<EnumColorOrFileUnicode>
    {
    }

    public class SaveWatermarkTemplateEvent : PubSubEvent<EnumTextOrFileUnicode>
    {
    }

    public class DeleteWatermarkEvent : PubSubEvent<EnumDeleteUnicode>
    {
    }

    public class CurrentWatermarkPDFViewerEvent : PubSubEvent<CPDFViewerUnicode>
    {
    }
    public class EditBackgroundTemplateItemEvent : PubSubEvent<BackgroundItemUnicode>
    {
    }

    public class EditWatermarkTemplateItemEvent : PubSubEvent<WatermarkItemUnicode>
    {
    }

    public class EditBatesHeaderFooterTemplateItemEvent : PubSubEvent<BatesHeaderFooterItemUnicode>
    {
    }

    public class ConfirmEditBackgroundTemplateItemEvent : PubSubEvent<EnumColorOrFileUnicode>
    {
    }

    public class ConfirmEditWatermarkTemplateItemEvent : PubSubEvent<EnumTextOrFileUnicode>
    {
    }

    public class SaveEditedBackgroundTemplateItemEvent : PubSubEvent<BackgroundItemUnicode>
    {
    }

    public class SaveEditedWatermarkTemplateItemEvent : PubSubEvent<WatermarkItemUnicode>
    {

    }
}
