mirror of
https://github.com/idapython/src
synced 2026-06-08 14:47:00 +00:00
73 lines
2.3 KiB
JavaScript
73 lines
2.3 KiB
JavaScript
|
|
function on_see_also(see_also)
|
|
{
|
|
var idx = see_also.indexOf("#");
|
|
if ( idx > -1 )
|
|
see_also = see_also.substring(idx+1,see_also.length);
|
|
var entry = find_entry_el(document.getElementById('DIV_' + see_also));
|
|
if ( entry )
|
|
{
|
|
set_entry_state(entry, true);
|
|
entry.scrollIntoView();
|
|
}
|
|
}
|
|
|
|
function find_parent_with_class(el, klass)
|
|
{
|
|
while ( el )
|
|
{
|
|
if ( el.className && el.className.indexOf(klass) > -1 )
|
|
return el;
|
|
el = el.parentNode;
|
|
}
|
|
}
|
|
|
|
function find_child_with_class(el, klass)
|
|
{
|
|
return el.querySelector("." + klass);
|
|
}
|
|
|
|
function find_entry_el(el) { return find_parent_with_class(el, "example-entry"); }
|
|
function find_expander(entry_el) { return find_child_with_class(entry_el, "expander"); }
|
|
function find_collapser(entry_el) { return find_child_with_class(entry_el, "collapser"); }
|
|
|
|
function set_entry_state(entry_el, expanded)
|
|
{
|
|
var collapser_el = find_collapser(entry_el);
|
|
var expander_el = find_expander(entry_el);
|
|
collapser_el.style.display = expanded ? "" : "none";
|
|
expander_el.style.display = expanded ? "none" : "";
|
|
if ( expanded )
|
|
entry_el.classList.remove("collapsed-entry");
|
|
else
|
|
entry_el.classList.add("collapsed-entry");
|
|
}
|
|
|
|
function handle_click(e)
|
|
{
|
|
e = e || window.event;
|
|
var el = e.target || e.srcElement;
|
|
var entry_el = find_entry_el(el);
|
|
var ok = false;
|
|
if ( el.classList.contains("collapser") )
|
|
set_entry_state(entry_el, false);
|
|
else if ( el.classList.contains("expander") )
|
|
set_entry_state(entry_el, true);
|
|
else if ( el.classList.contains("ex_link") ) // see also
|
|
on_see_also(el.href);
|
|
else
|
|
return;
|
|
e.stopPropagation();
|
|
}
|
|
|
|
function handle_toplevel_action(e)
|
|
{
|
|
e = e || window.event;
|
|
var el = e.target || e.srcElement;
|
|
var expanded = el.classList.contains("expand-all");
|
|
var els = document.getElementsByClassName("example-entry");
|
|
for ( var idx = 0, n = els.length; idx < n; ++idx )
|
|
set_entry_state(els[idx], expanded);
|
|
e.stopPropagation();
|
|
}
|