Re: Please help (core dump)
aitor <[email protected]> Tue, 28 Jul 2020 16:05:34 +0200
| Newsgroups | gmane.comp.gnome.gtkmm |
|---|---|
| Message-ID | <[email protected]> |
Hi, On 27/7/20 14:00, Carlo Wood <[email protected]> wrote: > Hi aitor, > > thank you so much for your examples! > I will definitely study them in depth as soon as I get > my current problem resolved of how to add a 'Mode' to > my menu having a separate Gtk::Builder (aka, how to > combine multiple Gtk::Builder objects into a single > menu). Or, alternatively, I could have just a single > Gtk::Builder object, but then I still need to be > able to somehow add a Gio::SimpleActionGroup to my > menu. > > It seems that your approach is entirely different: > you have a MenuBar class that deals with everything > related to the menu. From an object oriented point > of view that makes a lot of sense. You're not using > Gtk::Builder at all, but - instead of using an xml > string - hardcode the menu into the constructor of > myMenuBar. Yes, Gtk::Builder is cool, but the other point of view simplifies dynamic changes because you can define an iterator which can be used for the addition/removal of the items in the menu. > For some reason you're passing `*this` to every > sigc::mem_fun - aka*all* `on_menu_*` menu callbacks > are member functions of myMenuBar. I'd prefer it > if I could use callbacks that are member functions > of several different objects (namely those that > they operate on). I suppose I can do that by passing > a pointer to all those objects to the constructor > of myMenuBar. Currently you pass only a WindowMain*, > for the on_menu_mode_quit method. > > Why are you using the construct of passing this WindowMain* > as an argument to myMenuBar::on_menu_mode_quit? > Wouldn't it be possible, and make more sense, to do: > > m_QuitItem->signal_activate().connect ( > sigc::mem_fun(*caller, &WindowMain::on_menu_mode_quit) > ); > > ? The sort answer: Yes, you are write! It makes more sense in the other way around, so i left the callbackas follows: m_QuitItem->signal_activate().connect ( sigc::mem_fun(*caller, &WindowMain::hide) ); Indeed, i was doing something similar in the callback of the status icon of my new network manager. I still didn't finish it, but shortly i'll share the code here in the mailing list. Anyway, I can give you a link to the backend so far: https://git.devuan.org/aitor_czr/libnetaid Thanks for your constructive correctness :) Aitor. _______________________________________________ gtkmm-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/gtkmm-list