using System.Linq;
using System.Windows.Forms;

namespace TweetDuck.Core{
    static class FormManager{
        public static T TryFind<T>() where T : Form{
            return Application.OpenForms.OfType<T>().FirstOrDefault();
        }

        public static bool TryBringToFront<T>() where T : Form{
            T form = TryFind<T>();

            if (form != null){
                form.BringToFront();
                return true;
            }
            else return false;
        }

        public static bool HasAnyDialogs => Application.OpenForms.OfType<IAppDialog>().Any();
        
        public static void CloseAllDialogs(){
            foreach(IAppDialog dialog in Application.OpenForms.OfType<IAppDialog>().Reverse()){
                ((Form)dialog).Close();
            }
        }

        public interface IAppDialog{}
    }
}