X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=blobdiff_plain;f=src%2Fbar_histogram.c;h=e3cbe9c3e94b0462b6b264aabdbef08f9aab40a5;hp=56ab973a2226e1efb98a4be32da7e2da9e0e0309;hb=db38d12f83128e9890ce2d2c7acc5ad62062bc7e;hpb=e436ea53511e1dadab981af18b237fee83fde39b diff --git a/src/bar_histogram.c b/src/bar_histogram.c index 56ab973a..e3cbe9c3 100644 --- a/src/bar_histogram.c +++ b/src/bar_histogram.c @@ -81,18 +81,18 @@ static gboolean bar_pane_histogram_update_cb(gpointer data) phd->idle_id = 0; phd->need_update = FALSE; - + gtk_widget_queue_draw_area(GTK_WIDGET(phd->drawing_area), 0, 0, phd->histogram_width, phd->histogram_height); - + if (phd->fd == NULL) return FALSE; histmap = histmap_get(phd->fd); - + if (!histmap) { histmap_start_idle(phd->fd); return FALSE; } - + phd->pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, 8, phd->histogram_width, phd->histogram_height); gdk_pixbuf_fill(phd->pixbuf, 0xffffffff); histogram_draw(phd->histogram, histmap, phd->pixbuf, 0, 0, phd->histogram_width, phd->histogram_height); @@ -145,14 +145,14 @@ static gboolean bar_pane_histogram_draw_cb(GtkWidget *widget, cairo_t *cr, gpoin { PaneHistogramData *phd = data; if (!phd) return TRUE; - + if (phd->need_update) { bar_pane_histogram_update(phd); } - + if (!phd->pixbuf) return TRUE; - + gdk_cairo_set_source_pixbuf(cr, phd->pixbuf, 0, 0); cairo_paint (cr); @@ -164,14 +164,14 @@ static gboolean bar_pane_histogram_expose_event_cb(GtkWidget *widget, GdkEventEx { PaneHistogramData *phd = data; if (!phd) return TRUE; - + if (phd->need_update) { bar_pane_histogram_update(phd); } - + if (!phd->pixbuf) return TRUE; - + cairo_t *cr = gdk_cairo_create(gtk_widget_get_window(widget)); gdk_cairo_set_source_pixbuf (cr, phd->pixbuf, 0, 0); cairo_paint (cr); @@ -193,7 +193,7 @@ static void bar_pane_histogram_size_cb(GtkWidget *widget, GtkAllocation *allocat static void bar_pane_histogram_destroy(GtkWidget *widget, gpointer data) { PaneHistogramData *phd = data; - + if (phd->idle_id) g_source_remove(phd->idle_id); file_data_unregister_notify_func(bar_pane_histogram_notify_cb, phd); @@ -225,7 +225,7 @@ static void bar_pane_histogram_popup_mode_cb(GtkWidget *widget, gpointer data) { PaneHistogramData *phd = data; gint logmode; - + if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) return; if (!phd) return; @@ -251,9 +251,9 @@ static GtkWidget *bar_pane_histogram_menu(PaneHistogramData *phd) menu_item_add_radio(menu, _("Histogram on _Blue"), GINT_TO_POINTER(HCHAN_B), (channel == HCHAN_B), G_CALLBACK(bar_pane_histogram_popup_channels_cb), phd); menu_item_add_radio(menu, _("_Histogram on RGB"), GINT_TO_POINTER(HCHAN_RGB), (channel == HCHAN_RGB), G_CALLBACK(bar_pane_histogram_popup_channels_cb), phd); menu_item_add_radio(menu, _("Histogram on _Value"), GINT_TO_POINTER(HCHAN_MAX), (channel == HCHAN_MAX), G_CALLBACK(bar_pane_histogram_popup_channels_cb), phd); - + menu_item_add_divider(menu); - + menu_item_add_radio(menu, _("Li_near Histogram"), GINT_TO_POINTER(0), (mode == 0), G_CALLBACK(bar_pane_histogram_popup_mode_cb), phd); menu_item_add_radio(menu, _("L_og Histogram"), GINT_TO_POINTER(1), (mode == 1), G_CALLBACK(bar_pane_histogram_popup_mode_cb), phd); @@ -282,7 +282,7 @@ static GtkWidget *bar_pane_histogram_new(const gchar *id, const gchar *title, gi PaneHistogramData *phd; phd = g_new0(PaneHistogramData, 1); - + phd->pane.pane_set_fd = bar_pane_histogram_set_fd; phd->pane.pane_write_config = bar_pane_histogram_write_config; phd->pane.title = bar_pane_expander_title(title); @@ -290,7 +290,7 @@ static GtkWidget *bar_pane_histogram_new(const gchar *id, const gchar *title, gi phd->pane.type = PANE_HISTOGRAM; phd->pane.expanded = expanded; - + phd->histogram = histogram_new(); histogram_set_channel(phd->histogram, histogram_channel); @@ -301,7 +301,7 @@ static GtkWidget *bar_pane_histogram_new(const gchar *id, const gchar *title, gi g_object_set_data(G_OBJECT(phd->widget), "pane_data", phd); g_signal_connect(G_OBJECT(phd->widget), "destroy", G_CALLBACK(bar_pane_histogram_destroy), phd); - + gtk_widget_set_size_request(GTK_WIDGET(phd->widget), -1, height); @@ -316,7 +316,7 @@ static GtkWidget *bar_pane_histogram_new(const gchar *id, const gchar *title, gi g_signal_connect(G_OBJECT(phd->drawing_area), "expose_event", G_CALLBACK(bar_pane_histogram_expose_event_cb), phd); #endif - + gtk_box_pack_start(GTK_BOX(phd->widget), phd->drawing_area, TRUE, TRUE, 0); gtk_widget_show(phd->drawing_area); gtk_widget_add_events(phd->drawing_area, GDK_BUTTON_PRESS_MASK); @@ -353,7 +353,7 @@ GtkWidget *bar_pane_histogram_new_from_config(const gchar **attribute_names, con log_printf("unknown attribute %s = %s\n", option, value); } - + bar_pane_translate_title(PANE_HISTOGRAM, id, &title); ret = bar_pane_histogram_new(id, title, height, expanded, histogram_channel, histogram_mode); g_free(title); @@ -381,11 +381,11 @@ void bar_pane_histogram_update_from_config(GtkWidget *pane, const gchar **attrib if (READ_BOOL_FULL("expanded", phd->pane.expanded)) continue; if (READ_INT_FULL("histogram_channel", histogram_channel)) continue; if (READ_INT_FULL("histogram_mode", histogram_mode)) continue; - + log_printf("unknown attribute %s = %s\n", option, value); } - + histogram_set_channel(phd->histogram, histogram_channel); histogram_set_mode(phd->histogram, histogram_mode);