use teksilo_app::TeksiloAppBuilder;
use teksilo_webview::{WebViewBackend, WebViewRegistry};
pub trait TeksiloAppBuilderWebViewExt {
fn install_web_view<B: WebViewBackend + 'static>(self, backend: B) -> Self;
fn install_web_view_default(self) -> Self;
}
impl TeksiloAppBuilderWebViewExt for TeksiloAppBuilder {
fn install_web_view<B: WebViewBackend + 'static>(self, backend: B) -> Self {
self.app_state(WebViewRegistry::new(backend))
}
fn install_web_view_default(self) -> Self {
#[cfg(feature = "web-view-servo")]
{
if teksilo_webview::is_wayland() {
self.app_state(WebViewRegistry::new(teksilo_webview::ServoBackend::new()))
} else {
self.app_state(WebViewRegistry::new(teksilo_webview::WryBackend::new()))
}
}
#[cfg(all(feature = "web-view", not(feature = "web-view-servo")))]
{
self.app_state(WebViewRegistry::new(teksilo_webview::WryBackend::new()))
}
#[cfg(all(feature = "web-view-headless", not(feature = "web-view")))]
{
self.app_state(WebViewRegistry::new(teksilo_webview::NoopWebViewBackend))
}
}
}