On Sat, Sep 10, 2016 at 1:00 PM, <gtkmm-list-requ...@gnome.org> wrote:

>
> I need to add the following functions:
>
> virtual Gtk::SizeRequestMode get_request_mode_vfunc() const;
> virtual void get_preferred_width_vfunc(int& minimum_width, int&
> natural_width) const;
> virtual void get_preferred_height_for_width_vfunc(int width, int&
> minimum_height, int& natural_height) const;
> virtual void get_preferred_height_vfunc(int& minimum_height, int&
> natural_height) const;
> virtual void get_preferred_width_for_height_vfunc(int height, int&
> minimum_width, int& natural_width) const;
> virtual void on_size_allocate(Gtk::Allocation& allocation);
> virtual void on_map();
> virtual void on_unmap();
> virtual void on_realize();
> virtual void on_unrealize();
>
>
Do you really, though? It would seem easier to create your custom widget by
composition and let the existing Gtk::Button implementation handle all of
those, unless you absolutely need special behaviour.

I never understood the refrain 'prefer composition over inheritance' until
I started trying to inherit from libraries like this and realised how much
hassle it causes, which is often unnecessary unless you're fundamentally
changing the base class behaviour.

In my case, I wasn't, because I was just adding functionality to existing
widgets by wrapping - for which inheritance just caused my headaches - and
a phenomenal amount of unnecessary space overhead for all those new vtables
I never actually needed.

So now I just use composition to aggregate widgets together and add signals
to them.

Just my experience, YMMV.
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to