using System; using System.ComponentModel; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Models.Calendar; using Wino.Core.Domain.Models.Reader; namespace Wino.Core.Domain.Interfaces; public interface IPreferencesService: INotifyPropertyChanged { /// /// When any of the preferences are changed. /// event EventHandler PreferenceChanged; #region Common /// /// Setting: Whether logs are enabled or not. /// bool IsLoggingEnabled { get; set; } /// /// Setting: Display language for the application. /// AppLanguage CurrentLanguage { get; set; } /// /// Setting: Whether the navigation pane is opened on the last session or not. /// bool IsNavigationPaneOpened { get; set; } /// /// Setting: Gets or sets what should happen to server app when the client is terminated. /// ServerBackgroundMode ServerTerminationBehavior { get; set; } /// /// Setting: Preferred time format for mail or calendar header display. /// bool Prefer24HourTimeFormat { get; set; } /// /// Diagnostic ID for the application. /// Changes per-install. /// string DiagnosticId { get; set; } /// /// Setting: Defines the user's preference of default search mode in mail list. /// Local search will still offer online search at the end of local search results. /// SearchMode DefaultSearchMode { get; set; } #endregion #region Mail /// /// 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: 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; } /// /// Setting: Set whether plaintext links should be automatically converted to clickable links. /// bool RenderPlaintextLinks { 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 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 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 next item should be automatically selected once the current item is moved or removed. /// bool AutoSelectNextItem { get; set; } /// /// Setting: Whether the mail list action bar is enabled or not. /// bool IsMailListActionBarEnabled { get; set; } /// /// Setting: Whether the mail rendering page will show the action labels /// bool IsShowActionLabelsEnabled { get; set; } /// /// Setting: Enable/disable Gravatar for sender avatars. /// bool IsGravatarEnabled { get; set; } /// /// Setting: Enable/disable Favicon for sender avatars. /// bool IsFaviconEnabled { get; set; } #endregion #region Calendar DayOfWeek FirstDayOfWeek { get; set; } TimeSpan WorkingHourStart { get; set; } TimeSpan WorkingHourEnd { get; set; } DayOfWeek WorkingDayStart { get; set; } DayOfWeek WorkingDayEnd { get; set; } double HourHeight { get; set; } CalendarSettings GetCurrentCalendarSettings(); #endregion }