Save the stylesheet
[colloquium.git] / src / presentation.h
index b1f6e2c..57542ca 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * presentation.h
  *
- * Copyright © 2013-2014 Thomas White <taw@bitwiz.org.uk>
+ * Copyright © 2013-2018 Thomas White <taw@bitwiz.org.uk>
  *
  * This file is part of Colloquium.
  *
 #include <config.h>
 #endif
 
-#include <cairo.h>
-#include <gtk/gtk.h>
-
 struct presentation;
-struct slide;
 
 #include "imagestore.h"
 #include "sc_parse.h"
 #include "slideshow.h"
 #include "narrative_window.h"
 #include "slide_window.h"
-
-struct slide
-{
-       struct presentation *parent;
-       struct slide_template *st;
-
-       SCBlock *scblocks;
-       SCBlock *notes;
-};
+#include "stylesheet.h"
 
 struct menu_pl;
 
 struct presentation
 {
-       char             *filename;
-       char             *titlebar;  /* basename(filename) or "(untitled)" */
+       char             *uri;
+       GFile            *stylesheet_from;
        int               completely_empty;
+       int               saved;
+       PangoLanguage    *lang;
 
        ImageStore       *is;
 
        NarrativeWindow  *narrative_window;
        SlideWindow      *slidewindow;
 
-       struct notes     *notes;
        struct pr_clock  *clock;
-       struct slide_sorter *slide_sorter;
 
        /* This is the "native" size of the slide.  It only exists to give
         * font size some meaning in the context of a somewhat arbitrary DPI */
        double            slide_width;
        double            slide_height;
 
-       unsigned int      num_slides;
-       struct slide    **slides;
-
-       SCBlock          *stylesheet;
        SCBlock          *scblocks;
-
+       Stylesheet       *stylesheet;
 };
 
 
-extern struct presentation *new_presentation(void);
+extern struct presentation *new_presentation(const char *imagestore);
 extern void free_presentation(struct presentation *p);
 
 extern char *get_titlebar_string(struct presentation *p);
 
-extern struct slide *new_slide(void);
-extern struct slide *add_slide(struct presentation *p, int pos);
-extern int insert_slide(struct presentation *p, struct slide *s, int pos);
-extern void free_slide(struct slide *s);
-extern void delete_slide(struct presentation *p, struct slide *s);
-
-extern char *packed_sc(struct frame *fr);
-
-extern int slide_number(struct presentation *p, struct slide *s);
-
-extern int load_presentation(struct presentation *p, const char *filename);
-extern int save_presentation(struct presentation *p, const char *filename);
+extern int slide_number(struct presentation *p, SCBlock *sl);
+extern int num_slides(struct presentation *p);
+extern SCBlock *first_slide(struct presentation *p);
+extern SCBlock *last_slide(struct presentation *p);
+extern SCBlock *next_slide(struct presentation *p, SCBlock *sl);
+extern SCBlock *prev_slide(struct presentation *p, SCBlock *sl);
 
-extern void set_edit(struct presentation *p, struct slide *s);
+extern int load_presentation(struct presentation *p, GFile *file);
+extern int save_presentation(struct presentation *p, GFile *file, GFile *ssfile);
 
 #define UNUSED __attribute__((unused))