Save the stylesheet
[colloquium.git] / src / stylesheet.h
index 224083a..537b2f9 100644 (file)
@@ -1,11 +1,11 @@
 /*
  * stylesheet.h
  *
- * Colloquium - A tiny presentation program
+ * Copyright © 2013-2018 Thomas White <taw@bitwiz.org.uk>
  *
- * Copyright (c) 2011 Thomas White <taw@bitwiz.org.uk>
+ * This file is part of Colloquium.
  *
- * This program is free software: you can redistribute it and/or modify
+ * 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.
 #include <config.h>
 #endif
 
+#include <gio/gio.h>
+#include <gdk/gdk.h>
 
-#include "loadsave.h"
+typedef struct _stylesheet Stylesheet;
 
+extern Stylesheet *stylesheet_load(GFile *file);
 
-enum justify
-{
-       J_LEFT   = 0,
-       J_CENTER = 1,
-       J_RIGHT  = 2,
-};
+extern int stylesheet_save(Stylesheet *ss, GFile *file);
 
+extern int parse_colour_duo(const char *a, GdkRGBA *col1, GdkRGBA *col2);
 
-enum vert_pos
-{
-       V_TOP     = 0,
-       V_CENTER  = 1,
-       V_BOTTOM  = 2,
-};
+extern char *stylesheet_lookup(Stylesheet *ss, const char *path, const char *key);
 
+extern int stylesheet_set(Stylesheet *ss, const char *path, const char *key,
+                          const char *new_val);
 
-struct style
-{
-       char              *name;
+extern int stylesheet_delete(Stylesheet *ss, const char *path, const char *key);
 
-       double             margin_left;
-       double             margin_right;
-       double             margin_top;
-       double             margin_bottom;
-       double             max_width;
-       int                use_max_width;
-
-       enum justify       halign;
-       enum vert_pos      valign;
-
-       double             offset_x;
-       double             offset_y;
-
-       char              *font;
-       char              *colour;
-       double             alpha;
-};
-
-
-struct _stylesheet
-{
-       struct style **styles;
-       int            n_styles;
-
-       /* Background stuff */
-};
-
-
-typedef struct _stylesheetwindow StylesheetWindow;
-typedef struct _stylesheet StyleSheet;
-struct presentation;
-
-extern StylesheetWindow *open_stylesheet(struct presentation *p);
-
-extern StyleSheet *new_stylesheet();
-extern StyleSheet *load_stylesheet(const char *filename);
-extern int save_stylesheet(StyleSheet *ss, const char *filename);
-
-extern struct style *find_style(StyleSheet *ss, const char *name);
-
-extern void write_stylesheet(StyleSheet *ss, struct serializer *ser);
+extern void stylesheet_free(Stylesheet *ss);
 
 #endif /* STYLESHEET_H */