public GUIOverlay(StatTracker tracker)
        {
            InitializeComponent();
            m_statTracker = tracker;

            // Prevent X images showing up.
            ((DataGridViewImageColumn)this.eventLogGridView.Columns[2]).DefaultCellStyle.NullValue = null;

            this.eventLogGridView.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.False;
            this.eventLogGridView.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False;
            this.eventLogGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

            for (int i = 0; i < this.eventLogGridView.Columns.Count; i++) {
                this.eventLogGridView.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            }
            this.eventLogGridView.Columns[0].MinimumWidth = 60;
            this.eventLogGridView.Columns[1].MinimumWidth = 60;
        }
        public GUIMain(StatTracker tracker) {
            InitializeComponent();
            m_tasks = new List<Task>();
            m_statTracker = tracker;
            m_overlay = null;
            m_cts = new CancellationTokenSource();

            // Load version.
            this.versionLabel.Text = GlobalVariables.PROGRAM_TITLE + " V " + GlobalVariables.VERSION_NUM;
            m_highColor = Color.FromArgb(0, 192, 0);
            m_lowColor = Color.Red;

            // Prevent X images showing up.
            ((DataGridViewImageColumn)this.eventLogGridView.Columns[0]).DefaultCellStyle.NullValue = null;
            ((DataGridViewImageColumn)this.eventLogGridView.Columns[4]).DefaultCellStyle.NullValue = null;
            // Handle mouse movement and resizing on borderless window.
            this.menuStrip1.MouseDown += OnMouseDown;
            this.onlineStatusImage.MouseDown += OnMouseDown;
            AddMouseEventDown(this);

            // Check for new updates. Even though this is not awaited it still allows other program operation to run.
            UpdateCheckManagement(false);
        }