roundabout,
created on Friday, 14 March 2025, 18:34:11 (1741977251),
received on Friday, 14 March 2025, 18:34:14 (1741977254)
Author identity: vlad <vlad.muntoiu@gmail.com>
8320631e719e88c7a8664ed5550653b221ecbd63
gpanthera.cc
@@ -478,13 +478,14 @@ namespace gPanthera {
} ContentTab* first_child = nullptr; for(auto *widget = stack->get_first_child(); widget; widget = widget->get_next_sibling()) { if(auto pane = dynamic_cast<ContentPage*>(widget)) {auto *button = Gtk::make_managed<ContentTab>(pane);if(auto page = dynamic_cast<ContentPage*>(widget)) { auto *button = Gtk::make_managed<ContentTab>(page);if(!first_child) { first_child = button; } else { button->set_group(*first_child); } this->append(*button);} } }
@@ -501,7 +502,7 @@ namespace gPanthera {
this->get_style_context()->add_class("toggle"); this->get_style_context()->add_class("gpanthera-content-tab"); // Add/remove CSS classes when the pane is shown/hidden active_style_handler = this->page->get_stack()->property_visible_child_name().signal_changed().connect([this]() {active_style_handler = this->page->get_stack()->property_visible_child().signal_changed().connect([this]() {this->update_active_style(); }); drag_source = Gtk::DragSource::create();
@@ -514,6 +515,7 @@ namespace gPanthera {
this->add_controller(drag_source); this->signal_clicked().connect([this, page]() { page->get_stack()->set_visible_child(*page); update_active_style();}); // Provide the drag data drag_source->signal_prepare().connect([this](double, double) {
@@ -523,6 +525,7 @@ namespace gPanthera {
drag_source->set_icon(paintable, 0, 0); return Gdk::ContentProvider::create(value); }, false); update_active_style();// Pop out if dragged to an external location // TODO: Implement this, allow defining custom behavior at the content manager level }
panthera-www.cc
@@ -53,15 +53,15 @@ protected:
outer_paned->set_start_child(*dock_stack_2); auto inner_paned = Gtk::make_managed<Gtk::Paned>(Gtk::Orientation::VERTICAL); auto content = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL, 0); // auto content_manager = std::make_shared<gPanthera::ContentManager>();// auto content_stack = Gtk::make_managed<gPanthera::ContentStack>(content_manager);// auto content_stack_switcher = Gtk::make_managed<gPanthera::ContentTabBar>(content_stack, Gtk::Orientation::HORIZONTAL);// content->append(*content_stack_switcher);// content->append(*content_stack);// auto page_1_content = Gtk::make_managed<Gtk::Label>("Page 1...");// auto page_1_tab = Gtk::make_managed<Gtk::Label>("Page 1");// auto page_1 = Gtk::make_managed<gPanthera::ContentPage>(content_manager, content_stack, page_1_content, page_1_tab);// content_stack->add_page(*page_1);auto content_manager = std::make_shared<gPanthera::ContentManager>(); auto content_stack = Gtk::make_managed<gPanthera::ContentStack>(content_manager); auto content_stack_switcher = Gtk::make_managed<gPanthera::ContentTabBar>(content_stack, Gtk::Orientation::HORIZONTAL); content->append(*content_stack_switcher); content->append(*content_stack); auto page_1_content = Gtk::make_managed<Gtk::Label>("Page 1..."); auto page_1_tab = Gtk::make_managed<Gtk::Label>("Page 1"); auto page_1 = Gtk::make_managed<gPanthera::ContentPage>(content_manager, content_stack, page_1_content, page_1_tab); content_stack->add_page(*page_1);inner_paned->set_start_child(*content); inner_paned->set_end_child(*dock_stack_1); outer_paned->set_end_child(*inner_paned);