Switch to Actions instead of events to pass actions between Presenters and Views

This commit is contained in:
Anton Kasyanov
2016-06-08 22:33:38 +03:00
parent c596857fbc
commit 25ab51bdbe
7 changed files with 66 additions and 56 deletions

View File

@@ -14,9 +14,9 @@ namespace EveOPreview.UI
void RefreshThumbnails();
void SetupThumbnailFrames();
event Action<IList<IThumbnailView>> ThumbnailsAdded;
event Action<IList<IThumbnailView>> ThumbnailsUpdated;
event Action<IList<IThumbnailView>> ThumbnailsRemoved;
event Action<Size> ThumbnailSizeChanged;
Action<IList<IThumbnailView>> ThumbnailsAdded { get; set; }
Action<IList<IThumbnailView>> ThumbnailsUpdated { get; set; }
Action<IList<IThumbnailView>> ThumbnailsRemoved { get; set; }
Action<Size> ThumbnailSizeChanged { get; set; }
}
}

View File

@@ -35,19 +35,19 @@ namespace EveOPreview.UI
this._thumbnailDescriptionViews = new Dictionary<IntPtr, IThumbnailDescriptionView>();
this._exitApplication = false;
this.View.FormActivated += Activate;
this.View.FormMinimized += Minimize;
this.View.FormCloseRequested += Close;
this.View.ApplicationSettingsChanged += SaveApplicationSettings;
this.View.ThumbnailsSizeChanged += UpdateThumbnailsSize;
this.View.ThumbnailStateChanged += UpdateThumbnailState;
this.View.ForumUrlLinkActivated += OpenForumUrlLink;
this.View.ApplicationExitRequested += ExitApplication;
this.View.FormActivated = this.Activate;
this.View.FormMinimized = this.Minimize;
this.View.FormCloseRequested = this.Close;
this.View.ApplicationSettingsChanged = this.SaveApplicationSettings;
this.View.ThumbnailsSizeChanged = this.UpdateThumbnailsSize;
this.View.ThumbnailStateChanged = this.UpdateThumbnailState;
this.View.ForumUrlLinkActivated = this.OpenForumUrlLink;
this.View.ApplicationExitRequested = this.ExitApplication;
this._thumbnailManager.ThumbnailsAdded += ThumbnailsAdded;
this._thumbnailManager.ThumbnailsUpdated += ThumbnailsUpdated;
this._thumbnailManager.ThumbnailsRemoved += ThumbnailsRemoved;
this._thumbnailManager.ThumbnailSizeChanged += ThumbnailSizeChanged;
this._thumbnailManager.ThumbnailsAdded = this.ThumbnailsAdded;
this._thumbnailManager.ThumbnailsUpdated = this.ThumbnailsUpdated;
this._thumbnailManager.ThumbnailsRemoved = this.ThumbnailsRemoved;
this._thumbnailManager.ThumbnailSizeChanged = this.ThumbnailSizeChanged;
}
private void Activate()

View File

@@ -47,10 +47,13 @@ namespace EveOPreview.UI
this._thumbnailUpdateTimer.Interval = new TimeSpan(0, 0, 0, 0, configuration.ThumbnailRefreshPeriod);
}
public event Action<IList<IThumbnailView>> ThumbnailsAdded;
public event Action<IList<IThumbnailView>> ThumbnailsUpdated;
public event Action<IList<IThumbnailView>> ThumbnailsRemoved;
public event Action<Size> ThumbnailSizeChanged;
public Action<IList<IThumbnailView>> ThumbnailsAdded { get; set; }
public Action<IList<IThumbnailView>> ThumbnailsUpdated { get; set; }
public Action<IList<IThumbnailView>> ThumbnailsRemoved { get; set; }
public Action<Size> ThumbnailSizeChanged { get; set; }
public void Activate()
{
@@ -206,11 +209,11 @@ namespace EveOPreview.UI
view.SetWindowFrames(this._configuration.ShowThumbnailFrames);
view.Location = this._configuration.GetThumbnailLocation(processTitle, this._activeClientTitle, view.Location);
view.ThumbnailResized += ThumbnailViewResized;
view.ThumbnailMoved += ThumbnailViewMoved;
view.ThumbnailFocused += ThumbnailViewFocused;
view.ThumbnailLostFocus += ThumbnailViewLostFocus;
view.ThumbnailActivated += ThumbnailActivated;
view.ThumbnailResized = this.ThumbnailViewResized;
view.ThumbnailMoved = this.ThumbnailViewMoved;
view.ThumbnailFocused = this.ThumbnailViewFocused;
view.ThumbnailLostFocus = this.ThumbnailViewLostFocus;
view.ThumbnailActivated = this.ThumbnailActivated;
this._thumbnailViews.Add(processHandle, view);
@@ -259,11 +262,11 @@ namespace EveOPreview.UI
this._thumbnailViews.Remove(processHandle);
// TODO Remove hotkey here
view.ThumbnailResized -= ThumbnailViewResized;
view.ThumbnailMoved -= ThumbnailViewMoved;
view.ThumbnailFocused -= ThumbnailViewFocused;
view.ThumbnailLostFocus -= ThumbnailViewLostFocus;
view.ThumbnailActivated -= ThumbnailActivated;
view.ThumbnailResized = null;
view.ThumbnailMoved = null;
view.ThumbnailFocused = null;
view.ThumbnailLostFocus = null;
view.ThumbnailActivated = null;
view.Close();

View File

@@ -295,14 +295,21 @@ namespace EveOPreview.UI
this.ZoomAnchorPanel.Enabled = enableControls;
}
public event Action ApplicationExitRequested;
public event Action FormActivated;
public event Action FormMinimized;
public event Action<ViewCloseRequest> FormCloseRequested;
public event Action ApplicationSettingsChanged;
public event Action ThumbnailsSizeChanged;
public event Action<IntPtr> ThumbnailStateChanged;
public event Action ForumUrlLinkActivated;
public Action ApplicationExitRequested { get; set; }
public Action FormActivated { get; set; }
public Action FormMinimized { get; set; }
public Action<ViewCloseRequest> FormCloseRequested { get; set; }
public Action ApplicationSettingsChanged { get; set; }
public Action ThumbnailsSizeChanged { get; set; }
public Action<IntPtr> ThumbnailStateChanged { get; set; }
public Action ForumUrlLinkActivated { get; set; }
#region UI events
private void OptionChanged_Handler(object sender, EventArgs e)

View File

@@ -82,15 +82,15 @@ namespace EveOPreview.UI
}
}
public event Action<IntPtr> ThumbnailResized;
public Action<IntPtr> ThumbnailResized { get; set; }
public event Action<IntPtr> ThumbnailMoved;
public Action<IntPtr> ThumbnailMoved { get; set; }
public event Action<IntPtr> ThumbnailFocused;
public Action<IntPtr> ThumbnailFocused { get; set; }
public event Action<IntPtr> ThumbnailLostFocus;
public Action<IntPtr> ThumbnailLostFocus { get; set; }
public event Action<IntPtr> ThumbnailActivated;
public Action<IntPtr> ThumbnailActivated { get; set; }
public new void Show()
{

View File

@@ -40,13 +40,13 @@ namespace EveOPreview.UI
void RemoveThumbnails(IList<IThumbnailDescriptionView> thumbnails);
void RefreshZoomSettings();
event Action ApplicationExitRequested;
event Action FormActivated;
event Action FormMinimized;
event Action<ViewCloseRequest> FormCloseRequested;
event Action ApplicationSettingsChanged;
event Action ThumbnailsSizeChanged;
event Action<IntPtr> ThumbnailStateChanged;
event Action ForumUrlLinkActivated;
Action ApplicationExitRequested { get; set; }
Action FormActivated { get; set; }
Action FormMinimized { get; set; }
Action<ViewCloseRequest> FormCloseRequested { get; set; }
Action ApplicationSettingsChanged { get; set; }
Action ThumbnailsSizeChanged { get; set; }
Action<IntPtr> ThumbnailStateChanged { get; set; }
Action ForumUrlLinkActivated { get; set; }
}
}

View File

@@ -26,10 +26,10 @@ namespace EveOPreview.UI
void Refresh();
event Action<IntPtr> ThumbnailResized;
event Action<IntPtr> ThumbnailMoved;
event Action<IntPtr> ThumbnailFocused;
event Action<IntPtr> ThumbnailLostFocus;
event Action<IntPtr> ThumbnailActivated;
Action<IntPtr> ThumbnailResized { get; set; }
Action<IntPtr> ThumbnailMoved { get; set; }
Action<IntPtr> ThumbnailFocused { get; set; }
Action<IntPtr> ThumbnailLostFocus { get; set; }
Action<IntPtr> ThumbnailActivated { get; set; }
}
}