✨ Añade soporte a temas en la API de extensiones
- Incluye una opción de configuración para definir el tema por defecto. - Añade un tema básico predeterminado.
This commit is contained in:
parent
f4e142a242
commit
86e4c4f110
13 changed files with 148 additions and 5 deletions
|
@ -1,3 +1,4 @@
|
|||
use crate::core::theme::ThemeRef;
|
||||
use crate::core::AnyInfo;
|
||||
use crate::locale::L10n;
|
||||
use crate::service;
|
||||
|
@ -36,6 +37,31 @@ pub trait ExtensionTrait: AnyInfo + Send + Sync {
|
|||
L10n::default()
|
||||
}
|
||||
|
||||
/// Los temas son extensiones que implementan [`ExtensionTrait`] y también
|
||||
/// [`ThemeTrait`](crate::core::theme::ThemeTrait).
|
||||
///
|
||||
/// Si la extensión no es un tema, este método devuelve `None` por defecto.
|
||||
///
|
||||
/// En caso contrario, este método debe implementarse para devolver una referencia de sí mismo
|
||||
/// como tema. Por ejemplo:
|
||||
///
|
||||
/// ```rust
|
||||
/// use pagetop::prelude::*;
|
||||
///
|
||||
/// pub struct MyTheme;
|
||||
///
|
||||
/// impl ExtensionTrait for MyTheme {
|
||||
/// fn theme(&self) -> Option<ThemeRef> {
|
||||
/// Some(&Self)
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// impl ThemeTrait for MyTheme {}
|
||||
/// ```
|
||||
fn theme(&self) -> Option<ThemeRef> {
|
||||
None
|
||||
}
|
||||
|
||||
/// Otras extensiones que deben habilitarse **antes** de esta.
|
||||
///
|
||||
/// `PageTop` las resolverá automáticamente respetando el orden durante el arranque de la
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue