using System;
using System.ComponentModel;
using System.Drawing.Design;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace OpenCVStudio_v0
{
    public sealed class FilePathEditor : UITypeEditor
    {
        public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext? context)
        {
            return UITypeEditorEditStyle.Modal;
        }

        public override object EditValue(ITypeDescriptorContext? context, IServiceProvider provider, object value)
        {
            using SaveFileDialog dialog = new SaveFileDialog();
            dialog.Filter = "PNG изображение|*.png|JPEG изображение|*.jpg;*.jpeg|BMP изображение|*.bmp|TIFF изображение|*.tiff";
            dialog.Title = "Выберите файл для сохранения изображения";
            if (value is string oldPath && !string.IsNullOrWhiteSpace(oldPath))
            {
                dialog.FileName = System.IO.Path.GetFileName(oldPath);
            }
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                return dialog.FileName;
            }
            return value;
        }
    }
}