[Doxygen-users] C typedefs - treeview left pane erroneously showing final struct's details for all
Brought to you by:
dimitri
From: Monique S. <mon...@ea...> - 2014-06-06 14:28:27
|
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 |