[gspell/wip/lang-choosers] language-choosers: add language-code property
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gspell/wip/lang-choosers] language-choosers: add language-code property
- Date: Thu, 14 Jan 2016 14:37:16 +0000 (UTC)
commit 03bf2c5574691562b5cacce123def7c4a76ea10e
Author: Sébastien Wilmet <swilmet gnome org>
Date: Thu Jan 14 15:32:04 2016 +0100
language-choosers: add language-code property
https://bugzilla.gnome.org/show_bug.cgi?id=758421
gspell/gspell-language-chooser.c | 49 ++++++++++++++++++++++++++++++++++++++
gspell/gspell-language-chooser.h | 18 +++++++++++---
2 files changed, 63 insertions(+), 4 deletions(-)
---
diff --git a/gspell/gspell-language-chooser.c b/gspell/gspell-language-chooser.c
index eeaf3ee..d03d55d 100644
--- a/gspell/gspell-language-chooser.c
+++ b/gspell/gspell-language-chooser.c
@@ -46,6 +46,25 @@ gspell_language_chooser_default_init (GspellLanguageChooserInterface *interface)
GSPELL_TYPE_LANGUAGE,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
+
+ /**
+ * GspellLanguageChooser:language-code:
+ *
+ * The empty string if the default language was set and the selection
+ * haven't changed. Or the language code if an explicit language was set
+ * or if the selection has changed.
+ *
+ * A language code can be retrieved with gspell_language_get_code().
+ *
+ * This property is useful for g_settings_bind().
+ */
+ g_object_interface_install_property (interface,
+ g_param_spec_string ("language-code",
+ "Language Code",
+ "",
+ "",
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
}
/**
@@ -79,4 +98,34 @@ gspell_language_chooser_set_language (GspellLanguageChooser *chooser,
GSPELL_LANGUAGE_CHOOSER_GET_IFACE (chooser)->set_language (chooser, language);
}
+/**
+ * gspell_language_chooser_get_language_code:
+ * @chooser: a #GspellLanguageChooser.
+ *
+ * Returns: the #GspellLanguageChooser:language-code. It cannot be %NULL.
+ */
+const gchar *
+gspell_language_chooser_get_language_code (GspellLanguageChooser *chooser)
+{
+ g_return_val_if_fail (GSPELL_IS_LANGUAGE_CHOOSER (chooser), "");
+
+ return GSPELL_LANGUAGE_CHOOSER_GET_IFACE (chooser)->get_language_code (chooser);
+}
+
+/**
+ * gspell_language_chooser_set_language_code:
+ * @chooser: a #GspellLanguageChooser.
+ * @language_code: (nullable): a language code, or the empty string or %NULL to
+ * pick the default language.
+ */
+void
+gspell_language_chooser_set_language_code (GspellLanguageChooser *chooser,
+ const gchar *language_code)
+{
+ g_return_if_fail (GSPELL_IS_LANGUAGE_CHOOSER (chooser));
+
+ GSPELL_LANGUAGE_CHOOSER_GET_IFACE (chooser)->set_language_code (chooser,
+ language_code);
+}
+
/* ex:set ts=8 noet: */
diff --git a/gspell/gspell-language-chooser.h b/gspell/gspell-language-chooser.h
index 8ce0565..682fb4c 100644
--- a/gspell/gspell-language-chooser.h
+++ b/gspell/gspell-language-chooser.h
@@ -43,13 +43,23 @@ struct _GspellLanguageChooserInterface
void (* set_language) (GspellLanguageChooser *chooser,
const GspellLanguage *language);
- gpointer padding[8];
+ const gchar * (* get_language_code) (GspellLanguageChooser *chooser);
+
+ void (* set_language_code) (GspellLanguageChooser *chooser,
+ const gchar *language_code);
+
+ gpointer padding[12];
};
-const GspellLanguage * gspell_language_chooser_get_language (GspellLanguageChooser *chooser);
+const GspellLanguage * gspell_language_chooser_get_language (GspellLanguageChooser *chooser);
+
+void gspell_language_chooser_set_language (GspellLanguageChooser *chooser,
+ const GspellLanguage *language);
+
+const gchar * gspell_language_chooser_get_language_code (GspellLanguageChooser *chooser);
-void gspell_language_chooser_set_language (GspellLanguageChooser *chooser,
- const GspellLanguage *language);
+void gspell_language_chooser_set_language_code (GspellLanguageChooser *chooser,
+ const gchar
*language_code);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]