diff src/rcfile.c @ 1582:2ca277a9845b

- handle color profile and write metadata buttons on statusbar by ui_manager - statusbar buttons made configurable
author nadvornik
date Fri, 01 May 2009 23:15:51 +0000
parents c776b1310ca6
children 1a5a3b7ca2cd
line wrap: on
line diff
--- a/src/rcfile.c	Fri May 01 09:49:27 2009 +0000
+++ b/src/rcfile.c	Fri May 01 23:15:51 2009 +0000
@@ -969,12 +969,12 @@
 	LayoutWindow *lw = data;
 	if (g_ascii_strcasecmp(element_name, "toolitem") == 0)
 		{
-		layout_toolbar_add_from_config(lw, attribute_names, attribute_values);
+		layout_toolbar_add_from_config(lw, TOOLBAR_MAIN, attribute_names, attribute_values);
 		options_parse_func_push(parser_data, options_parse_leaf, NULL, NULL);
 		}
 	else if (g_ascii_strcasecmp(element_name, "clear") == 0)
 		{
-		layout_toolbar_clear(lw);
+		layout_toolbar_clear(lw, TOOLBAR_MAIN);
 		options_parse_func_push(parser_data, options_parse_leaf, NULL, NULL);
 		}
 	else
@@ -984,6 +984,26 @@
 		}
 }
 
+static void options_parse_statusbar(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer data, GError **error)
+{
+	LayoutWindow *lw = data;
+	if (g_ascii_strcasecmp(element_name, "toolitem") == 0)
+		{
+		layout_toolbar_add_from_config(lw, TOOLBAR_STATUS, attribute_names, attribute_values);
+		options_parse_func_push(parser_data, options_parse_leaf, NULL, NULL);
+		}
+	else if (g_ascii_strcasecmp(element_name, "clear") == 0)
+		{
+		layout_toolbar_clear(lw, TOOLBAR_STATUS);
+		options_parse_func_push(parser_data, options_parse_leaf, NULL, NULL);
+		}
+	else
+		{
+		log_printf("unexpected in <statusbar>: <%s>\n", element_name);
+		options_parse_func_push(parser_data, options_parse_leaf, NULL, NULL);
+		}
+}
+
 static void options_parse_layout(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer data, GError **error)
 {
 	LayoutWindow *lw = data;
@@ -1011,6 +1031,10 @@
 		{
 		options_parse_func_push(parser_data, options_parse_toolbar, NULL, lw);
 		}
+	else if (g_ascii_strcasecmp(element_name, "statusbar") == 0)
+		{
+		options_parse_func_push(parser_data, options_parse_statusbar, NULL, lw);
+		}
 	else
 		{
 		log_printf("unexpected in <layout>: <%s>\n", element_name);