Simple WebkitGTK browser window test
parent
8edfe72f15
commit
fbd9ecedc7
File diff suppressed because it is too large
Load Diff
|
@ -4,3 +4,7 @@ version = "0.1.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
async-channel = "2.5.0"
|
||||||
|
gtk = { version = "0.18.2", features = ["v3_24_30"] }
|
||||||
|
tokio = { version = "1.47.0", default-features = false, features = ["net", "rt", "time"] }
|
||||||
|
webkit2gtk = { version = "2.0.1", features = ["v2_40"] }
|
||||||
|
|
36
src/main.rs
36
src/main.rs
|
@ -1,3 +1,37 @@
|
||||||
|
use gtk::prelude::*;
|
||||||
|
use gtk::{Window, WindowType};
|
||||||
|
use webkit2gtk::glib;
|
||||||
|
use webkit2gtk::{WebView, WebViewExt};
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
println!("Hello, world!");
|
gtk::init().unwrap();
|
||||||
|
|
||||||
|
let window = Window::new(WindowType::Toplevel);
|
||||||
|
window.connect_delete_event(|_, _| {
|
||||||
|
gtk::main_quit();
|
||||||
|
glib::Propagation::Proceed
|
||||||
|
});
|
||||||
|
|
||||||
|
let webview = WebView::new();
|
||||||
|
window.add(&webview);
|
||||||
|
|
||||||
|
window.show_all();
|
||||||
|
window.fullscreen();
|
||||||
|
|
||||||
|
let (sender, receiver) = async_channel::unbounded();
|
||||||
|
std::thread::spawn(move || {
|
||||||
|
tokio::runtime::Builder::new_current_thread()
|
||||||
|
.enable_all()
|
||||||
|
.build()
|
||||||
|
.unwrap()
|
||||||
|
.block_on(async {
|
||||||
|
sender.send("https://kitchen.pyrocufflink.blue/").await.unwrap();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
glib::spawn_future_local(async move {
|
||||||
|
let url = receiver.recv().await.unwrap();
|
||||||
|
webview.load_uri(url);
|
||||||
|
});
|
||||||
|
|
||||||
|
gtk::main();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue