-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtypes.h
242 lines (214 loc) · 6.2 KB
/
types.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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
/* See LICENSE file for license and copyright information */
#ifndef TYPES_H
#define TYPES_H
#include <girara/datastructures.h>
#include "macros.h"
/**
* Document
*/
typedef struct zathura_document_s zathura_document_t;
/**
* Page
*/
typedef struct zathura_page_s zathura_page_t;
/**
* Zathura
*/
typedef struct zathura_s zathura_t;
/**
* Plugin manager
*/
typedef struct zathura_plugin_manager_s zathura_plugin_manager_t;
/**
* Error types
*/
typedef enum zathura_plugin_error_e
{
ZATHURA_ERROR_OK, /**< No error occured */
ZATHURA_ERROR_UNKNOWN, /**< An unknown error occured */
ZATHURA_ERROR_OUT_OF_MEMORY, /**< Out of memory */
ZATHURA_ERROR_NOT_IMPLEMENTED, /**< The called function has not been implemented */
ZATHURA_ERROR_INVALID_ARGUMENTS, /**< Invalid arguments have been passed */
ZATHURA_ERROR_INVALID_PASSWORD /**< The provided password is invalid */
} zathura_error_t;
/**
* Possible information entry types
*/
typedef enum zathura_document_information_type_e
{
ZATHURA_DOCUMENT_INFORMATION_TITLE, /**< Title of the document */
ZATHURA_DOCUMENT_INFORMATION_AUTHOR, /**< Author of the document */
ZATHURA_DOCUMENT_INFORMATION_SUBJECT, /**< Subject of the document */
ZATHURA_DOCUMENT_INFORMATION_KEYWORDS, /**< Keywords of the document */
ZATHURA_DOCUMENT_INFORMATION_CREATOR, /**< Creator of the document */
ZATHURA_DOCUMENT_INFORMATION_PRODUCER, /**< Producer of the document */
ZATHURA_DOCUMENT_INFORMATION_CREATION_DATE, /**< Creation data */
ZATHURA_DOCUMENT_INFORMATION_MODIFICATION_DATE, /**< Modification data */
ZATHURA_DOCUMENT_INFORMATION_OTHER /**< Any other information */
} zathura_document_information_type_t;
/**
* Plugin
*/
typedef struct zathura_plugin_s zathura_plugin_t;
/**
* Document information entry
*
* Represents a single entry in the returned list from the \ref
* zathura_document_get_information function
*/
typedef struct zathura_document_information_entry_s zathura_document_information_entry_t;
/**
* Image buffer
*/
typedef struct zathura_image_buffer_s
{
unsigned char* data; /**< Image buffer data */
unsigned int height; /**< Height of the image */
unsigned int width; /**< Width of the image */
unsigned int rowstride; /**< Rowstride of the image */
} zathura_image_buffer_t;
/**
* Adjust mode
*/
typedef enum zathura_adjust_mode_e
{
ZATHURA_ADJUST_NONE, /**< No adjustment */
ZATHURA_ADJUST_BESTFIT, /**< Adjust to best-fit */
ZATHURA_ADJUST_WIDTH /**< Adjust to width */
} zathura_adjust_mode_t;
/**
* Creates an image buffer
*
* @param width Width of the image stored in the buffer
* @param height Height of the image stored in the buffer
* @return Image buffer or NULL if an error occured
*/
zathura_image_buffer_t* zathura_image_buffer_create(unsigned int width, unsigned int height);
/**
* Frees the image buffer
*
* @param buffer The image buffer
*/
void zathura_image_buffer_free(zathura_image_buffer_t* buffer);
/**
* Rectangle structure.
* The coordinate system has its origin in the left upper corner. The x axes
* goes to the right, the y access goes down.
*/
typedef struct zathura_rectangle_s
{
double x1; /**< X coordinate of point 1 */
double y1; /**< Y coordinate of point 1 */
double x2; /**< X coordinate of point 2 */
double y2; /**< Y coordinate of point 2 */
} zathura_rectangle_t;
/**
* Image structure
*/
typedef struct zathura_image_s
{
zathura_rectangle_t position; /**< Coordinates of the image */
void* data; /**< Custom data of the plugin */
} zathura_image_t;
/**
* Possible link types
*/
typedef enum zathura_link_type_e
{
ZATHURA_LINK_INVALID, /**< Invalid type */
ZATHURA_LINK_NONE, /**< No action */
ZATHURA_LINK_GOTO_DEST, /**< Links to a page */
ZATHURA_LINK_GOTO_REMOTE, /**< Links to a page */
ZATHURA_LINK_URI, /**< Links to an external source */
ZATHURA_LINK_LAUNCH, /**< Links to an external source */
ZATHURA_LINK_NAMED /**< Links to an external source */
} zathura_link_type_t;
typedef enum zathura_link_destination_type_e
{
ZATHURA_LINK_DESTINATION_UNKNOWN,
ZATHURA_LINK_DESTINATION_XYZ,
ZATHURA_LINK_DESTINATION_FIT,
ZATHURA_LINK_DESTINATION_FITH,
ZATHURA_LINK_DESTINATION_FITV,
ZATHURA_LINK_DESTINATION_FITR,
ZATHURA_LINK_DESTINATION_FITB,
ZATHURA_LINK_DESTINATION_FITBH,
ZATHURA_LINK_DESTINATION_FITBV
} zathura_link_destination_type_t;
typedef struct zathura_link_target_s
{
zathura_link_destination_type_t destination_type;
char* value; /**< Value */
unsigned int page_number; /**< Page number */
double left; /**< Left coordinate */
double right; /**< Right coordinate */
double top; /**< Top coordinate */
double bottom; /**< Bottom coordinate */
double scale; /**< Scale */
} zathura_link_target_t;
/**
* Link
*/
typedef struct zathura_link_s zathura_link_t;
/**
* Index element
*/
typedef struct zathura_index_element_s
{
char* title; /**< Title of the element */
zathura_link_t* link;
} zathura_index_element_t;
/**
* Form type
*/
typedef enum zathura_form_type_e
{
ZATHURA_FORM_CHECKBOX, /**< Checkbox */
ZATHURA_FORM_TEXTFIELD /**< Textfield */
} zathura_form_type_t;
/**
* Form element
*/
typedef struct zathura_form_s
{
zathura_rectangle_t position; /**< Position */
zathura_form_type_t type; /**< Type */
} zathura_form_t;
/**
* Create new index element
*
* @param title Title of the index element
* @return Index element
*/
zathura_index_element_t* zathura_index_element_new(const char* title);
/**
* Free index element
*
* @param index The index element
*/
void zathura_index_element_free(zathura_index_element_t* index);
/**
* Creates a list that should be used to store \ref
* zathura_document_information_entry_t entries
*
* @return A list or NULL if an error occured
*/
girara_list_t* zathura_document_information_entry_list_new();
/**
* Creates a new document information entry
*
* @param type The type
* @param value The value
*
* @return A new entry or NULL if an error occured
*/
zathura_document_information_entry_t*
zathura_document_information_entry_new(zathura_document_information_type_t
type, const char* value);
/**
* Frees a document information entry
*
* @param entry The entry that should be freed
*/
void zathura_document_information_entry_free(zathura_document_information_entry_t* entry);
#endif // TYPES_H