summaryrefslogtreecommitdiff
path: root/deck.c
diff options
context:
space:
mode:
Diffstat (limited to 'deck.c')
-rw-r--r--deck.c33
1 files changed, 19 insertions, 14 deletions
diff --git a/deck.c b/deck.c
index be2558a..71cde5b 100644
--- a/deck.c
+++ b/deck.c
@@ -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;
}