If news unread start animation

This commit is contained in:
Jaex 2017-06-14 15:21:37 +03:00
parent ac40d70195
commit 2509b14223
3 changed files with 33 additions and 1 deletions

View file

@ -68,6 +68,12 @@ public void StopAnimation()
timer.Stop(); timer.Stop();
} }
public void ResetAnimation()
{
StopAnimation();
ForeColor = FromColor;
}
private void timer_Tick(object sender, EventArgs e) private void timer_Tick(object sender, EventArgs e)
{ {
progress += direction * speed; progress += direction * speed;

View file

@ -40,6 +40,8 @@ public partial class NewsListControl : UserControl
{ {
public NewsManager NewsManager { get; private set; } public NewsManager NewsManager { get; private set; }
public event EventHandler NewsLoaded;
private ToolTip tooltip; private ToolTip tooltip;
public NewsListControl() public NewsListControl()
@ -54,7 +56,10 @@ public NewsListControl()
tlpMain.CellPaint += TlpMain_CellPaint; tlpMain.CellPaint += TlpMain_CellPaint;
tlpMain.Layout += TlpMain_Layout; tlpMain.Layout += TlpMain_Layout;
}
public void Start()
{
TaskEx.Run(() => TaskEx.Run(() =>
{ {
NewsManager = new NewsManager(); NewsManager = new NewsManager();
@ -73,10 +78,20 @@ public NewsListControl()
AddNewsItem(item); AddNewsItem(item);
} }
} }
OnNewsLoaded();
} }
}); });
} }
protected void OnNewsLoaded()
{
if (NewsLoaded != null)
{
NewsLoaded(this, EventArgs.Empty);
}
}
public void MarkRead() public void MarkRead()
{ {
if (NewsManager != null && NewsManager.NewsItems != null && NewsManager.NewsItems.Count > 0) if (NewsManager != null && NewsManager.NewsItems != null && NewsManager.NewsItems.Count > 0)

View file

@ -181,6 +181,12 @@ private void InitializeControls()
ExportImportControl.UploadRequested += json => UploadManager.UploadText(json); ExportImportControl.UploadRequested += json => UploadManager.UploadText(json);
ucNews.NewsLoaded += (sender, e) =>
{
if (ucNews.NewsManager.IsUnread && Visible) tsbNews.StartAnimation();
};
ucNews.Start();
HandleCreated += MainForm_HandleCreated; HandleCreated += MainForm_HandleCreated;
#if WindowsStore #if WindowsStore
@ -1030,7 +1036,11 @@ private void MainForm_VisibleChanged(object sender, EventArgs e)
#if DEBUG #if DEBUG
if (Visible) if (Visible)
{ {
tsbNews.StartAnimation(); if (ucNews.NewsManager.IsUnread)
{
tsbNews.StartAnimation();
}
tsbDonate.StartAnimation(); tsbDonate.StartAnimation();
} }
else else
@ -1562,6 +1572,7 @@ private void tsbNews_Click(object sender, EventArgs e)
if (!pNews.Visible) if (!pNews.Visible)
{ {
pNews.Visible = true; pNews.Visible = true;
tsbNews.ResetAnimation();
} }
else else
{ {