QuickImage – Rev 1

Subversion Repositories:
Rev:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace QuickImage
{
    public partial class RenameForm : Form
    {
        public class RenameEventArgs : EventArgs
        {
            public ListViewItem ListViewItem { get; }
            public string FileName { get; }

            private RenameEventArgs()
            {

            }

            public RenameEventArgs(ListViewItem listViewItem, string fileName) : this()
            {
                ListViewItem = listViewItem;
                FileName = fileName;
            }
        }

        public event EventHandler<RenameEventArgs> Rename;

        private readonly ListViewItem _listViewItem;


        private RenameForm()
        {
            InitializeComponent();
        }

        public RenameForm(string path) : this()
        {
            textBox1.Text = Path.GetFileName(path);
        }

        public RenameForm(ListViewItem item) : this()
        {
            _listViewItem = item;

            textBox1.Text = Path.GetFileName(item.Name);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //ok
            Rename?.Invoke(this, new RenameEventArgs(_listViewItem, textBox1.Text));
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            switch (e.KeyChar)
            {
                case (char)Keys.Return:
                    break;
                case (char)Keys.Escape:
                    Close();
                    return;
                default:
                    return;
            }

            // Skip the beep.
            e.Handled = true;

            Rename?.Invoke(this, new RenameEventArgs(_listViewItem, textBox1.Text));
            Close();
        }

        private void RenameForm_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode != Keys.Escape)
            {
                return;
            }

            Close();
        }
    }
}