# HG changeset patch # User zas_ # Date 1210427665 0 # Node ID f335373f44e509526057797b0bdd69077f708803 # Parent 2ccc7d856d55f0c8c03335b88dfd2c4e3e035b13 Display a simple grid with histogram. diff -r 2ccc7d856d55 -r f335373f44e5 src/image-overlay.c --- a/src/image-overlay.c Sat May 10 12:33:52 2008 +0000 +++ b/src/image-overlay.c Sat May 10 13:54:25 2008 +0000 @@ -79,6 +79,7 @@ #define IMAGE_OSD_DEFAULT_DURATION 30 #define HISTOGRAM_HEIGHT 140 +#define HISTOGRAM_WIDTH 256 static void image_osd_timer_schedule(OverlayStateData *osd); @@ -448,7 +449,7 @@ if (with_hist) { histogram_read(osd->histogram, imgpixbuf); - if (width < 266) width = 266; + if (width < HISTOGRAM_WIDTH + 10) width = HISTOGRAM_WIDTH + 10; height += HISTOGRAM_HEIGHT + 5; } @@ -466,8 +467,27 @@ pixbuf_pixel_set(pixbuf, width - 1, height - 1, 0, 0, 0, 0); if (with_hist) - histogram_draw(osd->histogram, pixbuf, 5, height - HISTOGRAM_HEIGHT - 5 , width - 10, HISTOGRAM_HEIGHT); + { + gint x = 5; + gint y = height - HISTOGRAM_HEIGHT - 5; + gint w = width - 10; + gint xoffset = 0; + gint subdiv = 5; + gint c = 160; + gint alpha = 250; + gint i; + for (i = 0; i < subdiv; i++) + { + gint d = (i > 0 ? 0 : 1); + gint div_width = d + w / subdiv; + + pixbuf_set_rect(pixbuf, x + xoffset, y, div_width, HISTOGRAM_HEIGHT, c, c, c, alpha, d, 1, 1, 1); + xoffset += div_width; + } + + histogram_draw(osd->histogram, pixbuf, x, y, w, HISTOGRAM_HEIGHT); + } pixbuf_draw_layout(pixbuf, layout, imd->pr, 5, 5, 0, 0, 0, 255); }