+/****f* HTML_Generator/RB_HTML_Generate_Header_IndexMenu
+ * FUNCTION
+ * Generates a menu to jump to the header's entries. The menu is
+ * generated for each entry file.
+ * SYNOPSIS
+ */
+void RB_HTML_Generate_Header_IndexMenu(
+ FILE *dest_doc,
+ char *filename,
+ struct RB_Document *document,
+ struct RB_Part *owner,
+ struct RB_HeaderType *cur_type )
+ /* TODO Use cur_type */
+/*
+ * INPUTS
+ * * dest_doc -- the output file.
+ * * filename -- the name of the output file
+ * * document -- the gathered documention.
+ * * cur_headertype -- the header type that is to be highlighted.
+ ******
+ */
+{
+ struct RB_header *header;
+ char *object_name, *label_name, *file_name;
+ int i, j;
+
+ for ( i = document->no_headers - 1; i >= 0; i-- )
+ {
+ header = document->headers[i];
+
+ if ( !strcmp( owner->filename->name, header->owner->filename->name ) &&
+ ( header->htype->typeCharacter == 'h' ||
+ Find_Link( header->function_name,
+ &object_name, &label_name,
+ &file_name ) ) )
+ {
+ for ( j = 0; j < header->no_names; j++ )
+ {
+ if ( header->htype->typeCharacter == 'h' )
+ {
+ RB_HTML_Generate_Link( dest_doc,
+ filename,
+ header->owner->filename->docname,
+ NULL,
+ header->function_name,
+ "menuitem" );
+ fprintf( dest_doc, "\n" );
+ }
+ else
+ {
+ RB_HTML_Generate_Link( dest_doc,
+ filename,
+ file_name,
+ "",
+ object_name,
+ "menuitem" );
+ fprintf( dest_doc, "\n" );
+ }
+ }
+ }
+ }
+}
+
+/****f* HTML_Generator/RB_HTML_Generate_Module_IndexMenu
+ * FUNCTION
+ * Generates a menu to jump to the different modules. The menu is
+ * generated for each header file.
+ * SYNOPSIS
+ */
+void RB_HTML_Generate_Module_IndexMenu(
+ FILE *dest_doc,
+ char *filename,
+ struct RB_Document *document,
+ struct RB_HeaderType *cur_type )
+ /* TODO Use cur_type */
+/*
+ * INPUTS
+ * * dest_doc -- the output file.
+ * * filename -- the name of the output file
+ * * document -- the gathered documention.
+ * * cur_headertype -- the header type that is to be highlighted.
+ ******
+ */
+{
+ struct RB_Part *i_part;
+
+ for ( i_part = document->parts; i_part != NULL; i_part = i_part->next )
+ {
+ if ( !i_part->headers ||
+ i_part->headers[0].htype->typeCharacter != 'h' ||
+ !strcmp(i_part->headers[0].function_name,
+ "ROBODoc Cascading Style Sheet") )
+ continue;
+ RB_HTML_Generate_Link( dest_doc,
+ filename,
+ i_part->filename->docname,
+ NULL,
+ i_part->headers[0].function_name,
+ "menuitem" );
+ fprintf( dest_doc, "\n" );
+ }
+}
+
+