On Wed, 2013-11-13 at 23:43 +0000, Rupert Swarbrick wrote:
> Rupert Swarbrick <rswarbr...@gmail.com> writes:
> > Hi there,
> >
> > I'm trying (and seemingly failing!) to work out how to get GApplication
> > / its C++ wrapper to correctly load stuff specified on the command line.
> >
> > I can't work out what you're supposed to do from the Glibmm
> > documentation or from the GIO reference manual. Am I supposed to just
> > pass the flag and then implement some virtual function? Or is there a
> > different way I should be doing it?
> 
> What I've done which works:
> 
>  (1) Get hold of the GApplication via the gobj() member function
> 
>  (2) Use g_signal_connect to add a (static) handler for the "open"
>      signal, passing a pointer to my instance as the user_data
>      parameter.

There should be no need to use the C API. Gio::Application has a
signal_open().

However, I think it's simpler to derive your own Application class, like
so:
https://git.gnome.org/browse/gtkmm-documentation/tree/examples/book/application/simple/exampleapplication.cc

That then overrides on_open(), which is the default signal handler for
the "open" signal.

(These new Gtk::Application examples are not described in the gtkmm
book's text yet.)

>  (3) Call a non-static open() function from that signal handler.
> 
> But, given that
> 
>   virtual void Gio::Application::on_open (...)
> 
> exists, I guess there is a different way that one is supposed to be able
> to do it, without grubbing around with void*'s?

Yes. See above.

-- 
Murray Cumming
murr...@murrayc.com
www.murrayc.com
www.openismus.com

_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to