-
Notifications
You must be signed in to change notification settings - Fork 1
/
app.h
79 lines (56 loc) · 1.54 KB
/
app.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*
* libxlsxwriter
*
* Copyright 2014-2018, John McNamara, jmcnamara@cpan.org. See LICENSE.txt.
*
* app - A libxlsxwriter library for creating Excel XLSX app files.
*
*/
#ifndef __LXW_APP_H__
#define __LXW_APP_H__
#include <stdint.h>
#include <string.h>
#include "workbook.h"
#include "common.h"
/* Define the queue.h TAILQ structs for the App structs. */
STAILQ_HEAD(lxw_heading_pairs, lxw_heading_pair);
STAILQ_HEAD(lxw_part_names, lxw_part_name);
typedef struct lxw_heading_pair {
char *key;
char *value;
STAILQ_ENTRY (lxw_heading_pair) list_pointers;
} lxw_heading_pair;
typedef struct lxw_part_name {
char *name;
STAILQ_ENTRY (lxw_part_name) list_pointers;
} lxw_part_name;
/* Struct to represent an App object. */
typedef struct lxw_app {
FILE *file;
struct lxw_heading_pairs *heading_pairs;
struct lxw_part_names *part_names;
lxw_doc_properties *properties;
uint32_t num_heading_pairs;
uint32_t num_part_names;
} lxw_app;
/* *INDENT-OFF* */
#ifdef __cplusplus
extern "C" {
#endif
/* *INDENT-ON* */
lxw_app *lxw_app_new();
void lxw_app_free(lxw_app *app);
void lxw_app_assemble_xml_file(lxw_app *self);
void lxw_app_add_part_name(lxw_app *self, const char *name);
void lxw_app_add_heading_pair(lxw_app *self, const char *key,
const char *value);
/* Declarations required for unit testing. */
#ifdef TESTING
STATIC void _app_xml_declaration(lxw_app *self);
#endif /* TESTING */
/* *INDENT-OFF* */
#ifdef __cplusplus
}
#endif
/* *INDENT-ON* */
#endif /* __LXW_APP_H__ */