/* Add toggle arrows */
var docAllSigs = $("#template li").has(".fullcomment").find(".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(outerElement){
var content = $(".hiddenContent", outerElement);
var vis = $(":visible", content);
if (vis.length > 0) {
content.slideUp(100);
$(".showElement", outerElement).show();
$(".hideElement", outerElement).hide();
}
else {
content.slideDown(100);
$(".showElement", outerElement).hide();
$(".hideElement", outerElement).show();
}
};
$(".toggleContainer").click(function() {
toggleShowContentFct($(this));
});
// Set parent window title
windowTitle();
});
function orderAlpha() {
$("#template > div.parent").hide();
$("#ancestors").show();
filter();
};
function orderInherit() {
$("#template > div.parent").show();
$("#ancestors").hide();
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() {
// parents is a map from fully-qualified names to the DOM node of parent headings.
var parents = new Object();
$("#inheritedMembers > div.parent").each(function(){
parents[$(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 parent = parents[owner];
if (parent != undefined) {
var types = $("> .types > ol", parent);
if (types.length == 0) {
parent.append("<div class='types members'><h3>Type Members</h3><ol></ol></div>");
types = $("> .types > ol", parent);
}
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 parent = parents[owner];
if (parent != undefined) {
var values = $("> .values > ol", parent);
if (values.length == 0) {
parent.append("<div class='values members'><h3>Value Members</h3><ol></ol></div>");
values = $("> .values > ol", parent);
}
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(); };
});
};
function filter(scrollToMember) {
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 hiddenSuperclassElements = orderingAlphabetic ? $("#linearization > li.out") : $("#linearization > li:gt(0)");
var hiddenSuperclasses = hiddenSuperclassElements.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 < hiddenSuperclasses.length; i++) {
if (hiddenSuperclasses[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();
};
if (scrollToMember) {
window.scrollTo(0, $("#mbrsel").offset().top);
}
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.
}
};