changeset 1585:9a64eda3e020

merged
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Fri, 01 May 2009 15:49:32 +0900
parents c1e22cba4003 (current diff) f1d22c2174c1 (diff)
children 5b59ccf95b2b
files src/image.c src/image.h src/layout.c src/layout_image.c src/layout_image.h src/typedefs.h
diffstat 8 files changed, 28 insertions(+), 82 deletions(-) [+]
line wrap: on
line diff
--- a/src/color-man.c	Fri May 01 15:48:48 2009 +0900
+++ b/src/color-man.c	Fri May 01 15:49:32 2009 +0900
@@ -412,41 +412,6 @@
 				  screen_type, screen_file, screen_data, screen_data_len);
 }
 
-static gchar *color_man_get_profile_name(ColorManProfileType type, cmsHPROFILE profile)
-{
-	switch (type)
-		{
-		case COLOR_PROFILE_SRGB:
-			return g_strdup(_("sRGB"));
-		case COLOR_PROFILE_ADOBERGB:
-			return g_strdup(_("Adobe RGB compatible"));
-			break;
-		case COLOR_PROFILE_MEM:
-		case COLOR_PROFILE_FILE:
-			if (profile)
-				{
-				return g_strdup(cmsTakeProductName(profile));
-				}
-			return g_strdup(_("Custom profile"));
-			break;
-		case COLOR_PROFILE_NONE:
-		default:
-			return g_strdup("");
-		}
-}
-
-gboolean color_man_get_status(ColorMan *cm, gchar **image_profile, gchar **screen_profile)
-{
-	ColorManCache *cc;
-	if (!cm) return FALSE;
-
-	cc = cm->profile;
-	
-	if (image_profile) *image_profile = color_man_get_profile_name(cc->profile_in_type, cc->profile_in);
-	if (screen_profile) *screen_profile = color_man_get_profile_name(cc->profile_out_type, cc->profile_out);
-	return TRUE;
-}
-
 void color_man_free(ColorMan *cm)
 {
 	if (!cm) return;
@@ -506,10 +471,5 @@
 	/* no op */
 }
 
-gboolean color_man_get_status(ColorMan *cm, gchar **image_profile, gchar **screen_profile)
-{
-	return FALSE;
-}
-
 #endif /* define HAVE_LCMS */
 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */
--- a/src/color-man.h	Fri May 01 15:48:48 2009 +0900
+++ b/src/color-man.h	Fri May 01 15:49:32 2009 +0900
@@ -63,7 +63,5 @@
 
 void color_man_start_bg(ColorMan *cm, ColorManDoneFunc don_func, gpointer done_data);
 
-gboolean color_man_get_status(ColorMan *cm, gchar **image_profile, gchar **screen_profile);
-
 #endif
 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */
--- a/src/image.c	Fri May 01 15:48:48 2009 +0900
+++ b/src/image.c	Fri May 01 15:49:32 2009 +0900
@@ -1500,15 +1500,11 @@
 	return imd->color_profile_enable;
 }
 
-gboolean image_color_profile_get_status(ImageWindow *imd, gchar **image_profile, gchar **screen_profile)
+gint image_color_profile_get_from_image(ImageWindow *imd)
 {
-	ColorMan *cm;
-	if (!imd) return FALSE;
-	
-	cm = imd->cm;
-	if (!cm) return FALSE;
-	return color_man_get_status(cm, image_profile, screen_profile);
+	if (!imd) return COLOR_PROFILE_NONE;
 
+	return imd->color_profile_from_image;
 }
 
 void image_set_delay_flip(ImageWindow *imd, gboolean delay)
--- a/src/image.h	Fri May 01 15:48:48 2009 +0900
+++ b/src/image.h	Fri May 01 15:49:32 2009 +0900
@@ -110,7 +110,7 @@
 			     gboolean *use_image);
 void image_color_profile_set_use(ImageWindow *imd, gboolean enable);
 gboolean image_color_profile_get_use(ImageWindow *imd);
-gboolean image_color_profile_get_status(ImageWindow *imd, gchar **image_profile, gchar **screen_profile);
+gint image_color_profile_get_from_image(ImageWindow *imd);
 
 /* set delayed page flipping */
 void image_set_delay_flip(ImageWindow *imd, gint delay);
--- a/src/layout.c	Fri May 01 15:48:48 2009 +0900
+++ b/src/layout.c	Fri May 01 15:49:32 2009 +0900
@@ -391,21 +391,31 @@
 	return button;
 }
 
+#if 0
 static GtkWidget *layout_color_button(LayoutWindow *lw)
 {
 	GtkWidget *button;
 	GtkWidget *image;
+	gboolean enable;
 
 	button = gtk_button_new();
 	image = gtk_image_new_from_stock(GTK_STOCK_SELECT_COLOR, GTK_ICON_SIZE_MENU);
 	gtk_container_add(GTK_CONTAINER(button), image);
 	gtk_widget_show(image);
+	g_signal_connect(G_OBJECT(button), "clicked",
+			 G_CALLBACK(layout_color_button_press_cb), lw);
 	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
 
-	gtk_widget_set_sensitive(GTK_BIN(button)->child, FALSE);
+#ifdef HAVE_LCMS
+	enable = (lw->image) ? lw->image->color_profile_enable : FALSE;
+#else
+	enable = FALSE;
+#endif
+	gtk_widget_set_sensitive(image, enable);
 
 	return button;
 }
+#endif
 /*
  *-----------------------------------------------------------------------------
  * write button
@@ -550,9 +560,7 @@
 void layout_status_update_image(LayoutWindow *lw)
 {
 	guint64 n;
-	gchar *image_profile;
-	gchar *screen_profile;
-	
+
 	if (!layout_valid(&lw) || !lw->image) return;
 
 	n = layout_list_count(lw, NULL);
@@ -600,23 +608,6 @@
 		gtk_label_set_text(GTK_LABEL(lw->info_details), text);
 		g_free(text);
 		}
-	
-	if (layout_image_color_profile_get_status(lw, &image_profile, &screen_profile))
-		{
-		gchar *buf;
-		gtk_widget_set_sensitive(GTK_BIN(lw->info_color)->child, TRUE);
-		buf = g_strdup_printf(_("Image profile: %s\nScreen profile: %s"), image_profile, screen_profile);
-		/* FIXME: not sure if a tooltip is the best form of presentation */
-		gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_color), buf);
-		g_free(image_profile);
-		g_free(screen_profile);
-		g_free(buf);
-		}
-	else
-		{
-		gtk_widget_set_sensitive(GTK_BIN(lw->info_color)->child, FALSE);
-		gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_color), NULL);
-		}
 }
 
 void layout_status_update_all(LayoutWindow *lw)
@@ -688,13 +679,9 @@
 	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));
@@ -710,7 +697,6 @@
 		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));
@@ -1644,7 +1630,6 @@
 	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:48:48 2009 +0900
+++ b/src/layout_image.c	Fri May 01 15:49:32 2009 +0900
@@ -1081,6 +1081,14 @@
 	if (!layout_valid(&lw)) return;
 
 	image_color_profile_set_use(lw->image, enable);
+
+//	if (lw->info_color)
+//		{
+#ifndef HAVE_LCMS
+//		enable = FALSE;
+#endif
+//		gtk_widget_set_sensitive(GTK_BIN(lw->info_color)->child, enable);
+//		}
 }
 
 gboolean layout_image_color_profile_get_use(LayoutWindow *lw)
@@ -1090,11 +1098,11 @@
 	return image_color_profile_get_use(lw->image);
 }
 
-gboolean layout_image_color_profile_get_status(LayoutWindow *lw, gchar **image_profile, gchar **screen_profile)
+gint layout_image_color_profile_get_from_image(LayoutWindow *lw)
 {
-	if (!layout_valid(&lw)) return FALSE;
+	if (!layout_valid(&lw)) return COLOR_PROFILE_NONE;
 
-	return image_color_profile_get_status(lw->image, image_profile, screen_profile);
+	return image_color_profile_get_from_image(lw->image);
 }
 
 /*
--- a/src/layout_image.h	Fri May 01 15:48:48 2009 +0900
+++ b/src/layout_image.h	Fri May 01 15:49:32 2009 +0900
@@ -36,7 +36,7 @@
 				    gboolean *use_image);
 void layout_image_color_profile_set_use(LayoutWindow *lw, gint enable);
 gboolean layout_image_color_profile_get_use(LayoutWindow *lw);
-gboolean layout_image_color_profile_get_status(LayoutWindow *lw, gchar **image_profile, gchar **screen_profile);
+gint layout_image_color_profile_get_from_image(LayoutWindow *lw);
 
 
 const gchar *layout_image_get_path(LayoutWindow *lw);
--- a/src/typedefs.h	Fri May 01 15:48:48 2009 +0900
+++ b/src/typedefs.h	Fri May 01 15:49:32 2009 +0900
@@ -627,7 +627,6 @@
 	GtkWidget *info_box;
 	GtkWidget *info_progress_bar;
 	GtkWidget *info_sort;
-	GtkWidget *info_color;
 	GtkWidget *info_status;
 	GtkWidget *info_details;
 	GtkWidget *info_zoom;