47 lines
1.6 KiB
C#
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();
|
|
}
|