gimp r24833 - in trunk: . app/widgets
- From: neo svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r24833 - in trunk: . app/widgets
- Date: Fri, 8 Feb 2008 13:50:35 +0000 (GMT)
Author: neo
Date: Fri Feb 8 13:50:34 2008
New Revision: 24833
URL: http://svn.gnome.org/viewvc/gimp?rev=24833&view=rev
Log:
2008-02-08 Sven Neumann <sven gimp org>
* app/widgets/gimplanguagestore.[ch]
* app/widgets/gimplanguagestore-parser.c: actually populate the
language store. Still work in progress...
* app/widgets/gimptexteditor.c: added a combo-box for language
selection. Not functional yet; just something to play with.
Modified:
trunk/ChangeLog
trunk/app/widgets/gimplanguagestore-parser.c
trunk/app/widgets/gimplanguagestore.c
trunk/app/widgets/gimplanguagestore.h
trunk/app/widgets/gimptexteditor.c
Modified: trunk/app/widgets/gimplanguagestore-parser.c
==============================================================================
--- trunk/app/widgets/gimplanguagestore-parser.c (original)
+++ trunk/app/widgets/gimplanguagestore-parser.c Fri Feb 8 13:50:34 2008
@@ -32,6 +32,8 @@
#include "gimplanguagestore.h"
#include "gimplanguagestore-parser.h"
+#include "gimp-intl.h"
+
typedef enum
{
@@ -46,10 +48,7 @@
IsoCodesParserState state;
IsoCodesParserState last_known_state;
gint unknown_depth;
- GString *value;
GimpLanguageStore *store;
- gchar *language;
- gchar *code;
} IsoCodesParser;
@@ -91,7 +90,9 @@
g_return_val_if_fail (GIMP_IS_LANGUAGE_STORE (store), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
- parser.value = g_string_new (NULL);
+ bindtextdomain ("iso_639", ISO_CODES_LOCALEDIR);
+
+ parser.store = g_object_ref (store);
xml_parser = gimp_xml_parser_new (&markup_parser, &parser);
@@ -99,9 +100,10 @@
success = gimp_xml_parser_parse_file (xml_parser, filename, error);
- gimp_xml_parser_free (xml_parser);
g_free (filename);
- g_string_free (parser.value, TRUE);
+
+ gimp_xml_parser_free (xml_parser);
+ g_object_unref (parser.store);
return success;
#endif
@@ -131,6 +133,28 @@
names++;
values++;
}
+
+ if (lang && *lang && code && *code)
+ {
+ const gchar *semicolon;
+
+ lang = dgettext ("iso_639", lang);
+
+ /* there might be several language names; use the first one */
+ semicolon = strchr (lang, ';');
+
+ if (semicolon)
+ {
+ gchar *first = g_strndup (lang, semicolon - lang);
+
+ gimp_language_store_add (parser->store, first, code);
+ g_free (first);
+ }
+ else
+ {
+ gimp_language_store_add (parser->store, lang, code);
+ }
+ }
}
static void
Modified: trunk/app/widgets/gimplanguagestore.c
==============================================================================
--- trunk/app/widgets/gimplanguagestore.c (original)
+++ trunk/app/widgets/gimplanguagestore.c Fri Feb 8 13:50:34 2008
@@ -70,6 +70,8 @@
gtk_list_store_set_column_types (GTK_LIST_STORE (store),
G_N_ELEMENTS (column_types), column_types);
+
+ gimp_language_store_populate (store, NULL);
}
static void
@@ -119,3 +121,20 @@
"translations", translations,
NULL);
}
+
+void
+gimp_language_store_add (GimpLanguageStore *store,
+ const gchar *lang,
+ const gchar *code)
+{
+ GtkTreeIter iter;
+
+ g_return_if_fail (GIMP_IS_LANGUAGE_STORE (store));
+ g_return_if_fail (lang != NULL && code != NULL);
+
+ gtk_list_store_append (GTK_LIST_STORE (store), &iter);
+ gtk_list_store_set (GTK_LIST_STORE (store), &iter,
+ GIMP_LANGUAGE_STORE_LANGUAGE, lang,
+ GIMP_LANGUAGE_STORE_ISO_639_1, code,
+ -1);
+}
Modified: trunk/app/widgets/gimplanguagestore.h
==============================================================================
--- trunk/app/widgets/gimplanguagestore.h (original)
+++ trunk/app/widgets/gimplanguagestore.h Fri Feb 8 13:50:34 2008
@@ -56,6 +56,9 @@
GType gimp_language_store_get_type (void) G_GNUC_CONST;
GtkListStore * gimp_language_store_new (gboolean translations);
+void gimp_language_store_add (GimpLanguageStore *store,
+ const gchar *lang,
+ const gchar *code);
#endif /* __GIMP_LANGUAGE_STORE_H__ */
Modified: trunk/app/widgets/gimptexteditor.c
==============================================================================
--- trunk/app/widgets/gimptexteditor.c (original)
+++ trunk/app/widgets/gimptexteditor.c Fri Feb 8 13:50:34 2008
@@ -31,6 +31,7 @@
#include "gimphelp-ids.h"
#include "gimpmenufactory.h"
+#include "gimplanguagestore.h"
#include "gimptexteditor.h"
#include "gimpuimanager.h"
@@ -168,6 +169,26 @@
gtk_widget_show (toolbar);
}
+ {
+ GtkListStore *store;
+ GtkWidget *combo;
+ GtkCellRenderer *cell;
+
+ store = gimp_language_store_new (FALSE);
+ combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
+ g_object_unref (store);
+
+ cell = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), cell, TRUE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), cell,
+ "text", GIMP_LANGUAGE_STORE_LANGUAGE,
+ NULL);
+
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (editor)->vbox),
+ combo, FALSE, FALSE, 0);
+ gtk_widget_show (combo);
+ }
+
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]