summaryrefslogtreecommitdiffstats
path: root/FileManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'FileManager.h')
-rw-r--r--FileManager.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/FileManager.h b/FileManager.h
new file mode 100644
index 0000000..2309190
--- /dev/null
+++ b/FileManager.h
@@ -0,0 +1,39 @@
+#ifndef FILEMANAGER_H_
+#define FILEMANAGER_H_
+
+#include <gtk/gtk.h>
+#include <libxml/xmlwriter.h>
+#include "Triangle.h"
+
+
+class Window;
+
+
+class FileManager
+{
+ private:
+ Window *window;
+
+ gchar *filename;
+ bool dirty;
+
+ // prevent shallow copy
+ FileManager(const FileManager &f);
+ const FileManager& operator=(const FileManager &f);
+
+ bool writeTriangle(xmlTextWriterPtr writer, const Triangle &triangle, float height);
+ bool writeSide(xmlTextWriterPtr writer, const Vertex &v1, const Vertex &v2, float height);
+ bool writeVertex(xmlTextWriterPtr writer, float x, float y, float z);
+ bool writeTexCoords(xmlTextWriterPtr writer, float s, float t);
+
+ public:
+ FileManager(Window *window);
+ virtual ~FileManager();
+
+ bool save(GtkWindow *parent);
+ bool saveAs(GtkWindow *parent);
+
+ bool write();
+};
+
+#endif /*FILEMANAGER_H_*/