3
3
// This file is under the GPLv2 or later license
5
5
// Copyright (C) 2005-2006 Kristian Høgsberg <krh@redhat.com>
6
// Copyright (C) 2005, 2009, 2013 Albert Astals Cid <aacid@kde.org>
6
// Copyright (C) 2005, 2009, 2013, 2017 Albert Astals Cid <aacid@kde.org>
7
7
// Copyright (C) 2011 Simon Kellner <kellner@kit.edu>
8
8
// Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it>
22
22
#include "PageLabelInfo_p.h"
24
24
PageLabelInfo::Interval::Interval(Object *dict, int baseA) {
28
if (dict->dictLookup("S", &obj)->isName()) {
26
Object obj = dict->dictLookup("S");
29
28
if (obj.isName("D")) {
31
30
} else if (obj.isName("R")) {
38
37
style = LowercaseLatin;
43
if (dict->dictLookup("P", &obj)->isString())
41
obj = dict->dictLookup("P");
44
43
prefix = obj.getString()->copy();
46
45
prefix = new GooString("");
49
if (dict->dictLookup("St", &obj)->isInt())
47
obj = dict->dictLookup("St");
50
49
first = obj.getInt();
88
86
void PageLabelInfo::parse(Object *tree) {
90
Object kids, kid, limits, low, high;
95
if (tree->dictLookup("Nums", &nums)->isArray()) {
96
for (i = 0; i < nums.arrayGetLength(); i += 2) {
97
if (!nums.arrayGet(i, &obj)->isInt()) {
88
Object nums = tree->dictLookup("Nums");
90
for (int i = 0; i < nums.arrayGetLength(); i += 2) {
91
Object obj = nums.arrayGet(i);
103
if (!nums.arrayGet(i + 1, &obj)->isDict()) {
95
int base = obj.getInt();
96
obj = nums.arrayGet(i + 1);
108
interval = new Interval(&obj, base);
110
intervals.append(interval);
101
intervals.append(new Interval(&obj, base));
115
if (tree->dictLookup("Kids", &kids)->isArray()) {
116
for (i = 0; i < kids.arrayGetLength(); ++i) {
117
if (kids.arrayGet(i, &kid)->isDict())
105
Object kids = tree->dictLookup("Kids");
106
if (kids.isArray()) {
107
for (int i = 0; i < kids.arrayGetLength(); ++i) {
108
Object kid = kids.arrayGet(i);
125
115
GBool PageLabelInfo::labelToIndex(GooString *label, int *index)