Files
Wino-Mail/Wino.Core.Domain/Interfaces/INewThemeService.cs
T
Burak Kaan Köse db5ecd60e4 New startup window.
2026-03-05 10:12:03 +01:00

47 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Personalization;
namespace Wino.Core.Domain.Interfaces;
public interface INewThemeService : IInitializeAsync
{
event EventHandler<ApplicationElementTheme> ElementThemeChanged;
event EventHandler<string> AccentColorChanged;
event EventHandler<WindowBackdropType> BackdropChanged;
Task<List<AppThemeBase>> GetAvailableThemesAsync();
Task<CustomThemeMetadata> CreateNewCustomThemeAsync(string themeName, string accentColor, byte[] wallpaperData);
Task<List<CustomThemeMetadata>> GetCurrentCustomThemesAsync();
List<string> GetAvailableAccountColors();
Task ApplyCustomThemeAsync(bool isInitializing);
// Window Backdrop Management
WindowBackdropType CurrentBackdropType { get; set; }
void ApplyBackdrop(WindowBackdropType backdropType);
// Settings
ApplicationElementTheme RootTheme { get; set; }
Guid? CurrentApplicationThemeId { get; set; }
string AccentColor { get; set; }
string GetSystemAccentColorHex();
bool IsCustomTheme { get; }
// Improved accent color management
Task SetAccentColorAsync(string hexColor, bool preserveTheme = true);
// Title bar color management
void UpdateSystemCaptionButtonColors();
// Backdrop management
List<BackdropTypeWrapper> GetAvailableBackdropTypes();
/// <summary>
/// Re-applies the current theme (backdrop, root theme, accent, caption colors)
/// to the currently active window. Use after a window transition.
/// </summary>
Task ApplyThemeToActiveWindowAsync();
}