// Escapes special characters and returns a valid jQuery selector
function escapeJquery(str){
return str.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1');
}
// highlight and jump to selected member
if (window.location.hash) {
var temp = window.location.hash.replace('#', '');
var elem = '#'+escapeJquery(temp);
/* Add toggle arrows */
//var docAllSigs = $("#template li").has(".fullcomment").find(".signature");
// trying to speed things up a little bit
var docAllSigs = $("#template li[fullComment=yes] .signature");
function commentToggleFct(signature){
var parent = signature.parent();
var shortComment = $(".shortcomment", parent);
var fullComment = $(".fullcomment", parent);
var vis = $(":visible", fullComment);
signature.toggleClass("closed").toggleClass("opened");
if (vis.length > 0) {
shortComment.slideDown(100);
fullComment.slideUp(100);
}
else {
shortComment.slideUp(100);
fullComment.slideDown(100);
}
};
docAllSigs.addClass("closed");
docAllSigs.click(function() {
commentToggleFct($(this));
});
/* Linear super types and known subclasses */
function toggleShowContentFct(e){
e.toggleClass("open");
var content = $(".hiddenContent", e.parent().get(0));
if (content.is(':visible')) {
content.slideUp(100);
}
else {
content.slideDown(100);
}
};
if ($("#order > ol > li.group").length == 1) { orderGroup(); };
});
function orderAlpha() {
$("#order > ol > li.alpha").removeClass("out").addClass("in");
$("#order > ol > li.inherit").removeClass("in").addClass("out");
$("#order > ol > li.group").removeClass("in").addClass("out");
$("#template > div.parent").hide();
$("#template > div.conversion").hide();
$("#mbrsel > div[id=ancestors]").show();
filter();
};
function orderInherit() {
$("#order > ol > li.inherit").removeClass("out").addClass("in");
$("#order > ol > li.alpha").removeClass("in").addClass("out");
$("#order > ol > li.group").removeClass("in").addClass("out");
$("#template > div.parent").show();
$("#template > div.conversion").show();
$("#mbrsel > div[id=ancestors]").hide();
filter();
};
function orderGroup() {
$("#order > ol > li.group").removeClass("out").addClass("in");
$("#order > ol > li.alpha").removeClass("in").addClass("out");
$("#order > ol > li.inherit").removeClass("in").addClass("out");
$("#template > div.parent").hide();
$("#template > div.conversion").hide();
$("#mbrsel > div[id=ancestors]").show();
filter();
};
/** Prepares the DOM for inheritance-based display. To do so it will:
* - hide all statically-generated parents headings;
* - copy all members from the value and type members lists (flat members) to corresponding lists nested below the
* parent headings (inheritance-grouped members);
* - initialises a control variable used by the filter method to control whether filtering happens on flat members
* or on inheritance-grouped members. */
function initInherit() {
// inheritParents is a map from fully-qualified names to the DOM node of parent headings.
var inheritParents = new Object();
var groupParents = new Object();
$("#inheritedMembers > div.parent").each(function(){
inheritParents[$(this).attr("name")] = $(this);
});
$("#inheritedMembers > div.conversion").each(function(){
inheritParents[$(this).attr("name")] = $(this);
});
$("#groupedMembers > div.group").each(function(){
groupParents[$(this).attr("name")] = $(this);
});
$("#types > ol > li").each(function(){
var mbr = $(this);
this.mbrText = mbr.find("> .fullcomment .cmt").text();
var qualName = mbr.attr("name");
var owner = qualName.slice(0, qualName.indexOf("#"));
var name = qualName.slice(qualName.indexOf("#") + 1);
var inheritParent = inheritParents[owner];
if (inheritParent != undefined) {
var types = $("> .types > ol", inheritParent);
if (types.length == 0) {
inheritParent.append("<div class='types members'><h3>Type Members</h3><ol></ol></div>");
types = $("> .types > ol", inheritParent);
}
var clone = mbr.clone();
clone[0].mbrText = this.mbrText;
types.append(clone);
}
var group = mbr.attr("group")
var groupParent = groupParents[group];
if (groupParent != undefined) {
var types = $("> .types > ol", groupParent);
if (types.length == 0) {
groupParent.append("<div class='types members'><ol></ol></div>");
types = $("> .types > ol", groupParent);
}
var clone = mbr.clone();
clone[0].mbrText = this.mbrText;
types.append(clone);
}
});
$("#values > ol > li").each(function(){
var mbr = $(this);
this.mbrText = mbr.find("> .fullcomment .cmt").text();
var qualName = mbr.attr("name");
var owner = qualName.slice(0, qualName.indexOf("#"));
var name = qualName.slice(qualName.indexOf("#") + 1);
var inheritParent = inheritParents[owner];
if (inheritParent != undefined) {
var values = $("> .values > ol", inheritParent);
if (values.length == 0) {
inheritParent.append("<div class='values members'><h3>Value Members</h3><ol></ol></div>");
values = $("> .values > ol", inheritParent);
}
var clone = mbr.clone();
clone[0].mbrText = this.mbrText;
values.append(clone);
}
var group = mbr.attr("group")
var groupParent = groupParents[group];
if (groupParent != undefined) {
var values = $("> .values > ol", groupParent);
if (values.length == 0) {
groupParent.append("<div class='values members'><ol></ol></div>");
values = $("> .values > ol", groupParent);
}
var clone = mbr.clone();
clone[0].mbrText = this.mbrText;
values.append(clone);
}
});
$("#inheritedMembers > div.parent").each(function() {
if ($("> div.members", this).length == 0) { $(this).remove(); };
});
$("#inheritedMembers > div.conversion").each(function() {
if ($("> div.members", this).length == 0) { $(this).remove(); };
});
$("#groupedMembers > div.group").each(function() {
if ($("> div.members", this).length == 0) { $(this).remove(); };
});
};
/* filter used to take boolean scrollToMember */
function filter() {
var query = $.trim($("#textfilter input").val()).toLowerCase();
query = query.replace(/[-[\]{}()*+?.,\\^$|#]/g, "\\$&").replace(/\s+/g, "|");
var queryRegExp = new RegExp(query, "i");
var privateMembersHidden = $("#visbl > ol > li.public").hasClass("in");
var orderingAlphabetic = $("#order > ol > li.alpha").hasClass("in");
var orderingInheritance = $("#order > ol > li.inherit").hasClass("in");
var orderingGroups = $("#order > ol > li.group").hasClass("in");
var hiddenSuperclassElementsLinearization = orderingInheritance ? $("#linearization > li:gt(0)") : $("#linearization > li.out");
var hiddenSuperclassesLinearization = hiddenSuperclassElementsLinearization.map(function() {
return $(this).attr("name");
}).get();
var hiddenSuperclassElementsImplicits = orderingInheritance ? $("#implicits > li") : $("#implicits > li.out");
var hiddenSuperclassesImplicits = hiddenSuperclassElementsImplicits.map(function() {
return $(this).attr("name");
}).get();
function filterFunc() {
var membersVisible = false;
var members = $(this);
members.find("> ol > li").each(function() {
var mbr = $(this);
if (privateMembersHidden && mbr.attr("visbl") == "prt") {
mbr.hide();
return;
}
var name = mbr.attr("name");
// Owner filtering must not happen in "inherited from" member lists
if (hideInheritedMembers) {
var ownerIndex = name.indexOf("#");
if (ownerIndex < 0) {
ownerIndex = name.lastIndexOf(".");
}
var owner = name.slice(0, ownerIndex);
for (var i = 0; i < hiddenSuperclassesLinearization.length; i++) {
if (hiddenSuperclassesLinearization[i] == owner) {
mbr.hide();
return;
}
};
for (var i = 0; i < hiddenSuperclassesImplicits.length; i++) {
if (hiddenSuperclassesImplicits[i] == owner) {
mbr.hide();
return;
}
};
}
if (query && !(queryRegExp.test(name) || queryRegExp.test(this.mbrText))) {
mbr.hide();
return;
}
mbr.show();
membersVisible = true;
});
if (membersVisible)
members.show();
else
members.hide();
};
return false;
};
function windowTitle()
{
try {
parent.document.title=document.title;
}
catch(e) {
// Chrome doesn't allow settings the parent's title when
// used on the local file system.
}
};