diff options
author | Thomas White <taw@bitwiz.me.uk> | 2019-05-02 22:59:36 +0200 |
---|---|---|
committer | Thomas White <taw@bitwiz.me.uk> | 2019-05-02 23:04:23 +0200 |
commit | 5e6942d40f897bf119fef021c45ac2d141189c11 (patch) | |
tree | f431db1c5f7b118d6427c094cd481cbdadcaffe8 | |
parent | 1dd24cf19a92b317e791420417cd5dbb282bc64b (diff) |
Add slide_delete_item()
-rw-r--r-- | libstorycode/slide.c | 15 | ||||
-rw-r--r-- | libstorycode/slide.h | 2 |
2 files changed, 17 insertions, 0 deletions
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; i<s->n_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); |