#[repr(C)]pub struct IconProviderHandle {
pub inner: Box<IconProviderInner>,
}Expand description
Icon provider stored in AppConfig.
This is a Box
Icons are stored in a nested map: pack_name → (icon_name → RefAny) This allows:
- Multiple packs with different sources (app-images, material-icons, etc.)
- Easy unregistration of entire packs
- First-match-wins lookup across all packs
Fields§
§inner: Box<IconProviderInner>Boxed inner data - Box
Implementations§
Source§impl IconProviderHandle
impl IconProviderHandle
Sourcepub fn new() -> IconProviderHandle
pub fn new() -> IconProviderHandle
Create a new empty icon provider with the default (no-op) resolver.
Note: The default resolver in core crate returns an empty StyledDom.
Use set_resolver() to set a proper resolver from the layout crate,
or use with_resolver() to create with a custom resolver.
Sourcepub fn with_resolver(
resolver: extern "C" fn(OptionRefAny, &StyledDom, &SystemStyle) -> StyledDom,
) -> IconProviderHandle
pub fn with_resolver( resolver: extern "C" fn(OptionRefAny, &StyledDom, &SystemStyle) -> StyledDom, ) -> IconProviderHandle
Create with a custom resolver callback
Convert this handle into an Arc<Mutex
This consumes the Box and creates an Arc. Called by App::run() to create the shared icon provider that gets cloned to each window.
Sourcepub fn set_resolver(
&mut self,
resolver: extern "C" fn(OptionRefAny, &StyledDom, &SystemStyle) -> StyledDom,
)
pub fn set_resolver( &mut self, resolver: extern "C" fn(OptionRefAny, &StyledDom, &SystemStyle) -> StyledDom, )
Set the resolver callback
Sourcepub fn register_icon(&mut self, pack_name: &str, icon_name: &str, data: RefAny)
pub fn register_icon(&mut self, pack_name: &str, icon_name: &str, data: RefAny)
Register a single icon in a pack (creates pack if needed)
Sourcepub fn unregister_icon(&mut self, pack_name: &str, icon_name: &str)
pub fn unregister_icon(&mut self, pack_name: &str, icon_name: &str)
Unregister a single icon from a pack
Sourcepub fn unregister_pack(&mut self, pack_name: &str)
pub fn unregister_pack(&mut self, pack_name: &str)
Unregister an entire icon pack
Sourcepub fn lookup(&self, icon_name: &str) -> Option<RefAny>
pub fn lookup(&self, icon_name: &str) -> Option<RefAny>
Look up an icon across all packs (first match wins)
Sourcepub fn list_packs(&self) -> Vec<String>
pub fn list_packs(&self) -> Vec<String>
List all pack names
Sourcepub fn list_icons_in_pack(&self, pack_name: &str) -> Vec<String>
pub fn list_icons_in_pack(&self, pack_name: &str) -> Vec<String>
List all icon names in a specific pack
Sourcepub fn debug_lookup(&self, icon_name: &str) -> AzString
pub fn debug_lookup(&self, icon_name: &str) -> AzString
Debug lookup: returns detailed info about an icon’s RefAny contents
Trait Implementations§
Source§impl Clone for IconProviderHandle
impl Clone for IconProviderHandle
Source§fn clone(&self) -> IconProviderHandle
fn clone(&self) -> IconProviderHandle
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IconProviderHandle
impl Debug for IconProviderHandle
Source§impl Default for IconProviderHandle
impl Default for IconProviderHandle
Source§fn default() -> IconProviderHandle
fn default() -> IconProviderHandle
Auto Trait Implementations§
impl Freeze for IconProviderHandle
impl RefUnwindSafe for IconProviderHandle
impl Send for IconProviderHandle
impl Sync for IconProviderHandle
impl Unpin for IconProviderHandle
impl UnwindSafe for IconProviderHandle
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more