changeset 1589:05909b952b06

merged
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Fri, 01 May 2009 15:50:26 +0900
parents 5b59ccf95b2b (current diff) 0434f34b1ee4 (diff)
children 69f7270b3b27
files src/layout.c src/layout_image.c src/layout_util.c src/typedefs.h
diffstat 4 files changed, 184 insertions(+), 248 deletions(-) [+]
line wrap: on
line diff
--- a/src/layout.c	Fri May 01 15:49:57 2009 +0900
+++ b/src/layout.c	Fri May 01 15:50:26 2009 +0900
@@ -391,7 +391,177 @@
 	return button;
 }
 
-#if 0
+/*
+ *-----------------------------------------------------------------------------
+ * color profile button (and menu)
+ *-----------------------------------------------------------------------------
+ */
+
+#ifdef HAVE_LCMS
+
+static void layout_color_menu_enable_cb(GtkWidget *widget, gpointer data)
+{
+	LayoutWindow *lw = data;
+
+	layout_image_color_profile_set_use(lw, (!layout_image_color_profile_get_use(lw)));
+	layout_image_refresh(lw);
+}
+
+static void layout_color_menu_use_image_cb(GtkWidget *widget, gpointer data)
+{
+	LayoutWindow *lw = data;
+	gint input, screen;
+	gboolean use_image;
+
+	if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
+	layout_image_color_profile_set(lw, input, screen, !use_image);
+	layout_image_refresh(lw);
+}
+
+#define COLOR_MENU_KEY "color_menu_key"
+
+static void layout_color_menu_input_cb(GtkWidget *widget, gpointer data)
+{
+	LayoutWindow *lw = data;
+	gint type;
+	gint input, screen;
+	gboolean use_image;
+
+	if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) return;
+
+	type = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), COLOR_MENU_KEY));
+	if (type < 0 || type >= COLOR_PROFILE_FILE + COLOR_PROFILE_INPUTS) return;
+
+	if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
+	if (type == input) return;
+
+	layout_image_color_profile_set(lw, type, screen, use_image);
+	layout_image_refresh(lw);
+}
+
+static void layout_color_menu_screen_cb(GtkWidget *widget, gpointer data)
+{
+	LayoutWindow *lw = data;
+	gint type;
+	gint input, screen;
+	gboolean use_image;
+
+	if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) return;
+
+	type = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), COLOR_MENU_KEY));
+	if (type < 0 || type > 1) return;
+
+	if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
+	if (type == screen) return;
+
+	layout_image_color_profile_set(lw, input, type, use_image);
+	layout_image_refresh(lw);
+}
+
+static gchar *layout_color_name_parse(const gchar *name)
+{
+	if (!name || !*name) return g_strdup(_("Empty"));
+	return g_strdelimit(g_strdup(name), "_", '-');
+}
+
+#endif /* HAVE_LCMS */
+
+static void layout_color_button_press_cb(GtkWidget *widget, gpointer data)
+{
+#ifndef HAVE_LCMS
+	gchar *msg = g_strdup_printf(_("This installation of %s was not built with support for color profiles."), GQ_APPNAME);
+	file_util_warning_dialog(_("Color profiles not supported"),
+				 msg,
+				 GTK_STOCK_DIALOG_INFO, widget);
+	g_free(msg);
+	return;
+#else
+	LayoutWindow *lw = data;
+	GtkWidget *menu;
+	GtkWidget *item;
+	gchar *buf;
+	gboolean active;
+	gint input = 0;
+	gint screen = 0;
+	gboolean use_image = FALSE;
+	gboolean from_image;
+	gint image_profile;
+	gint i;
+	
+	if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
+
+	image_profile = layout_image_color_profile_get_from_image(lw);
+	from_image = use_image && (image_profile != COLOR_PROFILE_NONE);
+	menu = popup_menu_short_lived();
+
+	active = layout_image_color_profile_get_use(lw);
+	menu_item_add_check(menu, _("Use _color profiles"), active,
+			    G_CALLBACK(layout_color_menu_enable_cb), lw);
+
+	menu_item_add_divider(menu);
+
+	item = menu_item_add_check(menu, _("Use profile from _image"), use_image,
+			    G_CALLBACK(layout_color_menu_use_image_cb), lw);
+	gtk_widget_set_sensitive(item, image_profile == COLOR_PROFILE_MEM || (image_profile > COLOR_PROFILE_NONE && image_profile < COLOR_PROFILE_FILE));
+
+	for (i = COLOR_PROFILE_SRGB; i < COLOR_PROFILE_FILE; i++)
+		{
+		const gchar *label;
+
+		switch (i)
+			{
+			case COLOR_PROFILE_SRGB: 	label = _("sRGB"); break;
+			case COLOR_PROFILE_ADOBERGB:	label = _("AdobeRGB compatible"); break;
+			default:			label = "fixme"; break;
+			}
+		buf = g_strdup_printf(_("Input _%d: %s%s"), i, label, (i == image_profile) ? " *" : "");
+	  	item = menu_item_add_radio(menu, (i == COLOR_PROFILE_SRGB) ? NULL : item,
+				   buf, (input == i),
+				   G_CALLBACK(layout_color_menu_input_cb), lw);
+		g_free(buf);
+		g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(i));
+		gtk_widget_set_sensitive(item, active && !from_image);
+		}
+
+	for (i = 0; i < COLOR_PROFILE_INPUTS; i++)
+		{
+		const gchar *name = options->color_profile.input_name[i];
+		const gchar *file = options->color_profile.input_file[i];
+		gchar *end;
+
+		if (!name || !name[0]) name = filename_from_path(file);
+
+		end = layout_color_name_parse(name);
+		buf = g_strdup_printf(_("Input _%d: %s"), i + COLOR_PROFILE_FILE, end);
+		g_free(end);
+
+		item = menu_item_add_radio(menu, item,
+					   buf, (i + COLOR_PROFILE_FILE == input),
+					   G_CALLBACK(layout_color_menu_input_cb), lw);
+		g_free(buf);
+		g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(i + COLOR_PROFILE_FILE));
+		gtk_widget_set_sensitive(item, active && !from_image && is_readable_file(file));
+		}
+
+	menu_item_add_divider(menu);
+
+	item = menu_item_add_radio(menu, NULL,
+				   _("Screen sRGB"), (screen == 0),
+				   G_CALLBACK(layout_color_menu_screen_cb), lw);
+
+	g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(0));
+	gtk_widget_set_sensitive(item, active);
+
+	item = menu_item_add_radio(menu, item,
+				   _("_Screen profile"), (screen == 1),
+				   G_CALLBACK(layout_color_menu_screen_cb), lw);
+	g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(1));
+	gtk_widget_set_sensitive(item, active && is_readable_file(options->color_profile.screen_file));
+
+	gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, GDK_CURRENT_TIME);
+#endif /* HAVE_LCMS */
+}
+
 static GtkWidget *layout_color_button(LayoutWindow *lw)
 {
 	GtkWidget *button;
@@ -415,7 +585,7 @@
 
 	return button;
 }
-#endif
+
 /*
  *-----------------------------------------------------------------------------
  * write button
@@ -679,9 +849,13 @@
 	gtk_box_pack_start(GTK_BOX(hbox), lw->info_sort, FALSE, FALSE, 0);
 	gtk_widget_show(lw->info_sort);
 
+	lw->info_color = layout_color_button(lw);
+	gtk_widget_show(lw->info_color);
+
 	lw->info_write = layout_write_button(lw);
 	gtk_widget_show(lw->info_write);
 
+	if (small_format) gtk_box_pack_end(GTK_BOX(hbox), lw->info_color, FALSE, FALSE, 0);
 	if (small_format) gtk_box_pack_end(GTK_BOX(hbox), lw->info_write, FALSE, FALSE, 0);
 
 	lw->info_status = layout_status_label(NULL, lw->info_box, TRUE, 0, (!small_format));
@@ -697,6 +871,7 @@
 		hbox = lw->info_box;
 		}
 	lw->info_details = layout_status_label(NULL, hbox, TRUE, 0, TRUE);
+	if (!small_format) gtk_box_pack_start(GTK_BOX(hbox), lw->info_color, FALSE, FALSE, 0);
 	if (!small_format) gtk_box_pack_start(GTK_BOX(hbox), lw->info_write, FALSE, FALSE, 0);
 	lw->info_pixel = layout_status_label(NULL, hbox, FALSE, PIXEL_LABEL_WIDTH, TRUE);
 	if (lw->options.info_pixel_hidden) gtk_widget_hide(gtk_widget_get_parent(lw->info_pixel));
@@ -1630,6 +1805,7 @@
 	lw->info_box = NULL;
 	lw->info_progress_bar = NULL;
 	lw->info_sort = NULL;
+	lw->info_color = NULL;
 	lw->info_status = NULL;
 	lw->info_details = NULL;
 	lw->info_pixel = NULL;
--- a/src/layout_image.c	Fri May 01 15:49:57 2009 +0900
+++ b/src/layout_image.c	Fri May 01 15:50:26 2009 +0900
@@ -1082,13 +1082,13 @@
 
 	image_color_profile_set_use(lw->image, enable);
 
-//	if (lw->info_color)
-//		{
+	if (lw->info_color)
+		{
 #ifndef HAVE_LCMS
-//		enable = FALSE;
+		enable = FALSE;
 #endif
-//		gtk_widget_set_sensitive(GTK_BIN(lw->info_color)->child, enable);
-//		}
+		gtk_widget_set_sensitive(GTK_BIN(lw->info_color)->child, enable);
+		}
 }
 
 gboolean layout_image_color_profile_get_use(LayoutWindow *lw)
--- a/src/layout_util.c	Fri May 01 15:49:57 2009 +0900
+++ b/src/layout_util.c	Fri May 01 15:50:26 2009 +0900
@@ -21,7 +21,6 @@
 #include "collect.h"
 #include "collect-dlg.h"
 #include "compat.h"
-#include "color-man.h"
 #include "dupe.h"
 #include "editors.h"
 #include "filedata.h"
@@ -54,7 +53,6 @@
 
 static gboolean layout_bar_enabled(LayoutWindow *lw);
 static gboolean layout_bar_sort_enabled(LayoutWindow *lw);
-static void layout_util_sync_color(LayoutWindow *lw);
 
 /*
  *-----------------------------------------------------------------------------
@@ -1037,163 +1035,6 @@
 
 #endif
 
-
-/*
- *-----------------------------------------------------------------------------
- * color profile button (and menu)
- *-----------------------------------------------------------------------------
- */
-
-static void layout_color_menu_enable_cb(GtkToggleAction *action, gpointer data)
-{
-#ifdef HAVE_LCMS
-	LayoutWindow *lw = data;
-
-	layout_image_color_profile_set_use(lw, gtk_toggle_action_get_active(action));
-	layout_util_sync_color(lw);
-	layout_image_refresh(lw);
-#endif
-}
-
-static void layout_color_menu_use_image_cb(GtkToggleAction *action, gpointer data)
-{
-#ifdef HAVE_LCMS
-	LayoutWindow *lw = data;
-	gint input, screen;
-	gboolean use_image;
-
-	if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
-	layout_image_color_profile_set(lw, input, screen, gtk_toggle_action_get_active(action));
-	layout_util_sync_color(lw);
-	layout_image_refresh(lw);
-#endif
-}
-
-static void layout_color_menu_input_cb(GtkRadioAction *action, GtkRadioAction *current, gpointer data)
-{
-#ifdef HAVE_LCMS
-	LayoutWindow *lw = data;
-	gint type;
-	gint input, screen;
-	gboolean use_image;
-
-	type = gtk_radio_action_get_current_value(action);
-	if (type < 0 || type >= COLOR_PROFILE_FILE + COLOR_PROFILE_INPUTS) return;
-
-	if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
-	if (type == input) return;
-
-	layout_image_color_profile_set(lw, type, screen, use_image);
-	layout_image_refresh(lw);
-#endif
-}
-
-#if 0
-static gchar *layout_color_name_parse(const gchar *name)
-{
-	if (!name || !*name) return g_strdup(_("Empty"));
-	return g_strdelimit(g_strdup(name), "_", '-');
-}
-
-
-static void layout_color_button_press_cb(GtkWidget *widget, gpointer data)
-{
-#ifndef HAVE_LCMS
-	gchar *msg = g_strdup_printf(_("This installation of %s was not built with support for color profiles."), GQ_APPNAME);
-	file_util_warning_dialog(_("Color profiles not supported"),
-				 msg,
-				 GTK_STOCK_DIALOG_INFO, widget);
-	g_free(msg);
-	return;
-#else
-	LayoutWindow *lw = data;
-	GtkWidget *menu;
-	GtkWidget *item;
-	gchar *buf;
-	gboolean active;
-	gint input = 0;
-	gint screen = 0;
-	gboolean use_image = FALSE;
-	gboolean from_image;
-	gint image_profile;
-	gint i;
-	
-	if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
-
-	image_profile = layout_image_color_profile_get_from_image(lw);
-	from_image = use_image && (image_profile != COLOR_PROFILE_NONE);
-	menu = popup_menu_short_lived();
-
-	active = layout_image_color_profile_get_use(lw);
-	menu_item_add_check(menu, _("Use _color profiles"), active,
-			    G_CALLBACK(layout_color_menu_enable_cb), lw);
-
-	menu_item_add_divider(menu);
-
-	item = menu_item_add_check(menu, _("Use profile from _image"), use_image,
-			    G_CALLBACK(layout_color_menu_use_image_cb), lw);
-	gtk_widget_set_sensitive(item, image_profile == COLOR_PROFILE_MEM || (image_profile > COLOR_PROFILE_NONE && image_profile < COLOR_PROFILE_FILE));
-
-	for (i = COLOR_PROFILE_SRGB; i < COLOR_PROFILE_FILE; i++)
-		{
-		const gchar *label;
-
-		switch (i)
-			{
-			case COLOR_PROFILE_SRGB: 	label = _("sRGB"); break;
-			case COLOR_PROFILE_ADOBERGB:	label = _("AdobeRGB compatible"); break;
-			default:			label = "fixme"; break;
-			}
-		buf = g_strdup_printf(_("Input _%d: %s%s"), i, label, (i == image_profile) ? " *" : "");
-	  	item = menu_item_add_radio(menu, (i == COLOR_PROFILE_SRGB) ? NULL : item,
-				   buf, (input == i),
-				   G_CALLBACK(layout_color_menu_input_cb), lw);
-		g_free(buf);
-		g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(i));
-		gtk_widget_set_sensitive(item, active && !from_image);
-		}
-
-	for (i = 0; i < COLOR_PROFILE_INPUTS; i++)
-		{
-		const gchar *name = options->color_profile.input_name[i];
-		const gchar *file = options->color_profile.input_file[i];
-		gchar *end;
-
-		if (!name || !name[0]) name = filename_from_path(file);
-
-		end = layout_color_name_parse(name);
-		buf = g_strdup_printf(_("Input _%d: %s"), i + COLOR_PROFILE_FILE, end);
-		g_free(end);
-
-		item = menu_item_add_radio(menu, item,
-					   buf, (i + COLOR_PROFILE_FILE == input),
-					   G_CALLBACK(layout_color_menu_input_cb), lw);
-		g_free(buf);
-		g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(i + COLOR_PROFILE_FILE));
-		gtk_widget_set_sensitive(item, active && !from_image && is_readable_file(file));
-		}
-
-	menu_item_add_divider(menu);
-
-	item = menu_item_add_radio(menu, NULL,
-				   _("Screen sRGB"), (screen == 0),
-				   G_CALLBACK(layout_color_menu_screen_cb), lw);
-
-	g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(0));
-	gtk_widget_set_sensitive(item, active);
-
-	item = menu_item_add_radio(menu, item,
-				   _("_Screen profile"), (screen == 1),
-				   G_CALLBACK(layout_color_menu_screen_cb), lw);
-	g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(1));
-	gtk_widget_set_sensitive(item, active && is_readable_file(options->color_profile.screen_file));
-
-	gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, GDK_CURRENT_TIME);
-#endif /* HAVE_LCMS */
-}
-
-#endif
-
 /*
  *-----------------------------------------------------------------------------
  * recent menu
@@ -1306,7 +1147,6 @@
   { "ViewMenu",		NULL,		N_("_View"),			NULL, 		NULL, 	NULL },
   { "DirMenu",          NULL,           N_("_View Directory as"),	NULL, 		NULL, 	NULL },
   { "ZoomMenu",		NULL,		N_("_Zoom"),			NULL, 		NULL, 	NULL },
-  { "ColorMenu",	NULL,		N_("Color _Management"),	NULL, 		NULL, 	NULL },
   { "ConnectZoomMenu",	NULL,		N_("_Connected Zoom"),		NULL, 		NULL, 	NULL },
   { "SplitMenu",	NULL,		N_("_Split"),			NULL, 		NULL, 	NULL },
   { "HelpMenu",		NULL,		N_("_Help"),			NULL, 		NULL, 	NULL },
@@ -1428,8 +1268,6 @@
   { "SBar",		NULL,		N_("_Info"),		"<control>K",	NULL,	CB(layout_menu_bar_cb),		 FALSE  },
   { "SBarSort",		NULL,		N_("Sort _manager"),	"<control>S",	NULL,	CB(layout_menu_bar_sort_cb),	 FALSE  },
   { "SlideShow",	NULL,		N_("Toggle _slideshow"),"S",		NULL,	CB(layout_menu_slideshow_cb),	 FALSE  },
-  { "UseColorProfiles",	NULL,		N_("Use _color profiles"), NULL,	NULL,	CB(layout_color_menu_enable_cb), FALSE},
-  { "UseImageProfile",	NULL,		N_("Use profile from _image"), NULL,	NULL,	CB(layout_color_menu_use_image_cb), FALSE},
 };
 
 static GtkRadioActionEntry menu_radio_entries[] = {
@@ -1444,14 +1282,6 @@
   { "SplitSingle",	NULL,		N_("Single"),		"Y",		NULL,	SPLIT_NONE }
 };
 
-static GtkRadioActionEntry menu_color_radio_entries[] = {
-  { "ColorProfile0",	NULL,		N_("Input _0: sRGB"),			NULL,	NULL,	COLOR_PROFILE_SRGB },
-  { "ColorProfile1",	NULL,		N_("Input _1: AdobeRGB compatible"),	NULL,	NULL,	COLOR_PROFILE_ADOBERGB },
-  { "ColorProfile2",	NULL,		N_("Input _2"),				NULL,	NULL,	COLOR_PROFILE_FILE },
-  { "ColorProfile3",	NULL,		N_("Input _3"),				NULL,	NULL,	COLOR_PROFILE_FILE + 1 },
-  { "ColorProfile4",	NULL,		N_("Input _4"),				NULL,	NULL,	COLOR_PROFILE_FILE + 2 },
-  { "ColorProfile5",	NULL,		N_("Input _5"),				NULL,	NULL,	COLOR_PROFILE_FILE + 3 }
-};
 
 #undef CB
 
@@ -1537,16 +1367,6 @@
 "      <menuitem action='PanView'/>"
 "      <placeholder name='WindowSection'/>"
 "      <separator/>"
-"      <menu action='ColorMenu'>"
-"        <menuitem action='UseColorProfiles'/>"
-"        <menuitem action='UseImageProfile'/>"
-"        <menuitem action='ColorProfile0'/>"
-"        <menuitem action='ColorProfile1'/>"
-"        <menuitem action='ColorProfile2'/>"
-"        <menuitem action='ColorProfile3'/>"
-"        <menuitem action='ColorProfile4'/>"
-"        <menuitem action='ColorProfile5'/>"
-"      </menu>"
 "      <menu action='ZoomMenu'>"
 "        <menuitem action='ZoomIn'/>"
 "        <menuitem action='ZoomOut'/>"
@@ -1901,10 +1721,6 @@
 	gtk_action_group_add_radio_actions(lw->action_group,
 					   menu_view_dir_radio_entries, VIEW_DIR_TYPES_COUNT,
 					   0, G_CALLBACK(layout_menu_view_dir_as_cb), lw);
-	gtk_action_group_add_radio_actions(lw->action_group,
-					   menu_color_radio_entries, COLOR_PROFILE_FILE + COLOR_PROFILE_INPUTS,
-					   0, G_CALLBACK(layout_color_menu_input_cb), lw);
-
 
 	lw->ui_manager = gtk_ui_manager_new();
 	gtk_ui_manager_set_add_tearoffs(lw->ui_manager, TRUE);
@@ -2061,62 +1877,6 @@
  * misc
  *-----------------------------------------------------------------------------
  */
-static gchar *layout_color_name_parse(const gchar *name)
-{
-	if (!name || !*name) return g_strdup(_("Empty"));
-	return g_strdelimit(g_strdup(name), "_", '-');
-}
-
-static void layout_util_sync_color(LayoutWindow *lw)
-{
-	GtkAction *action;
-	gint input = 0;
-	gint screen = 0;
-	gboolean use_color;
-	gboolean use_image = FALSE;
-	gint i;
-	gchar action_name[15];
-
-	if (!lw->action_group) return;
-	if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
-	
-	use_color = layout_image_color_profile_get_use(lw);
-
-	action = gtk_action_group_get_action(lw->action_group, "UseColorProfiles");
-	gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), use_color);
-
-	action = gtk_action_group_get_action(lw->action_group, "UseImageProfile");
-	gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), use_image);
-	gtk_action_set_sensitive(action, use_color);
-
-	for (i = 0; i < COLOR_PROFILE_FILE + COLOR_PROFILE_INPUTS; i++)
-		{
-		sprintf(action_name, "ColorProfile%d", i);
-		action = gtk_action_group_get_action(lw->action_group, action_name);
-		
-		if (i >= COLOR_PROFILE_FILE)
-			{
-			const gchar *name = options->color_profile.input_name[i - COLOR_PROFILE_FILE];
-			const gchar *file = options->color_profile.input_file[i - COLOR_PROFILE_FILE];
-			gchar *end;
-			gchar *buf;
-
-			if (!name || !name[0]) name = filename_from_path(file);
-
-			end = layout_color_name_parse(name);
-			buf = g_strdup_printf(_("Input _%d: %s"), i, end);
-			g_free(end);
-
-			g_object_set(G_OBJECT(action), "label", buf, NULL);
-			g_free(buf);
-
-			gtk_action_set_visible(action, file && file[0]);
-			}
-
-		gtk_action_set_sensitive(action, !use_image);
-		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), (i == input));
-		}
-}
 
 static void layout_util_sync_views(LayoutWindow *lw)
 {
@@ -2154,7 +1914,6 @@
 	action = gtk_action_group_get_action(lw->action_group, "SlideShow");
 	gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), layout_image_slideshow_active(lw));
 
-	layout_util_sync_color(lw);
 }
 
 void layout_util_sync_thumb(LayoutWindow *lw)
--- a/src/typedefs.h	Fri May 01 15:49:57 2009 +0900
+++ b/src/typedefs.h	Fri May 01 15:50:26 2009 +0900
@@ -628,6 +628,7 @@
 	GtkWidget *info_box;
 	GtkWidget *info_progress_bar;
 	GtkWidget *info_sort;
+	GtkWidget *info_color;
 	GtkWidget *info_status;
 	GtkWidget *info_details;
 	GtkWidget *info_zoom;