From 2cd7252202c10ef8918ce8885cdf26dd5fcf00f5 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Mon, 25 Feb 2019 22:53:33 +0100 Subject: Render slide titles and presentation titles --- libstorycode/slide.c | 64 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 22 deletions(-) (limited to 'libstorycode/slide.c') diff --git a/libstorycode/slide.c b/libstorycode/slide.c index 4ee02c9..809f2cb 100644 --- a/libstorycode/slide.c +++ b/libstorycode/slide.c @@ -62,18 +62,6 @@ static struct slide_item *add_item(Slide *s) } -int slide_add_prestitle(Slide *s, char *prestitle) -{ - struct slide_item *item; - - item = add_item(s); - if ( item == NULL ) return 1; - - item->type = SLIDE_ITEM_PRESTITLE; - return 0; -} - - int slide_add_image(Slide *s, char *filename, struct frame_geom geom) { struct slide_item *item; @@ -89,8 +77,8 @@ int slide_add_image(Slide *s, char *filename, struct frame_geom geom) } -int slide_add_text(Slide *s, char **text, int n_text, struct frame_geom geom, - enum alignment alignment) +int add_text_item(Slide *s, char **text, int n_text, struct frame_geom geom, + enum alignment alignment, enum slide_item_type slide_item) { int i; struct slide_item *item; @@ -98,7 +86,7 @@ int slide_add_text(Slide *s, char **text, int n_text, struct frame_geom geom, item = add_item(s); if ( item == NULL ) return 1; - item->type = SLIDE_ITEM_TEXT; + item->type = slide_item; item->paragraphs = malloc(n_text*sizeof(char *)); if ( item->paragraphs == NULL ) { s->n_items--; @@ -131,17 +119,49 @@ int slide_add_footer(Slide *s) } -int slide_add_slidetitle(Slide *s, char *slidetitle) +int slide_add_text(Slide *s, char **text, int n_text, struct frame_geom geom, + enum alignment alignment) { - struct slide_item *item; + return add_text_item(s, text, n_text, geom, alignment, + SLIDE_ITEM_TEXT); +} - item = add_item(s); - if ( item == NULL ) return 1; - item->type = SLIDE_ITEM_SLIDETITLE; - item->text = slidetitle; +int slide_add_slidetitle(Slide *s, char **text, int n_text) +{ + struct frame_geom geom; + + /* This geometry should never get used by the renderer */ + geom.x.len = 0.0; + geom.x.unit = LENGTH_FRAC; + geom.y.len = 0.0; + geom.y.unit = LENGTH_FRAC; + geom.w.len = 1.0; + geom.w.unit = LENGTH_FRAC; + geom.h.len = 1.0; + geom.h.unit = LENGTH_FRAC; + + return add_text_item(s, text, n_text, geom, ALIGN_INHERIT, + SLIDE_ITEM_SLIDETITLE); +} - return 0; + +int slide_add_prestitle(Slide *s, char **text, int n_text) +{ + struct frame_geom geom; + + /* This geometry should never get used by the renderer */ + geom.x.len = 0.0; + geom.x.unit = LENGTH_FRAC; + geom.y.len = 0.0; + geom.y.unit = LENGTH_FRAC; + geom.w.len = 1.0; + geom.w.unit = LENGTH_FRAC; + geom.h.len = 1.0; + geom.h.unit = LENGTH_FRAC; + + return add_text_item(s, text, n_text, geom, ALIGN_INHERIT, + SLIDE_ITEM_PRESTITLE); } -- cgit v1.2.3