RE: How to invoke help browser with gtkmm/gnomemm?



From: Fabrício Godoy [mailto:skarllot gmail com] 
> See:
> http://git.gnome.org/cgit/nemiver/tree/src/workbench/nmv-workbench.cc#n227
> http://git.gnome.org/cgit/gnome-system-monitor/tree/src/callbacks.cpp#n175

From: Jonathon Jongsma [mailto:jonathon quotidian org] 
> No, I wouldn't advise you to copy that method.  That's just a hack since we don't require a new enough gtk+ yet.  The real solution is to use gtk_show_uri(), I believe.  I'm not actually sure whether this has been wrapped in gtkmm yet, but you can always call the gtk+ version.

Thank you very much.

Unfortunately I run Debian stable which has a quite old version of gtkmm (2.12.7) and gtk_show_uri is not available yet (I found it was added in 2.14). There is g_app_info_launch_default_for_uri (used in gnome-system-monitor example) and it has a C++ counterpart Gio::AppInfo::launch_default_for_uri, but again that requires glibmm 2.20 or later and I have 2.16. Anyway I tried the C function but it didn't work, it compiled but when I ran it I got this error message: "Operation not supported". Maybe the function is there but the required functionality was not implemented yet? (That seems strange.) Or does it require some initialization (e.g., asking Gnome for the default handlers) before it can work?

I looked at the source code for the version of gnome-system-monitor in Debian stable (2.22.3) and actually it doesn't use gio but gnome-vfs (the exact function is gnome_vfs_url_show). I copied that code and it worked. I understand gnome-vfs is deprecated but I can live with it.

But then I found another problem: I was able to display the gnome-system-monitor help file but not my own. The problem is that an uri in the form "ghelp:gnome-system-monitor" requires that gnome-system-monitor has been installed properly in order that yelp can locate its help file. How can I get yelp to open a help file that hasn't been installed? From the command line I just run "yelp /absolute/path/file.xml" and it works. But when I tried giving the absolute path in the gnomevfs call, yelp opened with an error dialog saying it couldn't find the file. I tried replacing "ghelp" with "file" but I got an "Unsupported operation" error. I tried "http" but I couldn't get epiphany to treat it as a local address (I even tried "http:file:..." but it got mangled as something like "http://www.file.com/...";). Is there any documentation on how exactly uris can be specified?

Gerardo


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]