roundabout,
created on Tuesday, 25 February 2025, 16:09:30 (1740499770),
received on Tuesday, 25 February 2025, 16:09:33 (1740499773)
Author identity: vlad <vlad.muntoiu@gmail.com>
0b3a663aec8488eb8fa7fb8f47daac94acb23a29
gpanthera.cc
@@ -133,16 +133,22 @@ namespace gPanthera {
} DockStackSwitcher::DockStackSwitcher(DockStack *stack) : Gtk::ButtonBox(Gtk::ORIENTATION_HORIZONTAL), stack(stack) { this->stack->signal_add().connect([this](Gtk::Widget *child) {add_handler = this->stack->signal_add().connect([this](Gtk::Widget *child) {this->update_buttons(); }); this->stack->signal_remove().connect([this](Gtk::Widget *child) {remove_handler = this->stack->signal_remove().connect([this](Gtk::Widget *child) {this->update_buttons(); }); } DockStackSwitcher::~DockStackSwitcher() { add_handler.disconnect(); remove_handler.disconnect(); } void DockStackSwitcher::update_buttons() { for(auto &child: get_children()) {auto children = get_children(); for(auto &child: children) {if(child) { remove(*child); }
gpanthera.hh
@@ -65,9 +65,11 @@ namespace gPanthera {
class DockStackSwitcher : public Gtk::ButtonBox { private: DockStack *stack; sigc::connection add_handler, remove_handler;public: void update_buttons(); explicit DockStackSwitcher(DockStack *stack); ~DockStackSwitcher() override;}; } // namespace gPanthera
panthera-www.cc
@@ -10,6 +10,10 @@ int main(int argc, char *argv[]) {
Gtk::Window window; window.set_default_size(600, 400); window.signal_delete_event().connect([&app](GdkEventAny *event) { app->quit(); return false; });auto layout_manager = std::make_shared<gPanthera::LayoutManager>(); auto dock_stack_1 = Gtk::make_managed<gPanthera::DockStack>(layout_manager, "One");