diff src/layout.c @ 1584:0cd2268f500b

improved pixel info, changed the menu entry from "Hide" to "Show", added it on default status bar
author nadvornik
date Sat, 02 May 2009 09:15:56 +0000
parents 2ca277a9845b
children 249b539cc952
line wrap: on
line diff
--- a/src/layout.c	Fri May 01 23:40:01 2009 +0000
+++ b/src/layout.c	Sat May 02 09:15:56 2009 +0000
@@ -52,7 +52,6 @@
 #define TOOLWINDOW_DEF_HEIGHT 450
 
 #define PROGRESS_WIDTH 150
-#define PIXEL_LABEL_WIDTH 130
 #define ZOOM_LABEL_WIDTH 64
 
 #define PANE_DIVIDER_SIZE 10
@@ -605,16 +604,6 @@
 	gtk_box_pack_start(GTK_BOX(hbox), lw->info_sort, FALSE, FALSE, 0);
 	gtk_widget_show(lw->info_sort);
 
-	toolbar = layout_actions_toolbar(lw, TOOLBAR_STATUS);
-	
-	toolbar_frame = gtk_frame_new(NULL);
-	gtk_frame_set_shadow_type(GTK_FRAME(toolbar_frame), GTK_SHADOW_IN);
-	gtk_container_add(GTK_CONTAINER(toolbar_frame), toolbar);
-	gtk_widget_show(toolbar_frame);
-	gtk_widget_show(toolbar);
-
-	if (small_format) gtk_box_pack_end(GTK_BOX(hbox), toolbar_frame, FALSE, FALSE, 0);
-
 	lw->info_status = layout_status_label(NULL, lw->info_box, TRUE, 0, (!small_format));
 
 	if (small_format)
@@ -623,15 +612,24 @@
 		gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
 		gtk_widget_show(hbox);
 		}
-	else
+	lw->info_details = layout_status_label(NULL, hbox, TRUE, 0, TRUE);
+	toolbar = layout_actions_toolbar(lw, TOOLBAR_STATUS);
+	
+	toolbar_frame = gtk_frame_new(NULL);
+	gtk_frame_set_shadow_type(GTK_FRAME(toolbar_frame), GTK_SHADOW_IN);
+	gtk_container_add(GTK_CONTAINER(toolbar_frame), toolbar);
+	gtk_widget_show(toolbar_frame);
+	gtk_widget_show(toolbar);
+	gtk_box_pack_end(GTK_BOX(hbox), toolbar_frame, FALSE, FALSE, 0);
+	lw->info_zoom = layout_status_label(NULL, hbox, FALSE, ZOOM_LABEL_WIDTH, FALSE);
+	if (small_format)
 		{
-		hbox = lw->info_box;
+		hbox = gtk_hbox_new(FALSE, 0);
+		gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
+		gtk_widget_show(hbox);
 		}
-	lw->info_details = layout_status_label(NULL, hbox, TRUE, 0, TRUE);
-	if (!small_format) gtk_box_pack_end(GTK_BOX(hbox), toolbar_frame, 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));
-	lw->info_zoom = layout_status_label(NULL, hbox, FALSE, ZOOM_LABEL_WIDTH, FALSE);
+	lw->info_pixel = layout_status_label(NULL, hbox, FALSE, 0, small_format); /* expand only in small format */
+	if (!lw->options.show_info_pixel) gtk_widget_hide(gtk_widget_get_parent(lw->info_pixel));
 }
 
 /*
@@ -1708,24 +1706,26 @@
 		}
 }
 
-void layout_info_pixel_toggle(LayoutWindow *lw)
+void layout_info_pixel_set(LayoutWindow *lw, gboolean show)
 {
 	GtkWidget *frame;
 	
 	if (!layout_valid(&lw)) return;
 	if (!lw->info_pixel) return;
 
-	lw->options.info_pixel_hidden = !lw->options.info_pixel_hidden;
+	lw->options.show_info_pixel = show;
 
 	frame = gtk_widget_get_parent(lw->info_pixel);
-	if (lw->options.info_pixel_hidden)
+	if (!lw->options.show_info_pixel)
 		{
-		if (GTK_WIDGET_VISIBLE(frame)) gtk_widget_hide(frame);
+		gtk_widget_hide(frame);
 		}
 	else
 		{
-		if (!GTK_WIDGET_VISIBLE(frame)) gtk_widget_show(frame);
+		gtk_widget_show(frame);
 		}
+	
+	g_signal_emit_by_name (lw->image->pr, "update-pixel");
 }
 
 /*
@@ -2230,7 +2230,7 @@
 	WRITE_SEPARATOR();
 
 	WRITE_NL(); WRITE_BOOL(*layout, toolbar_hidden);
-	WRITE_NL(); WRITE_BOOL(*layout, info_pixel_hidden);
+	WRITE_NL(); WRITE_BOOL(*layout, show_info_pixel);
 
 	WRITE_NL(); WRITE_UINT(*layout, image_overlay.state);
 	WRITE_NL(); WRITE_INT(*layout, image_overlay.histogram_channel);
@@ -2301,7 +2301,7 @@
 		if (READ_BOOL(*layout, tools_float)) continue;
 		if (READ_BOOL(*layout, tools_hidden)) continue;
 		if (READ_BOOL(*layout, toolbar_hidden)) continue;
-		if (READ_BOOL(*layout, info_pixel_hidden)) continue;
+		if (READ_BOOL(*layout, show_info_pixel)) continue;
 
 		if (READ_UINT(*layout, image_overlay.state)) continue;
 		if (READ_INT(*layout, image_overlay.histogram_channel)) continue;