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