From 2dadad074bdc7b306fb27d5a968826d61560031d Mon Sep 17 00:00:00 2001 From: Jaex Date: Fri, 24 May 2019 16:46:44 +0300 Subject: [PATCH] Support dark theme in news section --- ShareX/Controls/NewsListControl.cs | 38 ++++++++++++++++++++++++++---- ShareX/Forms/MainForm.cs | 1 + 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/ShareX/Controls/NewsListControl.cs b/ShareX/Controls/NewsListControl.cs index e717f139f..c861c1de4 100644 --- a/ShareX/Controls/NewsListControl.cs +++ b/ShareX/Controls/NewsListControl.cs @@ -41,10 +41,36 @@ public partial class NewsListControl : UserControl public NewsListControl() { InitializeComponent(); - dgvNews.AlternatingRowsDefaultCellStyle.BackColor = dgvNews.AlternatingRowsDefaultCellStyle.SelectionBackColor = - ColorHelpers.DarkerColor(SystemColors.Window, 0.02f); - dgvNews.GridColor = ProfessionalColors.SeparatorDark; dgvNews.DoubleBuffered(true); + UpdateTheme(); + } + + public void UpdateTheme() + { + if (ShareXResources.UseDarkTheme) + { + dgvNews.BackgroundColor = ShareXResources.DarkBackgroundColor; + dgvNews.DefaultCellStyle.BackColor = dgvNews.DefaultCellStyle.SelectionBackColor = ShareXResources.DarkBackgroundColor; + dgvNews.DefaultCellStyle.ForeColor = dgvNews.DefaultCellStyle.SelectionForeColor = ShareXResources.DarkTextColor; + dgvNews.AlternatingRowsDefaultCellStyle.BackColor = dgvNews.AlternatingRowsDefaultCellStyle.SelectionBackColor = + ColorHelpers.LighterColor(ShareXResources.DarkBackgroundColor, 0.02f); + dgvNews.GridColor = ShareXResources.DarkBorderColor; + } + else + { + dgvNews.BackgroundColor = SystemColors.Window; + dgvNews.DefaultCellStyle.BackColor = dgvNews.DefaultCellStyle.SelectionBackColor = SystemColors.Window; + dgvNews.DefaultCellStyle.ForeColor = dgvNews.DefaultCellStyle.SelectionForeColor = SystemColors.ControlText; + dgvNews.AlternatingRowsDefaultCellStyle.BackColor = dgvNews.AlternatingRowsDefaultCellStyle.SelectionBackColor = + ColorHelpers.DarkerColor(SystemColors.Window, 0.02f); + dgvNews.GridColor = ProfessionalColors.SeparatorDark; + } + + foreach (DataGridViewRow row in dgvNews.Rows) + { + row.Cells[2].Style.ForeColor = row.Cells[2].Style.SelectionForeColor = + ShareXResources.UseDarkTheme ? ShareXResources.DarkTextColor : SystemColors.ControlText; + } } public void Start() @@ -162,7 +188,8 @@ private void dgvNews_CellMouseEnter(object sender, DataGridViewCellEventArgs e) if (newsItem != null && !string.IsNullOrEmpty(newsItem.URL)) { dgvNews.Cursor = Cursors.Hand; - row.Cells[e.ColumnIndex].Style.ForeColor = row.Cells[e.ColumnIndex].Style.SelectionForeColor = SystemColors.HotTrack; + row.Cells[e.ColumnIndex].Style.ForeColor = row.Cells[e.ColumnIndex].Style.SelectionForeColor = + ShareXResources.UseDarkTheme ? Color.White : SystemColors.HotTrack; } } } @@ -175,7 +202,8 @@ private void dgvNews_CellMouseLeave(object sender, DataGridViewCellEventArgs e) NewsItem newsItem = row.Tag as NewsItem; if (newsItem != null && !string.IsNullOrEmpty(newsItem.URL)) { - row.Cells[e.ColumnIndex].Style.ForeColor = row.Cells[e.ColumnIndex].Style.SelectionForeColor = SystemColors.ControlText; + row.Cells[e.ColumnIndex].Style.ForeColor = row.Cells[e.ColumnIndex].Style.SelectionForeColor = + ShareXResources.UseDarkTheme ? ShareXResources.DarkTextColor : SystemColors.ControlText; } } diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index 611abd4af..8ae5c851a 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -801,6 +801,7 @@ private void UpdateTheme() pbPreview.UpdateCheckers(true); ucTaskView.UpdateTheme(); + ucNews.UpdateTheme(); } private void CleanCustomClipboardFormats()