Skip to content

Commit 9b7db45

Browse files
committed
allow homepage to be custom html
1 parent 4a9c74a commit 9b7db45

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

src/engines/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ pub trait BrowserEngine {
3333
fn get_cursor(&self) -> Interaction;
3434
// fn get_icon(&self) -> Image<Handle>;
3535
fn goto_url(&self, url: &Url);
36+
fn goto_html(&self, html: String);
3637
fn has_loaded(&self) -> bool;
3738
fn new_tab(&mut self, url: Url, size: Size<u32>) -> Tab<Self::Info>;
3839
fn get_tabs(&self) -> &Tabs<Self::Info>;

src/engines/ultralight.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,10 @@ impl BrowserEngine for Ultralight {
144144
*self.tabs.get_current().info.cursor.read().unwrap()
145145
}
146146

147+
fn goto_html(&self, html: String) {
148+
self.tabs.get_current().info.view.load_html(&html).unwrap();
149+
}
150+
147151
fn goto_url(&self, url: &Url) {
148152
self.tabs
149153
.get_current()

src/widgets/mod.rs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,13 @@ impl Default for TabSelectionType {
110110
}
111111
}
112112

113+
/// Allows the user to write a custom homepage
114+
pub enum HomepageType {
115+
Url(String),
116+
/// This is rendered with html
117+
Custom(String),
118+
}
119+
113120
pub struct IcyBrowser<Engine: BrowserEngine> {
114121
engine: Engine,
115122
home: Url,
@@ -150,8 +157,14 @@ impl<Engine: BrowserEngine> IcyBrowser<Engine> {
150157
Self::default()
151158
}
152159

153-
pub fn with_homepage(mut self, homepage: &str) -> Self {
154-
self.home = Url::parse(homepage).expect("Failed to parse homepage as a url!");
160+
pub fn with_homepage(mut self, homepage: HomepageType) -> Self {
161+
match homepage {
162+
HomepageType::Url(url) => {
163+
self.home = Url::parse(&url).expect("Failed to parse homepage as a url!");
164+
}
165+
HomepageType::Custom(_) => todo!(),
166+
}
167+
155168
self
156169
}
157170

0 commit comments

Comments
 (0)