On Wed, Mar 6, 2013 at 6:06 PM, Yoann LE BARS <[email protected]> wrote:
> initialised. The thing is, I do not have a clue on how to initialise the > proxy in a proper way. Also, "connection" initialisation does not seem > quite right. Actually, I am not sure I am not using a completely wrong > approach. > > Can someone help me out this? > You'll want to use Glib::DBus::Proxy::create_for_bus_sync() (the async version is fine too) https://developer.gnome.org/glibmm/2.34/classGio_1_1DBus_1_1Proxy.html#a275770db372ac7becfea4bb5fc2e9154 Then use proxy->call() or call_sync(). I guess you need a tuple variant with two strings, and you'll get a variant with just the cookie in it back. Glib::Variant<Glib::ustring> app_name = Glib::Variant<Glib::ustring>::create("MyApp"); Glib::Variant<Glib::ustring> reason = Glib::Variant<Glib::ustring>::create("Playing movie"); std::vector<Glib::VariantBase> vec; vec.push_back(app_name); vec.push_back(reason); Glib::VariantContainerBase bundle = Glib::VariantContainerBase::create_tuple(vec); Glib::VariantContainerBase result = proxy->call_sync(..., bundle, ...); Glib::VariantBase child = result.get_child(0); Glib::Variant<unsigned int> cookie; try { cookie = Glib::Variant<unsigned int>::cast_dynamic(child); } catch (std::bad_cast e) {} Although there's probably no reason to take apart the result, since for the UnInhibit you'll just shove 'result' right back into proxy->call_sync(). I have a class that uses the dbus notification interface here: https://github.com/talisein/Horizon/blob/master/src/notifier.cpp
_______________________________________________ gtkmm-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/gtkmm-list
