using System; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Models.Reader; namespace Wino.Core.Domain.Interfaces { public interface IPreferencesService { /// /// When any of the preferences are changed. /// event EventHandler PreferenceChanged; /// /// Setting: For changing the mail display container mode. /// MailListDisplayMode MailItemDisplayMode { get; set; } /// /// Setting: Marking the item as read preference mode. /// MailMarkAsOption MarkAsPreference { get; set; } /// /// Setting: Preferred time format for mail display. /// bool Prefer24HourTimeFormat { get; set; } /// /// Setting: How many seconds should be waited on rendering page to mark item as read. /// int MarkAsDelay { get; set; } /// /// Setting: Ask comfirmation from the user during permanent delete. /// bool IsHardDeleteProtectionEnabled { get; set; } /// /// Setting: Thread mails into conversations. /// bool IsThreadingEnabled { get; set; } /// /// Setting: Show sender pictures in mail list. /// bool IsShowSenderPicturesEnabled { get; set; } /// /// Setting: Show preview text in mail list. /// bool IsShowPreviewEnabled { get; set; } /// /// Setting: Enable/disable semantic zoom on clicking date headers. /// bool IsSemanticZoomEnabled { get; set; } /// /// Setting: Set whether 'img' tags in rendered HTMLs should be removed. /// bool RenderImages { get; set; } /// /// Setting: Set whether 'style' tags in rendered HTMls should be removed. /// bool RenderStyles { get; set; } /// /// Gets the preferred rendering options for HTML rendering. /// MailRenderingOptions GetRenderingOptions(); /// /// Setting: Swipe mail operation when mails are swiped to right. /// MailOperation RightSwipeOperation { get; set; } /// /// Setting: Swipe mail operation when mails are swiped to left. /// MailOperation LeftSwipeOperation { get; set; } /// /// Setting: Whether hover actions on mail pointer hover is enabled or not. /// bool IsHoverActionsEnabled { get; set; } /// /// Setting: Hover action on the left when the mail is hovered over. /// MailOperation LeftHoverAction { get; set; } /// /// Setting: Hover action on the center when the mail is hovered over. /// MailOperation CenterHoverAction { get; set; } /// /// Setting: Hover action on the right when the mail is hovered over. /// MailOperation RightHoverAction { get; set; } /// /// Setting: Whether logs are enabled or not. /// bool IsLoggingEnabled { get; set; } /// /// Setting: Whether Mailkit Protocol Logger is enabled for ImapTestService or not. /// bool IsMailkitProtocolLoggerEnabled { get; set; } /// /// Setting: Which entity id (merged account or folder) should be expanded automatically on startup. /// Guid? StartupEntityId { get; set; } /// /// Setting: Display language for the application. /// AppLanguage CurrentLanguage { get; set; } /// /// Setting: Display font for the mail reader. /// string ReaderFont { get; set; } /// /// Setting: Font size for the mail reader. /// int ReaderFontSize { get; set; } /// /// Setting: Display font for the mail composer. /// string ComposerFont { get; set; } /// /// Setting: Font size for the mail composer. /// int ComposerFontSize { get; set; } /// /// Setting: Whether the navigation pane is opened on the last session or not. /// bool IsNavigationPaneOpened { get; set; } /// /// Setting: Whether the next item should be automatically selected once the current item is moved or removed. /// bool AutoSelectNextItem { get; set; } /// /// Setting: Gets or sets what should happen to server app when the client is terminated. /// ServerBackgroundMode ServerTerminationBehavior { get; set; } /// /// Setting: Whether the mail list action bar is enabled or not. /// bool IsMailListActionBarEnabled { get; set; } } }