aboutsummaryrefslogtreecommitdiff
path: root/libstorycode/stylesheet.c
diff options
context:
space:
mode:
Diffstat (limited to 'libstorycode/stylesheet.c')
-rw-r--r--libstorycode/stylesheet.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/libstorycode/stylesheet.c b/libstorycode/stylesheet.c
index 3bbddb3..be4db9b 100644
--- a/libstorycode/stylesheet.c
+++ b/libstorycode/stylesheet.c
@@ -568,3 +568,23 @@ const char *stylesheet_get_friendly_name(const char *in)
if ( strcmp(in, "FOOTER") == 0 ) return "Footer";
return in;
}
+
+
+int stylesheet_set_from_storycode(Stylesheet *ss, const char *sc)
+{
+ Stylesheet *ssnew;
+ Narrative *n;
+
+ n = storycode_parse_presentation(sc);
+ if ( n == NULL ) return 1;
+
+ ssnew = narrative_get_stylesheet(n);
+ if ( ssnew == NULL ) return 1;
+
+ narrative_free(n);
+
+ free_style_contents(&ss->top);
+ ss->top = ssnew->top;
+
+ return 0;
+}