aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.me.uk>2019-05-02 22:59:36 +0200
committerThomas White <taw@bitwiz.me.uk>2019-05-02 23:04:23 +0200
commit5e6942d40f897bf119fef021c45ac2d141189c11 (patch)
treef431db1c5f7b118d6427c094cd481cbdadcaffe8
parent1dd24cf19a92b317e791420417cd5dbb282bc64b (diff)
Add slide_delete_item()
-rw-r--r--libstorycode/slide.c15
-rw-r--r--libstorycode/slide.h2
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);