diff --git a/.gitignore b/.gitignore
index 804b94f..e8e1793 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,4 @@
-*.o
texit
-text_editor
-.cache
-build/*
+.cache/
+build/
compile_commands.json
\ No newline at end of file
diff --git a/.gresource.xml b/.gresource.xml
index ccac096..340706f 100644
--- a/.gresource.xml
+++ b/.gresource.xml
@@ -4,5 +4,6 @@
main-window.ui
share-dialog.ui
style.css
+ settings.ui
-
\ No newline at end of file
+
diff --git a/include/settings.h b/include/settings.h
new file mode 100644
index 0000000..51d63a3
--- /dev/null
+++ b/include/settings.h
@@ -0,0 +1,9 @@
+#ifndef __SETTINGS_H_
+#define __SETTINGS_H_
+
+#include
+#include
+
+void settings_click(GtkButton* setting_btn, GtkWindow* window);
+
+#endif // __SETTINGS_H_
\ No newline at end of file
diff --git a/res/main-window.blp b/res/main-window.blp
index fc217df..a30c82c 100644
--- a/res/main-window.blp
+++ b/res/main-window.blp
@@ -28,7 +28,14 @@ Adw.ApplicationWindow main-window {
}
[end]
// label set in program
- ToggleButton share-toggle { label: "❌ Share";}
+ ToggleButton share-toggle {
+ label: "❌ Share";
+ }
+ [end]
+ Button settings-btn {
+ Image { icon-name: "emblem-system-symbolic"; }
+ tooltip-text: "Settings";
+ }
}
Gtk.Label label{
diff --git a/res/settings.blp b/res/settings.blp
new file mode 100644
index 0000000..2d58de2
--- /dev/null
+++ b/res/settings.blp
@@ -0,0 +1,59 @@
+using Gtk 4.0;
+using Gio 2.0;
+using Adw 1;
+
+
+Adw.PreferencesWindow setting-dialog {
+ default-width: 200;
+ default-height: 400;
+
+ Adw.PreferencesPage font-page {
+ title: "Font";
+ Adw.PreferencesGroup {
+ title: "Font Customization";
+ description: "These are all the font customizability options that TeXiT currently supports.";
+ Adw.ActionRow {
+ title: "Font Family and Size";
+ Gtk.FontDialogButton font-dialog {}
+ }
+ Separator { styles ["spacer"] }
+ Adw.ComboRow font-style-row {
+ title: "Font Style";
+ subtitle: "Choose whether to display the text editor in bold, italic, bold italic, or none.";
+ model: Gtk.StringList {
+ strings [
+ "None",
+ "Bold",
+ "Italic",
+ "Bold Italic"
+ ]
+ };
+ }
+ Separator { styles ["spacer"] }
+ Adw.ActionRow {
+ title: "Ligature";
+ subtitle: "Merge symbols (e.g. <=, >=)";
+ use-markup: false;
+ Gtk.Switch ligatures-switch {
+ vexpand: false;
+ valign: center;
+ }
+ }
+ }
+ }
+ Adw.PreferencesPage page-2 {
+ Adw.PreferencesGroup {
+
+ }
+ }
+ Adw.PreferencesPage page-3 {
+ Adw.PreferencesGroup {
+
+ }
+ }
+ Adw.PreferencesPage page-4 {
+ Adw.PreferencesGroup {
+
+ }
+ }
+}
diff --git a/src/gui.c b/src/gui.c
index 811338f..5bfa7cb 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -3,6 +3,7 @@
#include "tab-page.h"
#include "server.h"
#include "client.h"
+#include "settings.h"
#include
#include
@@ -209,6 +210,9 @@ void main_window(AdwApplication *app) {
gtk_button_set_label(GTK_BUTTON(share_toggle), TOGGLE_LABEL_OFF);
g_signal_connect(share_toggle, "clicked", G_CALLBACK(share_toggle_click), share_click_params);
+ GtkButton* settings_btn = GTK_BUTTON(gtk_builder_get_object(builder, "settings-btn"));
+ g_signal_connect(settings_btn, "clicked", G_CALLBACK(settings_click), window);
+
gtk_window_present(GTK_WINDOW(window));
}
diff --git a/src/settings.c b/src/settings.c
new file mode 100644
index 0000000..03e3b10
--- /dev/null
+++ b/src/settings.c
@@ -0,0 +1,9 @@
+#include "settings.h"
+
+void settings_click(GtkButton* settings_btn, GtkWindow* window){
+ GtkBuilder* settings_builder = gtk_builder_new_from_resource("/me/Asder8215/TeXiT/settings.ui");
+ AdwPreferencesWindow* prefs_window = ADW_PREFERENCES_WINDOW(gtk_builder_get_object(settings_builder, "setting-dialog"));
+ gtk_window_set_transient_for(GTK_WINDOW(prefs_window), window);
+ gtk_window_present(GTK_WINDOW(prefs_window));
+}
+