#include #include #include #include static void cookie_changed_cb(WebKitCookieManager *cookie_manager, GParamSpec *pspec, gpointer user_data) { // Handle cookie changes here g_print("Cookie changed\n"); } int main(int argc, char *argv[]) { gtk_init(&argc, &argv); // Create a new window GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Burgernotes"); gtk_window_set_default_size(GTK_WINDOW(window), 1000, 600); g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); // Create a web view widget WebKitWebView *webview = WEBKIT_WEB_VIEW(webkit_web_view_new()); // Get the path of the executable char exe_path[1024]; ssize_t len = readlink("/proc/self/exe", exe_path, sizeof(exe_path)-1); if (len == -1) { perror("readlink"); return EXIT_FAILURE; } exe_path[len] = '\0'; // Get the directory containing the executable char *exe_dir = dirname(exe_path); // Construct the path to the website directory char website_path[1024]; snprintf(website_path, sizeof(website_path), "file:/\/%s/website/app/index.html", exe_dir); // Load the URI webkit_web_view_load_uri(webview, website_path); // Add the web view to the window gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(webview)); // Show all widgets gtk_widget_show_all(window); // Connect signals for handling cookies WebKitCookieManager *cookie_manager = webkit_web_context_get_cookie_manager(webkit_web_view_get_context(webview)); g_signal_connect(cookie_manager, "notify::cookie-accept-policy", G_CALLBACK(cookie_changed_cb), NULL); // Run the main GTK event loop gtk_main(); return 0; }