aboutsummaryrefslogtreecommitdiff
path: root/libstorycode/presentation.c
diff options
context:
space:
mode:
Diffstat (limited to 'libstorycode/presentation.c')
-rw-r--r--libstorycode/presentation.c220
1 files changed, 0 insertions, 220 deletions
diff --git a/libstorycode/presentation.c b/libstorycode/presentation.c
deleted file mode 100644
index 925f011..0000000
--- a/libstorycode/presentation.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * presentation.c
- *
- * Copyright © 2019 Thomas White <taw@bitwiz.org.uk>
- *
- * This file is part of Colloquium.
- *
- * Colloquium is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <stdio.h>
-#include <gio/gio.h>
-
-#ifdef HAVE_PANGO
-#include <pango/pango.h>
-#endif
-
-#include "presentation.h"
-#include "stylesheet.h"
-#include "slide.h"
-#include "narrative.h"
-#include "imagestore.h"
-#include "storycode.h"
-
-struct _presentation
-{
- Stylesheet *stylesheet;
- Narrative *narrative;
- ImageStore *imagestore;
- int n_slides;
- Slide **slides;
- int max_slides;
- int saved;
- const char *language;
-};
-
-
-Presentation *presentation_new()
-{
- Presentation *p;
- p = malloc(sizeof(*p));
- if ( p == NULL ) return NULL;
- p->stylesheet = NULL;
- p->narrative = NULL;
- p->slides = NULL;
- p->n_slides = 0;
- p->max_slides = 0;
- p->imagestore = NULL;
- p->saved = 1;
-#ifdef HAVE_PANGO
- p->language = pango_language_to_string(pango_language_get_default());
-#else
- p->language = NULL;
-#endif
- return p;
-}
-
-
-Presentation *presentation_load(GFile *file)
-{
- GBytes *bytes;
- const char *text;
- size_t len;
- Presentation *p;
-
- bytes = g_file_load_bytes(file, NULL, NULL, NULL);
- if ( bytes == NULL ) return NULL;
-
- text = g_bytes_get_data(bytes, &len);
- p = storycode_parse_presentation(text);
- g_bytes_unref(bytes);
- if ( p == NULL ) return NULL;
-
- p->imagestore = imagestore_new("."); /* FIXME: From app config */
- imagestore_set_parent(p->imagestore, g_file_get_parent(file));
- return p;
-}
-
-
-int presentation_save(Presentation *p, GFile *file)
-{
- /* FIXME: Implementation */
- return 1;
-}
-
-
-void presentation_set_unsaved(Presentation *p)
-{
- p->saved = 0;
-}
-
-
-int presentation_get_unsaved(Presentation *p)
-{
- return !p->saved;
-}
-
-
-void presentation_free(Presentation *p)
-{
- /* FIXME: Free narrative, slides, imagestore */
- free(p);
-}
-
-
-void presentation_add_stylesheet(Presentation *p, Stylesheet *ss)
-{
- assert(p->stylesheet == NULL);
- p->stylesheet = ss;
-}
-
-
-void presentation_add_narrative(Presentation *p, Narrative *n)
-{
- assert(p->narrative == NULL);
- p->narrative = n;
-}
-
-
-void presentation_add_slide(Presentation *p, Slide *s)
-{
- assert(p->n_slides <= p->max_slides);
- if ( p->n_slides == p->max_slides ) {
- Slide **nslides = realloc(p->slides,
- (p->max_slides+8)*sizeof(Slide *));
- if ( nslides == NULL ) {
- fprintf(stderr, "Failed to allocate memory for slide\n");
- return;
- }
- p->slides = nslides;
- p->max_slides += 8;
- }
-
- p->slides[p->n_slides++] = s;
-}
-
-
-void presentation_insert_slide(Presentation *p, Slide *s, int pos)
-{
- int i;
- presentation_add_slide(p, NULL);
- assert(pos < p->n_slides);
- for ( i=p->n_slides-1; i>pos+1; i-- ) {
- p->slides[i] = p->slides[i-1];
- }
- p->slides[pos] = s;
-}
-
-
-int presentation_get_num_slides(Presentation *p)
-{
- return p->n_slides;
-}
-
-
-Slide *presentation_get_slide_by_number(Presentation *p, int i)
-{
- if ( i >= p->n_slides ) return NULL;
- if ( i < 0 ) return NULL;
- return p->slides[i];
-}
-
-
-signed int presentation_get_slide_number(Presentation *p, Slide *s)
-{
- int i;
- if ( p == NULL ) return -1;
- for ( i=0; i<p->n_slides; i++ ) {
- if ( s == p->slides[i] ) return i;
- }
- return -1;
-}
-
-
-Stylesheet *presentation_get_stylesheet(Presentation *p)
-{
- if ( p == NULL ) return NULL;
- return p->stylesheet;
-}
-
-
-Narrative *presentation_get_narrative(Presentation *p)
-{
- if ( p == NULL ) return NULL;
- return p->narrative;
-}
-
-
-const char *presentation_get_language(Presentation *p)
-{
- if ( p == NULL ) return NULL;
- return p->language;
-}
-
-
-ImageStore *presentation_get_imagestore(Presentation *p)
-{
- if ( p == NULL ) return NULL;
- return p->imagestore;
-}