roundabout,
created on Sunday, 11 May 2025, 13:42:05 (1746970925),
received on Sunday, 11 May 2025, 13:42:34 (1746970954)
Author identity: vlad <vlad.muntoiu@gmail.com>
2a11abc726eb6cc5879ef10dd1dec34c79e40b73
gpanthera.cc
@@ -66,7 +66,7 @@ namespace gPanthera {
void init() {
g_log_set_always_fatal(G_LOG_LEVEL_CRITICAL);
// Set up gettext configurationIsn't
// Set up gettext configuration
bindtextdomain("gpanthera", "./locales");
}
@@ -571,17 +571,22 @@ namespace gPanthera {
this->set_orientation(Gtk::Orientation::VERTICAL);
if(tab_position == Gtk::PositionType::TOP) {
this->prepend(*switcher);
switcher->add_css_class("top");
} else if(tab_position == Gtk::PositionType::BOTTOM) {
this->append(*switcher);
switcher->add_css_class("bottom");
}
} else if(tab_position == Gtk::PositionType::LEFT || tab_position == Gtk::PositionType::RIGHT) {
this->set_orientation(Gtk::Orientation::HORIZONTAL);
if(tab_position == Gtk::PositionType::LEFT) {
this->prepend(*switcher);
switcher->add_css_class("left");
} else if(tab_position == Gtk::PositionType::RIGHT) {
this->append(*switcher);
switcher->add_css_class("right");
}
}
this->add_css_class("gpanthera-content-notebook");
}
void ContentStack::make_paned(Gtk::Orientation orientation, Gtk::PackType pack_type) {
@@ -645,8 +650,11 @@ namespace gPanthera {
}, false);
scrolled_window = Gtk::make_managed<Gtk::ScrolledWindow>();
scrolled_window->add_css_class("gpanthera-content-tab-bar-scroll");
auto viewport = Gtk::make_managed<Gtk::Viewport>(nullptr, nullptr);
viewport->add_css_class("gpanthera-content-tab-bar-viewport");
tab_box = Gtk::make_managed<Gtk::Box>(orientation);
tab_box->add_css_class("gpanthera-content-tab-box");
this->prepend(*scrolled_window);
scrolled_window->set_child(*viewport);
viewport->set_child(*tab_box);
@@ -901,13 +909,13 @@ namespace gPanthera {
this->insert_action_group("win", action_group);
// Attach the context menu to the button
auto context_menu_signal = add_context_menu(*this);
popover = Gtk::make_managed<Gtk::PopoverMenu>();
popover->set_menu_model(context_menu);
popover->set_parent(*this);
popover->set_has_arrow(false);
popover->set_halign(Gtk::Align::START);
context_menu_signal.connect([this, action_group](double x, double y) {
if(this->context_menu) {
auto popover = Gtk::make_managed<Gtk::PopoverMenu>();
popover->set_menu_model(context_menu);
popover->set_parent(*this);
popover->set_has_arrow(false);
popover->set_halign(Gtk::Align::START);
popover->set_pointing_to(Gdk::Rectangle(x, y, 1, 1));
popover->popup();
}
gpanthera.hh
@@ -160,6 +160,7 @@ namespace gPanthera {
void update_active_style();
sigc::connection active_style_handler;
sigc::connection control_status_handler;
Gtk::PopoverMenu *popover = nullptr;
public:
void close();
explicit ContentTab(ContentPage *page);
panthera-www.cc
@@ -106,7 +106,9 @@ protected:
auto debug_button = Gtk::make_managed<Gtk::Button>("Debug");
pane_1_content->append(*debug_button);
auto pane_2_content = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL, 0);
pane_2_content->append(*Gtk::make_managed<Gtk::Label>("Pane 2 content"));
auto test_notebook = Gtk::make_managed<Gtk::Notebook>();
test_notebook->append_page(*Gtk::make_managed<Gtk::Label>("Test 1"), *Gtk::make_managed<Gtk::Label>("Test 1"));
pane_2_content->append(*test_notebook);
auto pane_3_content = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL, 0);
pane_3_content->append(*Gtk::make_managed<Gtk::Label>("Pane 3 content"));
auto pane_1_icon = Gtk::make_managed<Gtk::Image>();