summaryrefslogtreecommitdiffstats
path: root/src/navtree.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/navtree.js')
-rw-r--r--src/navtree.js48
1 files changed, 20 insertions, 28 deletions
diff --git a/src/navtree.js b/src/navtree.js
index edaaee3..1b4931c 100644
--- a/src/navtree.js
+++ b/src/navtree.js
@@ -1,11 +1,10 @@
-var navTreeIndex;
var navTreeSubIndices = new Array();
function getData(varName)
{
var i = varName.lastIndexOf('/');
var n = i>=0 ? varName.substring(i+1) : varName;
- return eval(n);
+ return eval(n.replace(/\-/g,'_'));
}
function stripPath(uri)
@@ -246,11 +245,13 @@ function highlightAnchor()
if (anchor.parent().attr('class')=='memItemLeft'){
var rows = $('.memberdecls tr[class$="'+
window.location.hash.substring(1)+'"]');
- glowEffect(rows.children(),300);
+ glowEffect(rows.children(),300); // member without details
+ } else if (anchor.parents().slice(2).prop('tagName')=='TR') {
+ glowEffect(anchor.parents('div.memitem'),1000); // enum value
} else if (anchor.parent().is(":header")) {
- glowEffect(anchor.parent(),1000);
+ glowEffect(anchor.parent(),1000); // section header
} else {
- glowEffect(anchor.next(),1000);
+ glowEffect(anchor.next(),1000); // normal member
}
}
@@ -329,52 +330,43 @@ function getNode(o, po)
}
}
-function gotoNode(o,subIndex,root,hash)
+function gotoNode(o,subIndex,root,hash,relpath)
{
var nti = navTreeSubIndices[subIndex][root+hash];
o.breadcrumbs = nti ? nti : navTreeSubIndices[subIndex][root];
- if (o.breadcrumbs)
- {
+ if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
+ navTo(o,NAVTREE[0][1],"",relpath);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ if (o.breadcrumbs) {
o.breadcrumbs.unshift(0); // add 0 for root node
showNode(o, o.node, 0);
}
}
-function gotoSubIndex(o,root,hash,relpath)
+function navTo(o,root,hash,relpath)
{
- if (hash.match(/^#l\d+$/))
- {
+ if (hash.match(/^#l\d+$/)) {
+ var anchor=$('a[name='+hash.substring(1)+']');
+ glowEffect(anchor.parent(),1000); // line number
hash=''; // strip line number anchors
}
var url=root+hash;
var i=-1;
- while (navTreeIndex[i+1]<=url) i++;
+ while (NAVTREEINDEX[i+1]<=url) i++;
if (navTreeSubIndices[i]) {
- gotoNode(o,i,root,hash)
+ gotoNode(o,i,root,hash,relpath)
} else {
getScript(relpath+'navtreeindex'+i,function(){
navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
if (navTreeSubIndices[i]) {
- gotoNode(o,i,root,hash);
+ gotoNode(o,i,root,hash,relpath);
}
},true);
}
}
-function navTo(o,root,hash,relpath)
-{
- if (navTreeIndex){
- gotoSubIndex(o,root,hash,relpath);
- } else {
- getScript(relpath+"navtreeindex",function(){
- navTreeIndex = eval('NAVTREEINDEX');
- if (navTreeIndex){
- gotoSubIndex(o,root,hash,relpath);
- }
- },true);
- }
-}
-
function initNavTree(toroot,relpath)
{
var o = new Object();