Reputation: 41
Is there any way to specify the title of a class page auto generated by doxygen? So instead of "ClassName Class Reference" at the top of the page I could use my own text?
Or if not my own text I'd settle for just displaying "ClassName" (without the "Class Reference").
The screenshot below shows in green the text I am trying to get rid of ... so on this page I would like the title to simply be "WindSpeedSetting". Or even more ideally I'd like the title to be "WindSpeedSetting Table".
Here is an excerpt from my doxy file:
<navindex>
<tab type="mainpage" visible="yes" title=""/>
<tab type="classes" visible="no" title="">
<tab type="classlist" visible="no" title="" intro=""/>
<tab type="classindex" visible="no" title=""/>
<tab type="hierarchy" visible="no" title=""/>
<tab type="classmembers" visible="no" title=""/>
</tab>
<tab type="usergroup" url="[none]" visible="yes" title="Tables">
<tab type="usergroup" url="[none]" visible="yes" title="SCADA">
...
<tab type="user" title="WindSpeedSetting" url="@ref Radiance::Model::Scada::v12::WindSpeedSetting" />
</tab>
...
</tab>
</navindex>
<class>
<briefdescription visible="no"/>
<detaileddescription title="Description"/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<constructors title=""/>
<functions title="" visible="no"/>
<related title=""/>
<variables title=""/>
<properties title="Columns"/>
<events title=""/>
</memberdef>
<allmemberslink visible="no"/>
<usedfiles visible="no"/>
<authorsection visible="no"/>
</class>
And then my C# class looks like this:
/// <summary>
/// \class WindSpeedSetting
/// A list of available anemometers in the system.
/// </summary>
public class WindSpeedSetting
{
/// <summary>
/// \property AlarmSpeed
/// \a float <br /><br />
/// </summary>
public virtual double AlarmSpeed { get; set; }
/// <summary>
/// \property AlarmTime
/// \a bigint <br /><br />
/// </summary>
public virtual TimeSpan AlarmTime { get; set; }
}
Upvotes: 4
Views: 729
Reputation: 270
To show the class name without the "Class Reference" string after it you can check the tag HIDE_COMPOUND_REFERENCE.
Upvotes: 0
Reputation: 848
If you don't have a DoxygenLayout.xml you can create one following the steps described under Changing the layout of pages by the doxygen manual.
At the top of the file, you'll find the <navindex>
tag containing the classes
tab .
<navindex>
...
<tab type="classes" visible="yes" title="">
<tab type="classes" visible="no" title="THISISANEXAMPLE"/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title="THISISMYTITLE"/>
<tab type="hierarchy" visible="yes" title=""/>
<tab type="classmembers" visible="yes" title=""/>
</tab>
...
focus on title=
"THISISANEXAMPLE"and
visible="no"`, to change visibility and/or title and you are finished.
Upvotes: 1
Reputation: 25956
I grabbed the source code of Doxygen from github and traced the "Class Reference" string to be a routine defined at line 585 of translate_en.h, specifically:
/*! used as the title of the HTML page of a class/struct/union */
virtual QCString trCompoundReference(const char *clName,
ClassDef::CompoundType compType,
bool isTemplate)
{
QCString result=(QCString)clName;
switch(compType)
{
case ClassDef::Class: result+=" Class"; break;
case ClassDef::Struct: result+=" Struct"; break;
case ClassDef::Union: result+=" Union"; break;
case ClassDef::Interface: result+=" Interface"; break;
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
case ClassDef::Exception: result+=" Exception"; break;
default: break;
}
if (isTemplate) result+=" Template";
result+=" Reference";
return result;
}
Which means the only way to make the "Class Reference" text disappear is either changing the language which will just replace "Class Reference" with a foreign language equivalent or patch the code.
Upvotes: 0