GTK docking interfaces

By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.

Dismiss

Remember cookies

roundabout,
created on Friday, 2 May 2025, 18:05:11 (1746209111), received on Friday, 2 May 2025, 18:05:14 (1746209114)
Author identity: vlad <vlad.muntoiu@gmail.com>

21e5a134d08b8b6e1b33b3e5d0235b5780815d58

panthera-www.cc

@@ -17,6 +17,7 @@ protected:

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                std::shared_ptr<gPanthera::LayoutManager> layout_manager;
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                std::shared_ptr<gPanthera::ContentManager> content_manager;
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                Gtk::Entry *url_bar = nullptr;
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            std::string cookie_file = "cookies.txt";
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                static void notify_callback(GObject *object, GParamSpec *pspec, gpointer data) {
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    if(!gtk_widget_get_parent(GTK_WIDGET(object))) {
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -60,6 +61,9 @@ protected:

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    auto page = Gtk::make_managed<gPanthera::ContentPage>(content_manager, stack, page_content, page_tab);
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    g_signal_connect(webview, "notify", G_CALLBACK(notify_callback), page->gobj());
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    webkit_web_view_load_uri(webview, "about:blank");
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                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);
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    stack->add_page(*page);
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    stack->set_visible_child(*page);
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    content_manager->set_last_operated_page(page);
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -133,17 +137,7 @@ protected:

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    auto content_stack = Gtk::make_managed<gPanthera::ContentStack>(content_manager, detach_handler);
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    auto content_stack_switcher = Gtk::make_managed<gPanthera::ContentTabBar>(content_stack, Gtk::Orientation::HORIZONTAL, return_extra_child);
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    content_manager->add_stack(content_stack);
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                WebKitWebView *webview = WEBKIT_WEB_VIEW(webkit_web_view_new());
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                webkit_web_view_load_uri(webview, "https://www.example.com");
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                gtk_widget_set_hexpand(GTK_WIDGET(webview), true);
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                gtk_widget_set_vexpand(GTK_WIDGET(webview), true);
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                auto page_1_content = Gtk::make_managed<Gtk::Box>();
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                gtk_box_append(page_1_content->gobj(), GTK_WIDGET(webview));
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                auto page_1_tab = new Gtk::Label("Page 1");
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                auto page_1 = Gtk::make_managed<gPanthera::ContentPage>(content_manager, content_stack, page_1_content, page_1_tab);
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                auto page_2_content = Gtk::make_managed<Gtk::Label>("Page 2...");
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                auto page_2_tab = new Gtk::Label("Page 2");
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                auto page_2 = Gtk::make_managed<gPanthera::ContentPage>(content_manager, content_stack, page_2_content, page_2_tab);
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                WebKitWebView *webview = WEBKIT_WEB_VIEW(webkit_web_view_new());   // for some reason, this has to be created
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    content->set_name("content_box");
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    auto content_notebook = Gtk::make_managed<gPanthera::ContentNotebook>(content_stack, content_stack_switcher, Gtk::PositionType::TOP);
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    content->append(*content_notebook);