1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
/******************************************************************************
*
*
*
*
* Copyright (C) 1997-2015 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
#ifndef _REFLIST_H
#define _REFLIST_H
#include <qintdict.h>
#include <qlist.h>
#include "sortdict.h"
class Definition;
/** This struct represents an item in the list of references. */
struct RefItem
{
RefItem() : scope(0) {}
QCString text; //!< text of the item.
QCString listAnchor; //!< anchor in the list
QCString prefix; //!< type prefix for the name
Definition *scope; //!< scope to use for references.
QCString name; //!< name of the entity containing the reference
QCString title; //!< display name of the entity
QCString args; //!< optional arguments for the entity (if function)
//bool written;
QList<RefItem> extraItems; //!< more items belonging to the same entity
};
/** List of items sorted by title */
class SortedRefItems : public SDict<RefItem>
{
public:
SortedRefItems(int size=17) : SDict<RefItem>(size) {}
virtual ~SortedRefItems() {}
private:
int compareValues(const RefItem *r1,const RefItem *r2) const
{
return qstricmp(r1->title,r2->title);
}
};
/** List of cross-referenced items
*
* This class represents a list of items that are put
* at a certain point in the documentation by some special command
* and are collected in a list. The items cross-reference the
* documentation and the list.
*
* Examples are the todo list, the test list and the bug list,
* introduced by the \\todo, \\test, and \\bug commands respectively.
*/
class RefList
{
public:
int addRefItem();
RefItem *getRefItem(int todoItemId);
RefItem *getFirstRefItem();
RefItem *getNextRefItem();
QCString listName() const;
QCString fileName() const;
QCString pageTitle() const;
QCString sectionTitle() const;
RefList(const char *listName,
const char *pageTitle,const char *secTitle
);
~RefList();
void insertIntoList(const char *key,RefItem *item);
void generatePage();
private:
int m_id;
QCString m_listName;
QCString m_fileName;
QCString m_pageTitle;
QCString m_secTitle;
SortedRefItems *m_itemList;
QIntDict<RefItem> *m_dict;
QIntDictIterator<RefItem> *m_dictIterator;
};
#endif
|