diff options
Diffstat (limited to 'src/layout.c')
-rw-r--r-- | src/layout.c | 55 |
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; +} |