mupdf
Loading...
Searching...
No Matches
outline.h
Go to the documentation of this file.
1// Copyright (C) 2004-2025 Artifex Software, Inc.
2//
3// This file is part of MuPDF.
4//
5// MuPDF is free software: you can redistribute it and/or modify it under the
6// terms of the GNU Affero General Public License as published by the Free
7// Software Foundation, either version 3 of the License, or (at your option)
8// any later version.
9//
10// MuPDF is distributed in the hope that it will be useful, but WITHOUT ANY
11// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12// FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
13// details.
14//
15// You should have received a copy of the GNU Affero General Public License
16// along with MuPDF. If not, see <https://www.gnu.org/licenses/agpl-3.0.en.html>
17//
18// Alternative licensing terms are available from the licensor.
19// For commercial licensing, see <https://www.artifex.com/> or contact
20// Artifex Software, Inc., 39 Mesa Street, Suite 108A, San Francisco,
21// CA 94129, USA, for further information.
22
23#ifndef MUPDF_FITZ_OUTLINE_H
24#define MUPDF_FITZ_OUTLINE_H
25
26#include "mupdf/fitz/system.h"
27#include "mupdf/fitz/types.h"
28#include "mupdf/fitz/context.h"
29#include "mupdf/fitz/link.h"
30#include "mupdf/fitz/output.h"
31
32/* Outline */
33
34typedef struct {
35 char *title;
36 char *uri;
38 int flags;
39 float r;
40 float g;
41 float b;
43
44enum
45{
48};
49
50enum
51{
55};
56
58
65
77
91
98
103
108
109
111
140typedef struct fz_outline
141{
142 int refs;
143 char *title;
144 char *uri;
146 float x, y;
149 unsigned int is_open : 1;
150 unsigned int flags : 7;
151 unsigned int r : 8;
152 unsigned int g : 8;
153 unsigned int b : 8;
155
161
168
180
186
187
192
199
211
221
228
233
238
239#define fz_new_derived_outline_iter(CTX, TYPE, DOC)\
240 ((TYPE *)Memento_label(fz_new_outline_iterator_of_size(ctx,sizeof(TYPE),DOC),#TYPE))
241
243
245
260
261#endif
void fz_drop_outline(fz_context *ctx, fz_outline *outline)
fz_outline * fz_keep_outline(fz_context *ctx, fz_outline *outline)
@ FZ_OUTLINE_ITERATOR_AT_ITEM
Definition outline.h:53
@ FZ_OUTLINE_ITERATOR_AT_EMPTY
Definition outline.h:54
@ FZ_OUTLINE_ITERATOR_DID_NOT_MOVE
Definition outline.h:52
void fz_drop_outline_iterator(fz_context *ctx, fz_outline_iterator *iter)
fz_outline_item * fz_outline_iterator_item(fz_context *ctx, fz_outline_iterator *iter)
fz_outline_iterator * fz_outline_iterator_from_outline(fz_context *ctx, fz_outline *outline)
int fz_outline_iterator_insert_fn(fz_context *ctx, fz_outline_iterator *iter, fz_outline_item *item)
Definition outline.h:220
fz_outline_iterator * fz_new_outline_iterator_of_size(fz_context *ctx, size_t size, fz_document *doc)
int fz_outline_iterator_prev(fz_context *ctx, fz_outline_iterator *iter)
int fz_outline_iterator_next(fz_context *ctx, fz_outline_iterator *iter)
fz_outline * fz_load_outline_from_iterator(fz_context *ctx, fz_outline_iterator *iter)
int fz_outline_iterator_prev_fn(fz_context *ctx, fz_outline_iterator *iter)
Definition outline.h:208
fz_outline * fz_new_outline(fz_context *ctx)
int fz_outline_iterator_up(fz_context *ctx, fz_outline_iterator *iter)
@ FZ_OUTLINE_FLAG_ITALIC
Definition outline.h:47
@ FZ_OUTLINE_FLAG_BOLD
Definition outline.h:46
void fz_outline_iterator_drop_fn(fz_context *ctx, fz_outline_iterator *iter)
Definition outline.h:237
int fz_outline_iterator_down_fn(fz_context *ctx, fz_outline_iterator *iter)
Definition outline.h:210
int fz_outline_iterator_up_fn(fz_context *ctx, fz_outline_iterator *iter)
Definition outline.h:209
int fz_outline_iterator_next_fn(fz_context *ctx, fz_outline_iterator *iter)
Definition outline.h:207
int fz_outline_iterator_delete(fz_context *ctx, fz_outline_iterator *iter)
fz_outline_item * fz_outline_iterator_item_fn(fz_context *ctx, fz_outline_iterator *iter)
Definition outline.h:198
int fz_outline_iterator_down(fz_context *ctx, fz_outline_iterator *iter)
int fz_outline_iterator_delete_fn(fz_context *ctx, fz_outline_iterator *iter)
Definition outline.h:227
void fz_outline_iterator_update_fn(fz_context *ctx, fz_outline_iterator *iter, fz_outline_item *item)
Definition outline.h:232
int fz_outline_iterator_insert(fz_context *ctx, fz_outline_iterator *iter, fz_outline_item *item)
void fz_outline_iterator_update(fz_context *ctx, fz_outline_iterator *iter, fz_outline_item *item)
Definition context.h:886
Definition document.h:1080
Definition types.h:36
Definition outline.h:34
char * title
Definition outline.h:35
int is_open
Definition outline.h:37
float r
Definition outline.h:39
float b
Definition outline.h:41
int flags
Definition outline.h:38
float g
Definition outline.h:40
char * uri
Definition outline.h:36
Definition outline.h:246
fz_outline_iterator_up_fn * up
Definition outline.h:252
fz_outline_iterator_update_fn * update
Definition outline.h:255
fz_outline_iterator_prev_fn * prev
Definition outline.h:251
fz_outline_iterator_insert_fn * insert
Definition outline.h:254
fz_outline_iterator_down_fn * down
Definition outline.h:253
fz_outline_iterator_next_fn * next
Definition outline.h:250
fz_outline_iterator_delete_fn * del
Definition outline.h:256
fz_outline_iterator_item_fn * item
Definition outline.h:249
fz_document * doc
Definition outline.h:258
fz_outline_iterator_drop_fn * drop
Definition outline.h:248
Definition outline.h:141
char * uri
Definition outline.h:144
float y
Definition outline.h:146
char * title
Definition outline.h:143
unsigned int r
Definition outline.h:151
fz_location page
Definition outline.h:145
struct fz_outline * down
Definition outline.h:148
unsigned int is_open
Definition outline.h:149
float x
Definition outline.h:146
unsigned int b
Definition outline.h:153
int refs
Definition outline.h:142
unsigned int flags
Definition outline.h:150
struct fz_outline * next
Definition outline.h:147
unsigned int g
Definition outline.h:152