diff options
Diffstat (limited to 'deck.c')
-rw-r--r-- | deck.c | 33 |
1 files changed, 19 insertions, 14 deletions
@@ -22,9 +22,9 @@ deck_new (DeckChangeNotify notify, return deck; } -static int -get_slide_height (Deck *deck, - GdkRectangle *viewport) +int +deck_get_slide_height (Deck *deck, + GdkRectangle *viewport) { return (viewport->width - 2 * MARGIN) / RATIO; } @@ -40,20 +40,19 @@ deck_paint (Deck *deck, foo_scroll_area_get_viewport (area, &viewport); - height = get_slide_height (deck, &viewport); - - cairo_move_to (cr, MARGIN, MARGIN); + height = deck_get_slide_height (deck, &viewport); for (i = 0; i < N_SLIDES; ++i) { - cairo_move_to (cr, MARGIN, MARGIN + i * (MARGIN + height)); + double x, y, width; + + x = MARGIN; + y = MARGIN + i * (MARGIN + height); + width = viewport.width - 2 * MARGIN; cairo_set_source_rgba (cr, 1, 1, 1, 1); - cairo_rel_line_to (cr, viewport.width - 2 * MARGIN, 0); - cairo_rel_line_to (cr, 0, height); - cairo_rel_line_to (cr, -(viewport.width - 2 * MARGIN), 0); - cairo_close_path (cr); + cairo_rectangle (cr, x, y, width, height); cairo_fill_preserve (cr); @@ -61,6 +60,12 @@ deck_paint (Deck *deck, cairo_set_line_width (cr, 2); cairo_stroke (cr); + cairo_set_source_rgba (cr, (i + 1.0) / N_SLIDES, 0, + 1 - (i + 1.0) / N_SLIDES, 1); + + cairo_rectangle (cr, x + width/2 - 10, y + height/2 - 10, 20, 20); + + cairo_fill (cr); } } @@ -71,7 +76,7 @@ int deck_get_view_slide (Deck *deck, GdkRectangle *viewport) { - int slide_height = get_slide_height (deck, viewport); + int slide_height = deck_get_slide_height (deck, viewport); /* Compute the y-coordinate of the first visible top edge of a slide */ return (viewport->y - MARGIN) / (MARGIN + slide_height) + 1; @@ -85,7 +90,7 @@ deck_get_slide_location (Deck *deck, GdkRectangle *viewport, int nth_slide) { - int slide_height = get_slide_height (deck, viewport); + int slide_height = deck_get_slide_height (deck, viewport); return nth_slide * (MARGIN + slide_height) + MARGIN; } @@ -93,7 +98,7 @@ deck_get_slide_location (Deck *deck, int deck_get_height (Deck *deck, GdkRectangle *viewport) { - int slide_height = get_slide_height (deck, viewport); + int slide_height = deck_get_slide_height (deck, viewport); return N_SLIDES * slide_height + (N_SLIDES + 1) * MARGIN; } |