roundabout,
created on Friday, 2 May 2025, 20:07:39 (1746216459),
received on Friday, 2 May 2025, 20:07:41 (1746216461)
Author identity: vlad <vlad.muntoiu@gmail.com>
3add94caf2695c1d777594623d0a6735a18f9905
panthera-www.cc
@@ -11,6 +11,10 @@
#include <webkit/webkit.h>
#include <fstream>
class WebPage : public Gtk::Box {
};
class PantheraWww : public Gtk::Application {
Gtk::Window *window = Gtk::make_managed<Gtk::Window>();
protected:
@@ -46,6 +50,16 @@ protected:
}
}
static void on_back_pressed(GtkGestureClick *gesture, int n_press, double x, double y, gpointer user_data) {
WebKitWebView *webview = WEBKIT_WEB_VIEW(user_data);
webkit_web_view_go_back(webview);
}
static void on_forward_pressed(GtkGestureClick *gesture, int n_press, double x, double y, gpointer user_data) {
WebKitWebView *webview = WEBKIT_WEB_VIEW(user_data);
webkit_web_view_go_forward(webview);
}
void on_new_tab(gPanthera::ContentStack *stack) {
if(!stack) {
// Find the current area
@@ -64,6 +78,16 @@ protected:
auto cookie_manager = webkit_network_session_get_cookie_manager(webkit_web_view_get_network_session(webview));
webkit_cookie_manager_set_persistent_storage(cookie_manager, cookie_file.c_str(), WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT);
webkit_cookie_manager_set_accept_policy(cookie_manager, WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS);
GtkEventController *click_controller_back = GTK_EVENT_CONTROLLER(gtk_gesture_click_new());
gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(click_controller_back), 8);
g_signal_connect(click_controller_back, "pressed", G_CALLBACK(on_back_pressed), webview);
gtk_widget_add_controller(GTK_WIDGET(webview), click_controller_back);
GtkEventController *click_controller_forward = GTK_EVENT_CONTROLLER(gtk_gesture_click_new());
gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(click_controller_forward), 9);
g_signal_connect(click_controller_forward, "pressed", G_CALLBACK(on_forward_pressed), webview);
gtk_widget_add_controller(GTK_WIDGET(webview), click_controller_forward);
stack->add_page(*page);
stack->set_visible_child(*page);
content_manager->set_last_operated_page(page);