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);