roundabout,
created on Saturday, 15 March 2025, 14:14:26 (1742048066),
received on Saturday, 15 March 2025, 14:14:29 (1742048069)
Author identity: vlad <vlad.muntoiu@gmail.com>
ecab397861e7db5c54b408c27481e0158e5a521e
gpanthera.cc
@@ -316,6 +316,7 @@ namespace gPanthera {
this->pane->pop_out(); return true; } this->set_opacity(1);return false; }, false); // Add a drop target to the button
@@ -579,7 +580,15 @@ namespace gPanthera {
}, false); this->add_controller(drop_target); // Pop out if dragged to an external location // TODO: Implement this, allow defining custom behavior at the content manager leveldrag_source->signal_drag_cancel().connect([this](const Glib::RefPtr<Gdk::Drag>&, Gdk::DragCancelReason reason) { if(reason == Gdk::DragCancelReason::NO_TARGET) { auto stack = dynamic_cast<ContentStack*>(this->page->get_stack()); this->set_opacity(1); return stack->signal_detach.emit(this->page); } this->set_opacity(1); return false; }, false);} void ContentTab::update_active_style() {
gpanthera.hh
@@ -149,6 +149,7 @@ namespace gPanthera {
class ContentStack : public BaseStack { private: public: sigc::signal<bool(ContentPage*)> signal_detach;std::shared_ptr<ContentManager> content_manager; explicit ContentStack(std::shared_ptr<ContentManager> content_manager); void add_page(ContentPage &child);
panthera-www.cc
@@ -65,6 +65,10 @@ protected:
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); content_stack->signal_detach.connect([](gPanthera::ContentPage *widget) { std::cout << "Detaching " << widget->get_name() << std::endl; return false; // Widget not actually detached });inner_paned->set_start_child(*content); inner_paned->set_end_child(*dock_stack_1); outer_paned->set_end_child(*inner_paned);