Switch to MVP pattern

This commit is contained in:
Anton Kasyanov
2016-05-22 18:37:04 +03:00
parent 5e276b7a98
commit 362fd0b8d4
41 changed files with 2060 additions and 1265 deletions

View File

@@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.Drawing;
namespace EveOPreview.UI
{
/// <summary>
/// Main view interface
/// Presenter uses it to access GUI properties
/// </summary>
public interface IMainView : IView
{
bool MinimizeToTray { get; set; }
double ThumbnailsOpacity { get; set; }
bool TrackClientLocations { get; set; }
bool HideActiveClientThumbnail { get; set; }
bool ShowThumbnailsAlwaysOnTop { get; set; }
bool HideAllThumbnailsIfClientIsNotActive { get; set; }
bool EnableUniqueThumbnailsLayouts { get; set; }
bool SyncThumbnailsSize { get; set; }
int ThumbnailsWidth { get; set; }
int ThumbnailsHeight { get; set; }
bool EnableZoomOnHover { get; set; }
int ZoomFactor { get; set; }
ZoomAnchor ZoomAnchor { get; set; }
bool ShowThumbnailOverlays { get; set; }
bool ShowThumbnailFrames { get; set; }
void SetForumUrl(string url);
void Minimize();
void AddThumbnails(IList<IThumbnailDescriptionView> thumbnails);
void UpdateThumbnails(IList<IThumbnailDescriptionView> thumbnails);
void RemoveThumbnails(IList<IThumbnailDescriptionView> thumbnails);
void UpdateThumbnailsSizeView(Size size);
void UpdateZoomSettingsView();
event Action ApplicationExitRequested;
event Action FormActivated;
event Action FormMinimized;
event Action<ViewCloseRequest> FormCloseRequested;
event Action ApplicationSettingsChanged;
event Action ThumbnailsSizeChanged;
event Action<IntPtr, Boolean> ThumbnailStateChanged;
event Action ForumUrlLinkActivated;
}
}

View File

@@ -0,0 +1,10 @@
using System;
namespace EveOPreview.UI
{
public interface IThumbnailDescriptionView : IView
{
IntPtr Id { get; set; }
string Title { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
using System;
namespace EveOPreview.UI
{
public interface IThumbnailDescriptionViewFactory
{
IThumbnailDescriptionView Create(IntPtr id, string title);
}
}

View File

@@ -0,0 +1,15 @@
namespace EveOPreview.UI
{
public enum ZoomAnchor
{
NW = 0,
N,
NE,
W,
C,
E,
SW,
S,
SE
}
}