summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2003-01-26 21:10:54 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2003-01-26 21:10:54 (GMT)
commit5d7d90c39506fb7a19514dc4abd540018deeaaf6 (patch)
tree76af52671423a9b083a05f78c82f3435635ab400
parentafb84237b8c3024f2f35346ba3ee4532e1a8b507 (diff)
downloadDoxygen-5d7d90c39506fb7a19514dc4abd540018deeaaf6.zip
Doxygen-5d7d90c39506fb7a19514dc4abd540018deeaaf6.tar.gz
Doxygen-5d7d90c39506fb7a19514dc4abd540018deeaaf6.tar.bz2
Release-1.3-rc2-20030126
-rw-r--r--Doxyfile2
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--VERSION2
-rw-r--r--addon/doxmlparser/src/memberhandler.h19
-rw-r--r--packages/rpm/doxygen.spec2
-rw-r--r--src/classdef.cpp8
-rw-r--r--src/classdef.h2
-rw-r--r--src/config.l7
-rw-r--r--src/definition.cpp13
-rw-r--r--src/definition.h1
-rw-r--r--src/docparser.cpp2
-rw-r--r--src/filename.cpp8
-rw-r--r--src/ftvhelp.cpp376
-rw-r--r--src/ftvhelp.h13
-rw-r--r--src/latexdocvisitor.cpp4
-rw-r--r--src/scanner.l5
-rw-r--r--src/tagreader.cpp1
-rw-r--r--src/translator_jp.h26
19 files changed, 458 insertions, 41 deletions
diff --git a/Doxyfile b/Doxyfile
index 5026e9f..8ac0802 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -107,7 +107,7 @@ BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
-GENERATE_TREEVIEW = NO
+GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
diff --git a/INSTALL b/INSTALL
index 503f795..0353e63 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
-DOXYGEN Version 1.3-rc2-20030119
+DOXYGEN Version 1.3-rc2-20030126
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
-Dimitri van Heesch (19 January 2003)
+Dimitri van Heesch (26 January 2003)
diff --git a/README b/README
index 299ca5b..be6307c 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.3_rc2_20030119
+DOXYGEN Version 1.3_rc2_20030126
Please read INSTALL for compilation instructions.
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
-Dimitri van Heesch (dimitri@stack.nl) (19 January 2003)
+Dimitri van Heesch (dimitri@stack.nl) (26 January 2003)
diff --git a/VERSION b/VERSION
index 41d507f..c31554b 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.3-rc2-20030119
+1.3-rc2-20030126
diff --git a/addon/doxmlparser/src/memberhandler.h b/addon/doxmlparser/src/memberhandler.h
index 506ae79..213030b 100644
--- a/addon/doxmlparser/src/memberhandler.h
+++ b/addon/doxmlparser/src/memberhandler.h
@@ -33,16 +33,17 @@ class LinkedTextImpl;
class LinkedTextHandler;
class DocHandler;
-struct MemberReference : public IMemberReference
+class MemberReference : public IMemberReference
{
- virtual ~MemberReference() {}
- virtual IMember *member() const;
- virtual const IString *memberName() const { return &m_name; }
- void initialize(MainHandler *m);
-
- QString m_memId;
- StringImpl m_name;
- MainHandler *m_mainHandler;
+ public:
+ virtual ~MemberReference() {}
+ virtual IMember *member() const;
+ virtual const IString *memberName() const { return &m_name; }
+ void initialize(MainHandler *m);
+
+ QString m_memId;
+ StringImpl m_name;
+ MainHandler *m_mainHandler;
};
class MemberReferenceIterator : public BaseIterator<IMemberReferenceIterator,IMemberReference,MemberReference>
diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec
index dc12e3c..109bf8a 100644
--- a/packages/rpm/doxygen.spec
+++ b/packages/rpm/doxygen.spec
@@ -1,6 +1,6 @@
Summary: A documentation system for C/C++.
Name: doxygen
-Version: 1.3_rc2_20030119
+Version: 1.3_rc2_20030126
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
diff --git a/src/classdef.cpp b/src/classdef.cpp
index aacf994..5fd5254 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -2195,10 +2195,10 @@ void ClassDef::determineIntfUsageRelation()
}
#endif
-PackageDef *ClassDef::packageDef() const
-{
- return m_fileDef ? m_fileDef->packageDef() : 0;
-}
+//PackageDef *ClassDef::packageDef() const
+//{
+// return m_fileDef ? m_fileDef->packageDef() : 0;
+//}
QCString ClassDef::compoundTypeString() const
{
diff --git a/src/classdef.h b/src/classdef.h
index 36abdb7..2292e2d 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -138,7 +138,7 @@ class ClassDef : public Definition
/*! Returns the Java package this class is in or 0 if not applicable.
*/
- PackageDef *packageDef() const;
+ //PackageDef *packageDef() const;
MemberDef *getMemberByName(const QCString &);
diff --git a/src/config.l b/src/config.l
index 8b63659..fcc2f5b 100644
--- a/src/config.l
+++ b/src/config.l
@@ -1966,10 +1966,9 @@ void Config::create()
"If the GENERATE_TREEVIEW tag is set to YES, a side panel will be\n"
"generated containing a tree-like index structure (just like the one that \n"
"is generated for HTML Help). For this to work a browser that supports \n"
- "JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, \n"
- "or Internet explorer 4.0+). Note that for large projects the tree generation \n"
- "can take a very long time. In such cases it is better to disable this feature. \n"
- "Windows users are probably better off using the HTML help feature. \n",
+ "JavaScript, DHTML, CSS and frames is required (for instance Mozilla, \n"
+ "Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are \n"
+ "probably better off using the HTML help feature. \n",
FALSE
);
cb->addDependency("GENERATE_HTML");
diff --git a/src/definition.cpp b/src/definition.cpp
index e3b35f5..583b55d 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -664,3 +664,16 @@ const QList<ListItemInfo> *Definition::specialListItems() const
return m_specialListItems;
}
+
+QCString Definition::convertNameToFile(const char *name,bool allowDots) const
+{
+ if (!m_ref.isEmpty())
+ {
+ return name;
+ }
+ else
+ {
+ return ::convertNameToFile(name,allowDots);
+ }
+}
+
diff --git a/src/definition.h b/src/definition.h
index c3c726a..68b7a92 100644
--- a/src/definition.h
+++ b/src/definition.h
@@ -132,6 +132,7 @@ class Definition
void makePartOfGroup(GroupDef *gd);
GroupList *partOfGroups() const { return m_partOfGroups; }
+ QCString convertNameToFile(const char *name,bool allowDots=FALSE) const;
protected:
int m_startBodyLine; // line number of the start of the definition
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 2cfa394..d194a49 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -225,7 +225,7 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type)
return result;
}
-/*! Collects the parameters found with @param or @retval commands
+/*! Collects the parameters found with \@param or \@retval commands
* in a global list g_paramsFound. If \a isParam is set to TRUE
* and the parameter is not an actual parameter of the current
* member g_memberDef, than a warning is raised (unless warnings
diff --git a/src/filename.cpp b/src/filename.cpp
index 131f362..a9c8a02 100644
--- a/src/filename.cpp
+++ b/src/filename.cpp
@@ -35,13 +35,18 @@ void FileName::generateDiskNames()
//QCString commonPrefix;
FileDef *fd=first();
int count=0;
- while (fd) { if (!fd->isReference()) count++; fd=next(); }
+ while (fd)
+ {
+ if (!fd->isReference()) count++;
+ fd=next();
+ }
if (count==1)
{
fd=first();
// skip references
while (fd && fd->isReference()) fd=next();
// name if unique, so diskname is simply the name
+ //printf("!!!!!!!! Unique disk name=%s for fd=%s\n",name.data(),fd->diskname.data());
fd->diskname=name.copy();
}
else if (count>1) // multiple occurrences of the same file name
@@ -84,6 +89,7 @@ void FileName::generateDiskNames()
{
QCString prefix = fd->path.right(fd->path.length()-j-1);
fd->setName(prefix+name);
+ //printf("!!!!!!!! non unique disk name=%s for fd=%s\n",(prefix+name).data(),fd->diskname.data());
fd->diskname=prefix+name;
}
fd=next();
diff --git a/src/ftvhelp.cpp b/src/ftvhelp.cpp
index 6a60074..0ed9565 100644
--- a/src/ftvhelp.cpp
+++ b/src/ftvhelp.cpp
@@ -1,7 +1,8 @@
/******************************************************************************
* ftvhelp.cpp,v 1.0 2000/09/06 16:09:00
*
- * Kenney Wong <kwong@ea.com>
+ * Contributed by Kenney Wong <kwong@ea.com>
+ * Modified by Dimitri van Heesch (c) 2003
*
* Folder Tree View for offline help on browsers that do not support HTML Help.
* Uses the FTV structure from:
@@ -20,10 +21,13 @@
#include "doxygen.h"
#include "language.h"
+#define MAX_INDENT 1024
+#if 0
const char treeview_data[]=
#include "treeview.h"
;
+#endif
unsigned char ftv2blank_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
@@ -329,6 +333,22 @@ struct ImageInfo
{ 0,0,0 }
};
+struct FTVNode
+{
+ FTVNode(bool dir,const char *r,const char *f,const char *a,const char *n)
+ : isLast(TRUE), isDir(dir),ref(r),file(f),anchor(a),name(n),
+ parent(0) { children.setAutoDelete(TRUE); }
+ bool isLast;
+ bool isDir;
+ QCString ref;
+ QCString file;
+ QCString anchor;
+ QCString name;
+ QList<FTVNode> children;
+ FTVNode *parent;
+};
+
+#if 0
static void generateFolderTreeViewData()
{
// Generate tree view script
@@ -437,6 +457,7 @@ static void generateFolderTreeViewData()
p++;
}
}
+#endif
//----------------------------------------------------------------------------
@@ -446,11 +467,19 @@ FTVHelp *FTVHelp::m_theInstance = 0;
* The object has to be \link initialize() initialized\endlink before it can
* be used.
*/
-FTVHelp::FTVHelp()
+FTVHelp::FTVHelp()
{
/* initial depth */
- m_dc = 0;
+ //m_dc = 0;
m_cf = 0;
+ m_indentNodes = new QList<FTVNode>[MAX_INDENT];
+ m_indentNodes[0].setAutoDelete(TRUE);
+ m_indent=0;
+}
+
+FTVHelp::~FTVHelp()
+{
+ delete[] m_indentNodes;
}
/*! return a reference to the one and only instance of this class.
@@ -501,7 +530,8 @@ void FTVHelp::finalize()
m_cts.unsetDevice();
m_cf->close();
delete m_cf;
- generateFolderTreeViewData();
+ generateTreeView();
+ //generateFolderTreeViewData();
}
/*! Increase the level of the contents hierarchy.
@@ -511,7 +541,9 @@ void FTVHelp::finalize()
int FTVHelp::incContentsDepth()
{
//int i; for (i=0;i<m_dc+1;i++) m_cts << " ";
- return ++m_dc;
+ m_indent++;
+ ASSERT(m_indent<MAX_INDENT);
+ return m_indent;
}
/*! Decrease the level of the contents hierarchy.
@@ -521,7 +553,16 @@ int FTVHelp::incContentsDepth()
int FTVHelp::decContentsDepth()
{
//int i; for (i=0;i<m_dc;i++) m_cts << " ";
- return --m_dc;
+
+ m_indent--;
+ QList<FTVNode> *nl = &m_indentNodes[m_indent];
+ FTVNode *parent = nl->getLast();
+ QList<FTVNode> *children = &m_indentNodes[m_indent+1];
+ while (!children->isEmpty())
+ {
+ parent->children.append(children->take(0));
+ }
+ return m_indent;
}
/*! Add a list item to the contents file.
@@ -538,6 +579,20 @@ void FTVHelp::addContentsItem(bool isDir,
const char *name
)
{
+ QList<FTVNode> *nl = &m_indentNodes[m_indent];
+ FTVNode *newNode = new FTVNode(isDir,ref,file,anchor,name);
+ if (!nl->isEmpty())
+ {
+ nl->getLast()->isLast=FALSE;
+ }
+ nl->append(newNode);
+ if (m_indent>0)
+ {
+ QList<FTVNode> *pnl = &m_indentNodes[m_indent-1];
+ newNode->parent = pnl->getLast();
+ }
+
+#if 0
int i; for (i=0;i<m_dc;i++) m_cts << " ";
QCString parent;
QCString tagName = ref;
@@ -582,5 +637,314 @@ void FTVHelp::addContentsItem(bool isDir,
}
}
m_cts << "\n";
+#endif
+}
+
+static int folderId=1;
+
+void FTVHelp::generateIndent(QTextStream &t, FTVNode *n,int level)
+{
+ if (n->parent)
+ {
+ generateIndent(t,n->parent,level+1);
+ }
+ // from the root up to node n do...
+ if (level==0) // item before a dir or document
+ {
+ if (n->isLast)
+ {
+ if (n->isDir)
+ {
+ t << "<img src=\"ftv2plastnode.png\" onclick=\"toggleFolder('folder" << folderId << "', this)\"/>";
+ }
+ else
+ {
+ t << "<img src=\"ftv2lastnode.png\"/>";
+ }
+ }
+ else
+ {
+ if (n->isDir)
+ {
+ t << "<img src=\"ftv2pnode.png\" onclick=\"toggleFolder('folder" << folderId << "', this)\"/>";
+ }
+ else
+ {
+ t << "<img src=\"ftv2node.png\"/>";
+ }
+ }
+ }
+ else // item at another level
+ {
+ if (n->isLast)
+ {
+ t << "<img src=\"ftv2blank.png\"/>";
+ }
+ else
+ {
+ t << "<img src=\"ftv2vertline.png\"/>";
+ }
+ }
+}
+
+void FTVHelp::generateLink(QTextStream &t,FTVNode *n)
+{
+ QCString *dest;
+ if (!n->ref.isEmpty()) // link to entity imported via tag file
+ {
+ t << "<a class=\"elRef\" ";
+ t << "doxygen=\"" << n->ref << ":";
+ if ((dest=Doxygen::tagDestinationDict[n->ref])) t << *dest << "/";
+ t << "\" ";
+ }
+ else // local link
+ {
+ t << "<a class=\"el\" ";
+ }
+ t << "href=\"";
+ if (!n->ref.isEmpty())
+ {
+ if ((dest=Doxygen::tagDestinationDict[n->ref])) t << *dest << "/";
+ }
+ if (!n->file.isEmpty()) t << n->file << Doxygen::htmlFileExtension;
+ if (!n->anchor.isEmpty()) t << "#" << n->anchor;
+ t << "\" target=\"basefrm\">";
+ t << n->name;
+ t << "</a>";
+ if (!n->ref.isEmpty())
+ {
+ t << "&nbsp;[external]";
+ }
+}
+
+void FTVHelp::generateTree(QTextStream &t, const QList<FTVNode> &nl,int level)
+{
+ QCString spaces;
+ spaces.fill(' ',level*2+8);
+ QListIterator<FTVNode> nli(nl);
+ FTVNode *n;
+ for (nli.toFirst();(n=nli.current());++nli)
+ {
+ t << spaces << "<p>";
+ generateIndent(t,n,0);
+ if (n->isDir)
+ {
+ t << "<img src=\"ftv2folderclosed.png\" onclick=\"toggleFolder('folder" << folderId << "', this)\"/>";
+ generateLink(t,n);
+ t << "</p>\n";
+ t << spaces << "<div id=\"folder" << folderId << "\">\n";
+ folderId++;
+ generateTree(t,n->children,level+1);
+ t << spaces << "</div>\n";
+ }
+ else
+ {
+ t << "<img src=\"ftv2doc.png\"/>";
+ generateLink(t,n);
+ t << "</p>\n";
+ }
+ }
+}
+
+void FTVHelp::generateTreeView()
+{
+ // Generate alternative index.html as a frame
+ QCString fileName=Config_getString("HTML_OUTPUT")+"/index"+Doxygen::htmlFileExtension;
+ QFile f;
+ f.setName(fileName);
+ if (!f.open(IO_WriteOnly))
+ {
+ err("Cannot open file %s for writing!\n",fileName.data());
+ return;
+ }
+ else
+ {
+ QTextStream t(&f);
+#if QT_VERSION >= 200
+ t.setEncoding(QTextStream::Latin1);
+#endif
+ t << "<html><head>";
+ t << "<meta http-equiv=\"Content-Type\" content=\"text/html;charset="
+ << theTranslator->idLanguageCharset() << "\">\n";
+ t << "<title>";
+ if (Config_getString("PROJECT_NAME").isEmpty())
+ {
+ t << "Doxygen Documentation";
+ }
+ else
+ {
+ t << Config_getString("PROJECT_NAME");
+ }
+ t << "</title></head>" << endl;
+ t << "<frameset cols=\"" << Config_getInt("TREEVIEW_WIDTH") << ",*\">" << endl;
+ t << " <frame src=\"tree" << Doxygen::htmlFileExtension << "\" name=\"treefrm\">" << endl;
+ t << " <frame src=\"main" << Doxygen::htmlFileExtension << "\" name=\"basefrm\">" << endl;
+ t << "</frameset>" << endl;
+ t << "</html>" << endl;
+ f.close();
+ }
+
+ // Generate tree view frame
+ fileName=Config_getString("HTML_OUTPUT")+"/tree"+Doxygen::htmlFileExtension;
+ f.setName(fileName);
+ if (!f.open(IO_WriteOnly))
+ {
+ err("Cannot open file %s for writing!\n",fileName.data());
+ return;
+ }
+ else
+ {
+ QTextStream t(&f);
+ t << "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
+ t << " <head>\n";
+ t << " <meta http-equiv=\"Content-Type\" content=\"text/xhtml; charset=ISO-8859-1\" />\n";
+ t << " <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n";
+ t << " <meta http-equiv=\"Content-Language\" content=\"en\" />\n";
+ t << " <link rel=\"stylesheet\" href=\"";
+ QCString cssname=Config_getString("HTML_STYLESHEET");
+ if (cssname.isEmpty())
+ {
+ t << "doxygen.css";
+ }
+ else
+ {
+ QFileInfo cssfi(cssname);
+ if (!cssfi.exists())
+ {
+ err("Error: user specified HTML style sheet file does not exist!\n");
+ }
+ t << cssfi.fileName();
+ }
+ t << "\">" << endl;
+ t << " <title>Test</title>\n";
+ t << " <style type=\"text/css\">\n";
+ t << " <!--\n";
+ t << " .directory { font-size: 10pt; font-weight: bold; }\n";
+ t << " .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }\n";
+ t << " .directory p { margin: 0px; white-space: nowrap; }\n";
+ t << " .directory div { display: none; margin: 0px; }\n";
+ t << " .directory img { vertical-align: middle; }\n";
+ t << " -->\n";
+ t << " </style>\n";
+ t << " <script type=\"text/javascript\">\n";
+ t << " <!-- // Hide script from old browsers\n";
+ t << " \n";
+ t << " function findChildNode(node, name) \n";
+ t << " {\n";
+ t << " var temp;\n";
+ t << " if (node == null) \n";
+ t << " {\n";
+ t << " return null;\n";
+ t << " } \n";
+ t << " node = node.firstChild;\n";
+ t << " while (node != null) \n";
+ t << " {\n";
+ t << " if (node.nodeName == name) \n";
+ t << " {\n";
+ t << " return node;\n";
+ t << " }\n";
+ t << " temp = findChildNode(node, name);\n";
+ t << " if (temp != null) \n";
+ t << " {\n";
+ t << " return temp;\n";
+ t << " }\n";
+ t << " node = node.nextSibling;\n";
+ t << " }\n";
+ t << " return null;\n";
+ t << " }\n";
+ t << "\n";
+ t << " function toggleFolder(id, imageNode) \n";
+ t << " {\n";
+ t << " var folder = document.getElementById(id);\n";
+ t << " var l = 0;\n";
+ t << " var vl = \"ftv2vertline.png\";\n";
+ t << " if (imageNode != null && imageNode.nodeName != \"IMG\") \n";
+ t << " {\n";
+ t << " imageNode = findChildNode(imageNode, \"IMG\");\n";
+ t << " if (imageNode!=null) l = imageNode.src.length;\n";
+ t << " }\n";
+ t << " if (folder == null) \n";
+ t << " {\n";
+ t << " } \n";
+ t << " else if (folder.style.display == \"block\") \n";
+ t << " {\n";
+ t << " while (imageNode != null && \n";
+ t << " imageNode.src.substring(l-vl.length,l) == vl)\n";
+ t << " {\n";
+ t << " imageNode = imageNode.nextSibling;\n";
+ t << " l = imageNode.src.length;\n";
+ t << " }\n";
+ t << " if (imageNode != null) \n";
+ t << " {\n";
+ t << " l = imageNode.src.length;\n";
+ t << " imageNode.nextSibling.src = \"ftv2folderclosed.png\";\n";
+ t << " if (imageNode.src.substring(l-13,l) == \"ftv2mnode.png\")\n";
+ t << " {\n";
+ t << " imageNode.src = \"ftv2pnode.png\";\n";
+ t << " }\n";
+ t << " else if (imageNode.src.substring(l-17,l) == \"ftv2mlastnode.png\")\n";
+ t << " {\n";
+ t << " imageNode.src = \"ftv2plastnode.png\";\n";
+ t << " }\n";
+ t << " }\n";
+ t << " folder.style.display = \"none\";\n";
+ t << " } \n";
+ t << " else \n";
+ t << " {\n";
+ t << " while (imageNode != null && \n";
+ t << " imageNode.src.substring(l-vl.length,l) == vl)\n";
+ t << " {\n";
+ t << " imageNode = imageNode.nextSibling;\n";
+ t << " l = imageNode.src.length;\n";
+ t << " }\n";
+ t << " if (imageNode != null) \n";
+ t << " {\n";
+ t << " l = imageNode.src.length;\n";
+ t << " imageNode.nextSibling.src = \"ftv2folderopen.png\";\n";
+ t << " if (imageNode.src.substring(l-13,l) == \"ftv2pnode.png\")\n";
+ t << " {\n";
+ t << " imageNode.src = \"ftv2mnode.png\";\n";
+ t << " }\n";
+ t << " else if (imageNode.src.substring(l-17,l) == \"ftv2plastnode.png\")\n";
+ t << " {\n";
+ t << " imageNode.src = \"ftv2mlastnode.png\";\n";
+ t << " }\n";
+ t << " }\n";
+ t << " folder.style.display = \"block\";\n";
+ t << " }\n";
+ t << " }\n";
+ t << "\n";
+ t << " // End script hiding --> \n";
+ t << " </script>\n";
+ t << " </head>\n";
+ t << "\n";
+ t << " <body bgcolor=\"#ffffff\">\n";
+ t << " <div class=\"directory\">\n";
+ t << " <h3>Root</h3>\n";
+ t << " <div style=\"display: block;\">\n";
+
+ generateTree(t,m_indentNodes[0],0);
+
+ t << " </div>\n";
+ t << " </div>\n";
+ t << " </body>\n";
+ t << "</html>\n";
+ }
+
+ // Generate tree view images
+ ImageInfo *p = image_info;
+ while (p->name)
+ {
+ QCString fileName=Config_getString("HTML_OUTPUT")+"/"+p->name;
+ QFile f(fileName);
+ if (f.open(IO_WriteOnly))
+ f.writeBlock((char *)p->data,p->len);
+ else
+ {
+ fprintf(stderr,"Warning: Cannot open file %s for writing\n",fileName.data());
+ }
+ f.close();
+ p++;
+ }
}
diff --git a/src/ftvhelp.h b/src/ftvhelp.h
index 1d6ccdf..57a18be 100644
--- a/src/ftvhelp.h
+++ b/src/ftvhelp.h
@@ -13,8 +13,10 @@
#include "qtbc.h"
#include <qtextstream.h>
+#include <qlist.h>
class QFile;
+struct FTVNode;
/*! A class that generated the FTV Help specific file.
* This file is used in conjunction with additional FTV web browser code
@@ -30,7 +32,7 @@ class FTVHelp
int incContentsDepth();
int decContentsDepth();
/*! return the current depth of the contents tree */
- int contentsDepth() { return m_dc; }
+ int contentsDepth() const { return m_indent; }
void addContentsItem(bool isDir,
const char *ref,
const char *file,
@@ -38,11 +40,18 @@ class FTVHelp
const char *name);
private:
+ void generateTreeView();
+ void generateTree(QTextStream &t,const QList<FTVNode> &nl,int level);
+ void generateIndent(QTextStream &t,FTVNode *n,int level);
+ void generateLink(QTextStream &t,FTVNode *n);
FTVHelp();
+ ~FTVHelp();
QFile *m_cf;
QTextStream m_cts;
- int m_dc;
+ //int m_dc;
static FTVHelp *m_theInstance;
+ QList<FTVNode> *m_indentNodes;
+ int m_indent;
};
#endif /* FTVHELP_H */
diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp
index 00cf338..937252a 100644
--- a/src/latexdocvisitor.cpp
+++ b/src/latexdocvisitor.cpp
@@ -597,14 +597,14 @@ void LatexDocVisitor::visitPost(DocHtmlTable *t)
}
else
{
- m_t << "\\\\\\hline\n\\end{TabularC}\n";
+ m_t << "\\end{TabularC}\n";
}
}
void LatexDocVisitor::visitPre(DocHtmlCaption *)
{
if (m_hide) return;
- m_t << "\\\\\\hline\n\\end{TabularC}\n\\centering\n\\caption{";
+ m_t << "\\end{TabularC}\n\\centering\n\\caption{";
}
void LatexDocVisitor::visitPost(DocHtmlCaption *)
diff --git a/src/scanner.l b/src/scanner.l
index 778f179..3d30f2d 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -1853,6 +1853,11 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
current->reset();
}
}
+<FindFields>"[" { // attribute list in IDL
+ squareCount=1;
+ lastSquareContext = YY_START;
+ BEGIN(SkipSquare);
+ }
/*
<FindFieldArg>"," { unput(*yytext); BEGIN(FindFields); }
*/
diff --git a/src/tagreader.cpp b/src/tagreader.cpp
index 2b81982..45fe620 100644
--- a/src/tagreader.cpp
+++ b/src/tagreader.cpp
@@ -1054,6 +1054,7 @@ void TagFileParser::buildLists(Entry *root)
QString fullName = m_tagName+":"+tfi->path+stripPath(tfi->name);
fe->fileName = fullName;
+ //printf("new FileDef() filename=%s\n",tfi->filename.data());
FileDef *fd = new FileDef(m_tagName+":"+tfi->path,
tfi->name,m_tagName,
tfi->filename
diff --git a/src/translator_jp.h b/src/translator_jp.h
index 3a4b904..e4b6445 100644
--- a/src/translator_jp.h
+++ b/src/translator_jp.h
@@ -41,7 +41,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish
/*! returns the name of the package that is included by LaTeX */
virtual QCString idLanguageCharset()
{
-#ifdef _WIN32
+#ifdef __CYGWIN__
return "Shift_JIS";
#else
return "euc-jp";
@@ -61,13 +61,13 @@ class TranslatorJapaneseEn : public TranslatorEnglish
}
};
-class TranslatorJapanese : public TranslatorAdapter_1_2_18
+class TranslatorJapanese : public Translator
{
private:
/*! The decode() can change euc into sjis */
inline QCString decode(const QCString & sInput)
{
-#ifdef _WIN32
+#ifdef __CYGWIN__
return JapaneseEucToSjis(sInput);
#else
return sInput;
@@ -83,7 +83,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_2_18
/*! returns the name of the package that is included by LaTeX */
virtual QCString idLanguageCharset()
{
-#ifdef _WIN32
+#ifdef __CYGWIN__
return "Shift_JIS";
#else
return "euc-jp";
@@ -1387,5 +1387,23 @@ class TranslatorJapanese : public TranslatorAdapter_1_2_18
{
return "非推奨一覧";
}
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.18
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a header for declaration section of the events found in
+ * a C# program
+ */
+ virtual QCString trEvents()
+ {
+ return "イベント";
+ }
+ /*! Header used for the documentation section of a class' events. */
+ virtual QCString trEventDocumentation()
+ {
+ return "イベントの解説";
+ }
+
};
#endif