Re: [Doxygen-users] Alias defgroup?
Brought to you by:
dimitri
From: Ron W. <ron...@gm...> - 2013-11-27 15:42:32
|
On Wed, Nov 27, 2013 at 7:12 AM, < dox...@li...> wrote: > Date: Tue, 26 Nov 2013 15:43:27 -0800 > From: mathog <ma...@ca...> > > Part 1: > > This defgroup is defined (it is for a type of metafile) in file uemf.h: > > /** \defgroup U_EMF_LOGBRUSH_lbStyle_Qualifiers EMF LB_Style Enumeration > For U_LOGBRUSH lbStyle field > EMF manual 2.2.20 > @{ > */ > #define U_BS_SOLID 0 //!< Solid brush. > ... > /** @} */ > > For a different type of metafile the same values are referred to in > uwmf.h as: > > /* BrushStyle Enumeration WMF manual 2.1.1.4 > Same as "EMF LB_Style Enumeration" in uemf.h > */ > > and the functions that use those bits have comment lines like: > > uint16_t Style; //!< BrushStyle enumeration > > So how does one tell Doxygen that "BrushStyle Enumeration" as some sort > of alias > for the first enumeration? In most of these cases there are no extra > defines to > put in the include file. > Your enumeration could be expressed as an "enum" type, optionally using one or more "typedef"s to declare variables that use the enumeration. Example: //! Base enumeraton for brush styles enum BrushStyle_e { U_BS_SOLID, //!< Solid brush U_BS_NULL, //!< Null brush }; // types derived from base brush style enumeration: typedef enum BrushStyle_e EMF_Style; //!< EMF brush style enumeration, EMF manual 2.2.20 typedef enum BrushStyle_e WMF_Style; //!< WMF brush style enumeration, WMF manual 2.1.1.4 (same as EMF style) // variables using the derived brush style types: EMF_Style EMF_Brush; //!< Current EMF brush style WMF_Style WMF_Brush; //!< Current WMF brush style If your enumerated values do not start with 0, you can specify the initial value: enum otherStyle_e { OTHER_SOLID = 1, OTHER_NULL, }; If your values are not consequtive, you can specify the value of each enum symbol. > Part 2. > In some cases there are slight differences between the two defgroups. > For instance the > one for WMF might have a few more values, or a few less. Is there some > way to indicate this, short of duplicating the defgroup? > If one group is a proper superset of the other group, you can just use a single "master" enum enumeration. If not, you can define the second in terms of the first, supplying values for the non-common symbols: enum otherStyle_e { OTHER_SOLID = U_BS_SOLID, OTHER_NULL = U_BS_NULL, OTHER_DIFF = 3, }; |