Hello, doxygen-users,
I’m using Doxygen 1.8.5 to document a C library. And although the treeview
output’s left pane *lists* all the different “typedef struct” items, the
details that are shown in the left pane when you expand ANY of the items are
the details of whatever is the final “typedef struct” in the parsed .h file.
That is, in the left pane (I’ve got GENERATE_TREEVIEW = YES), the correct three
structures are listed (STRUCT_ONE, STRUCT_TWO, and STRUCT_THREE), but when you
expand them in the tree, the treeview incorrectly shows the details of the
final typedef struct (STRUCT_THREE) for ALL the data structures.
But the right pane—the details of the typedef structs—correctly shows the
proper elements for all the structures.
Has anyone run into this? Were you able to fix it?
There’s nothing odd about any of the particular structures. And if I rearrange
the order, whatever becomes the last struct in the file ends up as the one
whose details are listed in the left pane when you expand any of the structs.
The other oddity is that in the treeview (although I think it’s unavoidable,
but perhaps related to the problem) has the expected “Data Structures” item at
the same level as “Modules” and the .page files that I’ve got. But when you
expand that “Data Structures” element, the sub-elements are another “Data
Structures”, which is where the bad details are shown for the STRUCT_ONE and
STRUCT_TWO items, and a “Data Fields” element, which when expanded shows “All”
and “Variables”. The right pan responds as expected when you click “All” and
“Variables”: all the elements of all the typedefs are shown.
I have INLINE_SIMPLE_STRUCTS=YES, TYPEDEF_HIDES_STRUCT=YES, INHERIT_DOCS=YES,
and OPTIMIZE_OUTPUT_FOR_C=YES, which seem to be the relevant settings.
If I change settings to not be for treeview (GENERATE_TREEVIEW=NO and
DISABLE_INDEX=NO), of course the problem disappears, but of course so does the
desired treeview.
typedefs are of the following style:
/**
* \brief Brief-desc.
* \details Details-desc.
* \version cur-ver
* \since orig-ver
* \ingroup typedefs-group
*/
typedef struct structOne {
char name[MAX_SIZE];
unsigned int len;
ENUM_NAME var;
} STRUCT_ONE;
/**
* \brief Brief-desc.
* \details Details-desc.
* \version cur-ver
* \since orig-ver
* \ingroup typedefs-group
*/
typedef struct structTwo {
const char *name;
unsigned int ver;
} STRUCT_TWO;
/**
* \brief Brief-desc.
* \details Details-desc.
* \version cur-ver
* \since orig-ver
* \ingroup typedefs-group
*/
typedef struct structThree {
unsigned int numElements;
STRUCT_TWO elements[MAX_SIZE];
} STRUCT_THREE;
Thanks for any leads,
-Monique
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech
_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users