diff options
Diffstat (limited to 'pencil_test.c')
-rw-r--r-- | pencil_test.c | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/pencil_test.c b/pencil_test.c new file mode 100644 index 0000000..b1c26d4 --- /dev/null +++ b/pencil_test.c @@ -0,0 +1,104 @@ +/* + * This file is part of Pencil + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license + * Copyright 2005 James Bursa <james@semichrome.net> + */ + +#include <assert.h> +#include <stdio.h> +#include <oslib/osfile.h> +#include <rufl.h> +#include "pencil.h" + + +static void test_pencil(void); + + +int main(int argc, char *argv[]) +{ + rufl_code code; + + code = rufl_init(); + if (code != rufl_OK) { + printf("rufl_init failed: %i\n", code); + return 1; + } + + test_pencil(); + + rufl_quit(); + + return 0; +} + + +void test_pencil(void) +{ + struct pencil_diagram *diagram; + pencil_code code; + int path[] = {2, 100, 40, 8, 100, 400, 8, 300, 300, 0}; + char utf8_test[] = "Hello, world! ὕαλον " + "Uherské Hradiště. 𐀀"; + char *drawfile_buffer; + size_t drawfile_size; + os_error *error; + + diagram = pencil_create(); + if (!diagram) { + printf("pencil_create failed\n"); + return; + } + + code = pencil_text(diagram, + 100, 40, + "Homerton", rufl_REGULAR, + 320, + "Hello, world!", 13, + 0x000000); + if (code != pencil_OK) { + printf("pencil_text failed: %i\n", code); + return; + } + + code = pencil_path(diagram, + path, sizeof path / sizeof path[0], + 0x00ff00, 0x0000ff, + 5, pencil_JOIN_ROUND, + pencil_CAP_BUTT, pencil_CAP_TRIANGLE, + 15, 20, + false, pencil_SOLID); + if (code != pencil_OK) { + printf("pencil_path failed: %i\n", code); + return; + } + + code = pencil_text(diagram, + 100, 400, + "NewHall", rufl_REGULAR, + 320, + utf8_test, sizeof utf8_test, + 0xff0000); + if (code != pencil_OK) { + printf("pencil_text failed: %i\n", code); + return; + } + + pencil_dump(diagram); + + code = pencil_save_drawfile(diagram, "Pencil-Test", + &drawfile_buffer, &drawfile_size); + if (code != pencil_OK) { + printf("pencil_save_drawfile failed: %i\n", code); + return; + } + assert(drawfile_buffer); + + error = xosfile_save_stamped("DrawFile", osfile_TYPE_DRAW, + drawfile_buffer, drawfile_buffer + drawfile_size); + if (error) { + printf("xosfile_save_stamped failed: 0x%x: %s\n", + error->errnum, error->errmess); + return; + } +} |