[BehaviourElement::] Behaviour Element. To write the Behaviour element (Bh) in the index. @ This simply itemises kinds of action, and what defines them. = void BehaviourElement::render(OUTPUT_STREAM, localisation_dictionary *LD) { inter_tree *I = InterpretIndex::get_tree(); tree_inventory *inv = Synoptic::inv(I); int num_naps = TreeLists::len(inv->named_action_pattern_nodes); if (num_naps == 0) { HTML_OPEN("p"); Localisation::write_0(OUT, LD, I"Index.Elements.Bh.None"); HTML_CLOSE("p"); } else { TreeLists::sort(inv->named_action_pattern_nodes, Synoptic::module_order); for (int i=0; inamed_action_pattern_nodes); i++) { inter_package *pack = Inter::Package::defined_by_frame(inv->named_action_pattern_nodes->list[i].node); text_stream *name = Metadata::read_optional_textual(pack, I"^name"); HTML_OPEN("p"); WRITE("%S", name); IndexUtilities::link_package(OUT, pack); HTML_TAG("br"); WRITE("  "); Localisation::write_0(OUT, LD, I"Index.Elements.Bh.Defined"); WRITE(":\n"); inter_tree_node *D = Inter::Packages::definition(pack); LOOP_THROUGH_INTER_CHILDREN(C, D) { if (C->W.data[ID_IFLD] == PACKAGE_IST) { inter_package *entry = Inter::Package::defined_by_frame(C); if (Inter::Packages::type(entry) == PackageTypes::get(I, I"_named_action_pattern_entry")) { text_stream *text = Metadata::read_optional_textual(entry, I"^text"); HTML_TAG("br"); WRITE("    %S", text); IndexUtilities::link_package(OUT, entry); } } } HTML_CLOSE("p"); } } }