mirror of
https://github.com/chylex/TweetDuck.git
synced 2024-11-23 08:42:47 +01:00
144 lines
6.0 KiB
C#
144 lines
6.0 KiB
C#
using System;
|
|
using System.Drawing;
|
|
using TweetDuck.Core.Controls;
|
|
using TweetDuck.Core.Notification;
|
|
using TweetDuck.Core.Other;
|
|
using TweetDuck.Core.Utils;
|
|
using TweetDuck.Data;
|
|
|
|
namespace TweetDuck.Configuration{
|
|
sealed class UserConfig : ConfigManager.BaseConfig{
|
|
|
|
// CONFIGURATION DATA
|
|
|
|
public bool FirstRun { get; set; } = true;
|
|
public bool AllowDataCollection { get; set; } = false;
|
|
|
|
public WindowState BrowserWindow { get; set; } = new WindowState();
|
|
public Size PluginsWindowSize { get; set; } = Size.Empty;
|
|
|
|
public bool ExpandLinksOnHover { get; set; } = true;
|
|
public bool OpenSearchInFirstColumn { get; set; } = true;
|
|
public bool KeepLikeFollowDialogsOpen { get; set; } = true;
|
|
public bool BestImageQuality { get; set; } = true;
|
|
public bool EnableAnimatedImages { get; set; } = true;
|
|
|
|
private bool _enableSmoothScrolling = true;
|
|
private bool _enableTouchAdjustment = false;
|
|
private string _customCefArgs = null;
|
|
|
|
public string BrowserPath { get; set; } = null;
|
|
public bool IgnoreTrackingUrlWarning { get; set; } = false;
|
|
public string SearchEngineUrl { get; set; } = null;
|
|
private int _zoomLevel = 100;
|
|
|
|
public int VideoPlayerVolume { get; set; } = 50;
|
|
|
|
public bool EnableSpellCheck { get; set; } = false;
|
|
private string _spellCheckLanguage = "en-US";
|
|
|
|
public string TranslationTarget { get; set; } = "en";
|
|
|
|
private TrayIcon.Behavior _trayBehavior = TrayIcon.Behavior.Disabled;
|
|
public bool EnableTrayHighlight { get; set; } = true;
|
|
|
|
public bool EnableUpdateCheck { get; set; } = true;
|
|
public string DismissedUpdate { get; set; } = null;
|
|
|
|
public bool DisplayNotificationColumn { get; set; } = false;
|
|
public bool NotificationMediaPreviews { get; set; } = true;
|
|
public bool NotificationSkipOnLinkClick { get; set; } = false;
|
|
public bool NotificationNonIntrusiveMode { get; set; } = true;
|
|
public int NotificationIdlePauseSeconds { get; set; } = 0;
|
|
|
|
public bool DisplayNotificationTimer { get; set; } = true;
|
|
public bool NotificationTimerCountDown { get; set; } = false;
|
|
public int NotificationDurationValue { get; set; } = 25;
|
|
|
|
public TweetNotification.Position NotificationPosition { get; set; } = TweetNotification.Position.TopRight;
|
|
public Point CustomNotificationPosition { get; set; } = ControlExtensions.InvisibleLocation;
|
|
public int NotificationDisplay { get; set; } = 0;
|
|
public int NotificationEdgeDistance { get; set; } = 8;
|
|
|
|
public TweetNotification.Size NotificationSize { get; set; } = TweetNotification.Size.Auto;
|
|
public Size CustomNotificationSize { get; set; } = Size.Empty;
|
|
public int NotificationScrollSpeed { get; set; } = 100;
|
|
|
|
private string _notificationSoundPath;
|
|
private int _notificationSoundVolume = 100;
|
|
|
|
private bool _muteNotifications;
|
|
|
|
public string CustomBrowserCSS { get; set; } = null;
|
|
public string CustomNotificationCSS { get; set; } = null;
|
|
|
|
// SPECIAL PROPERTIES
|
|
|
|
public bool IsCustomNotificationPositionSet => CustomNotificationPosition != ControlExtensions.InvisibleLocation;
|
|
public bool IsCustomNotificationSizeSet => CustomNotificationSize != Size.Empty;
|
|
public bool IsCustomSoundNotificationSet => NotificationSoundPath != string.Empty;
|
|
|
|
public TwitterUtils.ImageQuality TwitterImageQuality => BestImageQuality ? TwitterUtils.ImageQuality.Orig : TwitterUtils.ImageQuality.Default;
|
|
|
|
public string NotificationSoundPath{
|
|
get => _notificationSoundPath ?? string.Empty;
|
|
set => UpdatePropertyWithEvent(ref _notificationSoundPath, value, SoundNotificationChanged);
|
|
}
|
|
|
|
public int NotificationSoundVolume{
|
|
get => _notificationSoundVolume;
|
|
set => UpdatePropertyWithEvent(ref _notificationSoundVolume, value, SoundNotificationChanged);
|
|
}
|
|
|
|
public bool MuteNotifications{
|
|
get => _muteNotifications;
|
|
set => UpdatePropertyWithEvent(ref _muteNotifications, value, MuteToggled);
|
|
}
|
|
|
|
public int ZoomLevel{
|
|
get => _zoomLevel;
|
|
set => UpdatePropertyWithEvent(ref _zoomLevel, value, ZoomLevelChanged);
|
|
}
|
|
|
|
public TrayIcon.Behavior TrayBehavior{
|
|
get => _trayBehavior;
|
|
set => UpdatePropertyWithEvent(ref _trayBehavior, value, TrayBehaviorChanged);
|
|
}
|
|
|
|
public bool EnableSmoothScrolling{
|
|
get => _enableSmoothScrolling;
|
|
set => UpdatePropertyWithRestartRequest(ref _enableSmoothScrolling, value);
|
|
}
|
|
|
|
public bool EnableTouchAdjustment{
|
|
get => _enableTouchAdjustment;
|
|
set => UpdatePropertyWithRestartRequest(ref _enableTouchAdjustment, value);
|
|
}
|
|
|
|
public string CustomCefArgs{
|
|
get => _customCefArgs;
|
|
set => UpdatePropertyWithRestartRequest(ref _customCefArgs, value);
|
|
}
|
|
|
|
public string SpellCheckLanguage{
|
|
get => _spellCheckLanguage;
|
|
set => UpdatePropertyWithRestartRequest(ref _spellCheckLanguage, value);
|
|
}
|
|
|
|
// EVENTS
|
|
|
|
public event EventHandler MuteToggled;
|
|
public event EventHandler ZoomLevelChanged;
|
|
public event EventHandler TrayBehaviorChanged;
|
|
public event EventHandler SoundNotificationChanged;
|
|
|
|
// END OF CONFIG
|
|
|
|
public UserConfig(ConfigManager configManager) : base(configManager){}
|
|
|
|
protected override ConfigManager.BaseConfig ConstructWithDefaults(ConfigManager configManager){
|
|
return new UserConfig(configManager);
|
|
}
|
|
}
|
|
}
|