summaryrefslogtreecommitdiff
path: root/src/settings_window.rs
diff options
context:
space:
mode:
authorNamilskyy <alive6863@gmail.com>2025-12-04 16:47:12 +0300
committerNamilskyy <alive6863@gmail.com>2025-12-04 16:47:12 +0300
commitb5cd950218d6deadd46bd3d1529a3cabeac2220f (patch)
tree1a6381e1dada971c7634d993cc8db1abc41ced0d /src/settings_window.rs
parentd70de444665cb79bc36f9acc807aef5d9706dac1 (diff)
Fixes in main window, started settings window. Added CI workflow.
Diffstat (limited to 'src/settings_window.rs')
-rw-r--r--src/settings_window.rs61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/settings_window.rs b/src/settings_window.rs
new file mode 100644
index 0000000..fbab489
--- /dev/null
+++ b/src/settings_window.rs
@@ -0,0 +1,61 @@
+
+use gtk4::prelude::*;
+use gtk4::{
+ ApplicationWindow,
+ Box,
+ Entry,
+ Label,
+ Orientation,
+ HeaderBar,
+ CheckButton
+};
+use toml;
+use serde::Serialize;
+
+#[allow(dead_code)]
+#[derive(Debug, Serialize)]
+struct Settings {
+ js: bool,
+ outproxy: bool,
+ i2p_proxy: bool,
+ web_rtc: bool,
+ home_addr: str,
+
+}
+
+#[allow(dead_code, unused_variables)]
+pub fn window() -> ApplicationWindow {
+ let app = ApplicationWindow::builder()
+ .title("Settings")
+ .default_width(400)
+ .default_height(300)
+ .build();
+
+ let header_bar = HeaderBar::new();
+ window().set_titlebar(Some(&header_bar));
+
+ let main_box = Box::new(Orientation::Vertical, 0);
+ window().set_child(Some(&main_box));
+
+ Label::new(Some("Settings")).set_markup("Settings");
+
+ let javascript = CheckButton::new().set_label(Some("Enable JS"));
+ let outproxy = CheckButton::new().set_label(Some("Enable outproxy"));
+ let i2pproxy = CheckButton::new().set_label(Some("Enable i2p proxy"));
+ let webrtc = CheckButton::new().set_label(Some("Enable WebRTC"));
+ let homeaddr = Entry::new();
+
+ app
+}
+
+#[allow(dead_code)]
+impl Settings {
+ pub fn serialize_write(path: &std::path::Path,
+ setts: &Settings) -> Result<(), toml::ser::Error> {
+
+ let toml: String = toml::to_string(setts)?;
+ std::fs::write(path, toml).expect("Some error occured, is permission granted to ~/.config?");
+
+ Ok(())
+ }
+} \ No newline at end of file