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