using System.Linq;
using System.Windows;
using System.Windows.Controls;
namespace BOTWToolset.Debugging
{
    /// 
    /// Allows for printing debug info to an in-app console.
    /// 
    static class BOTWConsole
    {
        private static readonly Label _status;
        // Timer which automatically clears the status bar - currently unused
        //private static DispatcherTimer ClearStatusTimer;
        static BOTWConsole()
        {
            var dashboard = Application.Current.Windows.OfType().ToArray()[0];
            _status = dashboard.LabelStatus;
        }
        /// 
        /// Sets the status bar text.
        /// 
        /// The text to display.
        public static void LogStatus(object text)
        {
            /*if (ClearStatusTimer != null)
                ClearStatusTimer.Stop();*/
            _status.Content = text.ToString();
            /*ClearStatusTimer = new DispatcherTimer();
            ClearStatusTimer.Tick += (src, e) => { ClearStatus(); };
            ClearStatusTimer.Interval = new TimeSpan(0, 0, 4);
            ClearStatusTimer.Start();*/
        }
        public static void LogWarning(object text)
        {
            LogStatus("[Warning]" + text);
        }
        public static void LogError(object text)
        {
            LogStatus("[ERROR]" + text);
        }
        /// 
        /// Clears the status bar text.
        /// 
        public static void ClearStatus()
        {
            _status.Content = "";
        }
    }
}