summaryrefslogtreecommitdiff
path: root/examples/settings/settings.cc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/settings/settings.cc')
-rw-r--r--examples/settings/settings.cc16
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));