summaryrefslogtreecommitdiff
path: root/src/layout.c
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2015-07-19 10:34:04 +0100
committerMichael Drake <tlsa@netsurf-browser.org>2015-07-19 10:34:04 +0100
commit244ff9f08dd8c83baba4d44401eae0e8ebb58246 (patch)
treefed63c5bdb37d8f2dc6afa66748bb5a99050944d /src/layout.c
parentc721328b2ce5775a6dbee4b8f37a8c949394c8d8 (diff)
downloadlibnslayout-244ff9f08dd8c83baba4d44401eae0e8ebb58246.tar.gz
libnslayout-244ff9f08dd8c83baba4d44401eae0e8ebb58246.tar.bz2
Add basic buildsystem.
Diffstat (limited to 'src/layout.c')
-rw-r--r--src/layout.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/layout.c b/src/layout.c
new file mode 100644
index 0000000..dab4855
--- /dev/null
+++ b/src/layout.c
@@ -0,0 +1,55 @@
+/*
+ * This file is part of LibNSLayout
+ * Licensed under the ISC License, http://opensource.org/licenses/ISC
+ * Copyright 2015 Michael Drake <tlsa@netsurf-browser.org>
+ */
+
+#include <assert.h>
+#include <stdlib.h>
+
+#include "layout.h"
+
+
+/* Publically exported function, documented in include/libnslayout/nslayout.h */
+nslayout_error nslayout_layout_create(
+ dom_document *doc,
+ css_select_ctx *css_ctx,
+ css_media_type *media,
+ nslayout_callback *cb,
+ void *pw,
+ nslayout_layout **layout)
+{
+ nslayout_layout *l;
+
+ assert(doc != NULL);
+ assert(css_ctx != NULL);
+ assert(media != NULL);
+ assert(cb != NULL);
+ assert(pw != NULL);
+
+ l = calloc(1, sizeof(nslayout_layout));
+ if (l == NULL) {
+ return NSLAYOUT_NO_MEM;
+ }
+
+ /* TODO: Decide: ownership will probably be passed to libnslayout */
+ l->doc = doc;
+ l->css_ctx = css_ctx;
+ l->media = media;
+ l->cb = cb;
+ l->pw = pw;
+
+ *layout = l;
+ return NSLAYOUT_OK;
+}
+
+
+/* Publically exported function, documented in include/libnslayout/nslayout.h */
+nslayout_error nslayout_layout_destroy(
+ nslayout_layout *layout)
+{
+ /* TODO: free/unref the stuff we own in the layout */
+
+ free(layout);
+ return NSLAYOUT_OK;
+}