diff options
Diffstat (limited to 'examples/settings/settings.cc')
-rw-r--r-- | examples/settings/settings.cc | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/examples/settings/settings.cc b/examples/settings/settings.cc index b7ce0ca5..84df7a0e 100644 --- a/examples/settings/settings.cc +++ b/examples/settings/settings.cc @@ -50,6 +50,18 @@ static void on_key_changed(const Glib::ustring& key, const Glib::RefPtr<Gio::Set std::cerr << "Unknown key\n"; } +static void on_key_changed_all(const Glib::ustring& key) +{ + std::cout << "on_key_changed_all(" << key << ")\n"; +} + +static void on_key_changed_int(const Glib::ustring& key) +{ + std::cout << "on_key_changed_int(" << key << ")\n"; + if (key != INT_KEY) + std::cerr << "Unexpected key\n"; +} + int main(int, char**) { std::locale::global(std::locale("")); @@ -63,10 +75,12 @@ int main(int, char**) Glib::setenv("GSETTINGS_SCHEMA_DIR", ".", true); Glib::setenv("GSETTINGS_BACKEND", "memory", true); - const Glib::RefPtr<Gio::Settings> settings = + const auto settings = Gio::Settings::create("org.gtkmm.demo"); settings->signal_changed().connect(sigc::bind(sigc::ptr_fun(&on_key_changed), settings)); + settings->signal_changed("").connect(sigc::ptr_fun(&on_key_changed_all)); + settings->signal_changed(INT_KEY).connect(sigc::ptr_fun(&on_key_changed_int)); std::cout << Glib::ustring::compose("Initial value of '%1': '%2'\n", STRING_KEY, settings->get_string(STRING_KEY)); |