/** * gimp_enum_value_get_desc: * @enum_class: a #GEnumClass * @enum_value: a #GEnumValue from @enum_class * * Retrieves the translated description for a given @enum_value. * * Return value: the translated description of the enum value * * Since: GIMP 2.2 **/ const gchar * gimp_enum_value_get_desc (GEnumClass *enum_class, GEnumValue *enum_value) { GType type = G_TYPE_FROM_CLASS (enum_class); GimpEnumDesc *enum_desc; enum_desc = gimp_enum_get_desc (enum_class, enum_value->value); if (enum_desc && enum_desc->value_desc) { const gchar *context; context = gimp_type_get_translation_context (type); if (context) /* the new way, using NC_() */ return g_dpgettext2 (gimp_type_get_translation_domain (type), context, enum_desc->value_desc); else /* for backward compatibility */ return g_strip_context (enum_desc->value_desc, dgettext (gimp_type_get_translation_domain (type), enum_desc->value_desc)); } return enum_value->value_name; }
/** * gimp_enum_value_get_help: * @enum_class: a #GEnumClass * @enum_value: a #GEnumValue from @enum_class * * Retrieves the translated help for a given @enum_value. * * Return value: the translated help of the enum value * * Since: GIMP 2.2 **/ const gchar * gimp_enum_value_get_help (GEnumClass *enum_class, GEnumValue *enum_value) { GType type = G_TYPE_FROM_CLASS (enum_class); GimpEnumDesc *enum_desc; enum_desc = gimp_enum_get_desc (enum_class, enum_value->value); if (enum_desc && enum_desc->value_help) return dgettext (gimp_type_get_translation_domain (type), enum_desc->value_help); return NULL; }
static void gimp_pdb_query_entry (gpointer key, gpointer value, gpointer user_data) { PDBQuery *pdb_query = user_data; GList *list; GimpProcedure *procedure; const gchar *proc_name; PDBStrings strings; GEnumClass *enum_class; GimpEnumDesc *type_desc; proc_name = key; if (pdb_query->querying_compat) list = g_hash_table_lookup (pdb_query->pdb->procedures, value); else list = value; if (! list) return; procedure = list->data; gimp_pdb_get_strings (&strings, procedure, pdb_query->querying_compat); enum_class = g_type_class_ref (GIMP_TYPE_PDB_PROC_TYPE); type_desc = gimp_enum_get_desc (enum_class, procedure->proc_type); g_type_class_unref (enum_class); if (match_string (pdb_query->name_regex, proc_name) && match_string (pdb_query->blurb_regex, strings.blurb) && match_string (pdb_query->help_regex, strings.help) && match_string (pdb_query->author_regex, strings.author) && match_string (pdb_query->copyright_regex, strings.copyright) && match_string (pdb_query->date_regex, strings.date) && match_string (pdb_query->proc_type_regex, type_desc->value_desc)) { pdb_query->num_procs++; pdb_query->list_of_procs = g_renew (gchar *, pdb_query->list_of_procs, pdb_query->num_procs); pdb_query->list_of_procs[pdb_query->num_procs - 1] = g_strdup (proc_name); }
/** * gimp_enum_get_value: * @enum_type: the #GType of a registered enum * @value: an integer value * @value_name: return location for the value's name (or %NULL) * @value_nick: return location for the value's nick (or %NULL) * @value_desc: return location for the value's translated description (or %NULL) * @value_help: return location for the value's translated help (or %NULL) * * Checks if @value is valid for the enum registered as @enum_type. * If the value exists in that enum, its name, nick and its translated * description and help are returned (if @value_name, @value_nick, * @value_desc and @value_help are not %NULL). * * Return value: %TRUE if @value is valid for the @enum_type, * %FALSE otherwise * * Since: GIMP 2.2 **/ gboolean gimp_enum_get_value (GType enum_type, gint value, const gchar **value_name, const gchar **value_nick, const gchar **value_desc, const gchar **value_help) { GEnumClass *enum_class; GEnumValue *enum_value; gboolean success = FALSE; g_return_val_if_fail (G_TYPE_IS_ENUM (enum_type), FALSE); enum_class = g_type_class_ref (enum_type); enum_value = g_enum_get_value (enum_class, value); if (enum_value) { if (value_name) *value_name = enum_value->value_name; if (value_nick) *value_nick = enum_value->value_nick; if (value_desc || value_help) { GimpEnumDesc *enum_desc; enum_desc = gimp_enum_get_desc (enum_class, value); if (value_desc) { if (enum_desc && enum_desc->value_desc) { const gchar *context; context = gimp_type_get_translation_context (enum_type); if (context) /* the new way, using NC_() */ *value_desc = g_dpgettext2 (gimp_type_get_translation_domain (enum_type), context, enum_desc->value_desc); else /* for backward compatibility */ *value_desc = g_strip_context (enum_desc->value_desc, dgettext (gimp_type_get_translation_domain (enum_type), enum_desc->value_desc)); } else { *value_desc = NULL; } } if (value_help) { *value_help = ((enum_desc && enum_desc->value_help) ? dgettext (gimp_type_get_translation_domain (enum_type), enum_desc->value_help) : NULL); } } success = TRUE; } g_type_class_unref (enum_class); return success; }