From 5e6942d40f897bf119fef021c45ac2d141189c11 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 2 May 2019 22:59:36 +0200 Subject: Add slide_delete_item() --- libstorycode/slide.c | 15 +++++++++++++++ libstorycode/slide.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/libstorycode/slide.c b/libstorycode/slide.c index f5c4c9c..fc7b24c 100644 --- a/libstorycode/slide.c +++ b/libstorycode/slide.c @@ -57,6 +57,21 @@ void slide_free(Slide *s) } +void slide_delete_item(Slide *s, SlideItem *item) +{ + int i; + for ( i=0; in_items; i++ ) { + if ( &s->items[i] == item ) { + memmove(&s->items[i], &s->items[i+1], + (s->n_items-i-1)*sizeof(SlideItem)); + s->n_items--; + return; + } + } + fprintf(stderr, "Didn't find slide item to delete!\n"); +} + + static SlideItem *add_item(Slide *s) { SlideItem *new_items; diff --git a/libstorycode/slide.h b/libstorycode/slide.h index 3957f9e..3dbd20e 100644 --- a/libstorycode/slide.h +++ b/libstorycode/slide.h @@ -37,6 +37,8 @@ typedef struct _slideitem SlideItem; extern Slide *slide_new(void); extern void slide_free(Slide *s); +extern void slide_delete_item(Slide *s, SlideItem *item); + extern SlideItem *slide_add_image(Slide *s, char *filename, struct frame_geom geom); extern SlideItem *slide_add_text(Slide *s, char **text, int n_text, struct frame_geom geom, enum alignment alignment); -- cgit v1.2.3