blob: d1944cff1f825ea24bf2792381ceccb138e36336 (
plain)
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
|
/**
* Script that builds jGrouseDoc Index Page
* Copyright (c) 2007 by Robert Kieffer and jGrouseDoc contributors
* $Id: jgindex.js 303 2007-12-24 22:52:30Z denis.riabtchik $
*/
var jgindex = {
load: function() {
// Sort data by localName
jgindex.data.sort(function(a,b) {
var c = (a.localName || a.fullName).toLowerCase();
var d = (b.localName || b.fullName).toLowerCase();
return c < d ? -1 : (c > d ? 1 : 0);
});
// Now render the index
jgindex.renderEntries();
},
renderEntries: function() {
var h = [];
// Use a DL, since this is the most semantically correct structure
h.push('<dl>');
// Hash to track which letters have entries
var letters = {};
// Loop through each entry
for (var i = 0; i < jgindex.data.length; i++) {
var entry = jgindex.data[i];
// Get name/url for the entry's namespace
var srcName = entry.parent;
var srcLink = entry.ref.replace(/#.*/, '');
// Apply odd/even classname (makes styling even/odd rows easy)
var cn = [(i % 2) ? 'odd' : 'even'];
cn.push(/^(class|interface|struct|object)/.test(entry.summary) ? 'is_namespace' : 'is_not_namespace');
// Get the entry's first letter
var ln = entry.localName || entry.fullName || '_unnamed';
var letter = ln.charAt(0).toUpperCase();
// ... and see if it's the first one for that letter
if (!letters[letter]) {
letters[letter] = true;
} else {
letter = null;
}
// ... and if it is, render the section header
if (letter) {
h.push('<h3 class="letter_section"><a name="' + letter + '">' + letter + '</a></h3>');
}
// Render the entry's HTML
cn = cn.join(' ');
h.push(
'<dt title="' + entry.summary + '" class="' + cn + '">' +
'<a href="' + entry.ref + '">' + ln + '</a>' +
'</dt>' +
'<dd class="' + cn + '">' +
'<a href="' + srcLink + '">' + srcName + '</a>' +
'</dd>'
);
}
h.push('</dl>');
// Stick it all into the element
document.getElementById('index').innerHTML = h.join('\n');
// Render the letters table-of-contents at the top
h = [];
var toc = '$_ABCDEFGHIJKLMNOPQRSTUVWXYZ';
for (var i = 0; i < toc.length; i++) {
var letter = toc.charAt(i);
h.push(letters[letter] ?
'<span class="has_entries"><a href="#' + letter + '">' + letter + '</a></span>' :
'<span class="no_entries">' + letter + '</span>'
);
}
document.getElementById('toc').innerHTML = h.join('\n');
}
}
// Hack so we can get access to the index data
var jgdoc = {
Searcher: {
setData: function(data) {
jgindex.data = data;
jgindex.load();
}
}
}
|