Commit daa0336a authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.3-rc2-20030126

parent 92792d3a
...@@ -107,7 +107,7 @@ BINARY_TOC = NO ...@@ -107,7 +107,7 @@ BINARY_TOC = NO
TOC_EXPAND = NO TOC_EXPAND = NO
DISABLE_INDEX = NO DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4 ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250 TREEVIEW_WIDTH = 250
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the LaTeX output # configuration options related to the LaTeX output
......
DOXYGEN Version 1.3-rc2-20030119 DOXYGEN Version 1.3-rc2-20030126
Please read the installation section of the manual Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions. (http://www.doxygen.org/install.html) for instructions.
-------- --------
Dimitri van Heesch (19 January 2003) Dimitri van Heesch (26 January 2003)
DOXYGEN Version 1.3_rc2_20030119 DOXYGEN Version 1.3_rc2_20030126
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (19 January 2003) Dimitri van Heesch (dimitri@stack.nl) (26 January 2003)
1.3-rc2-20030119 1.3-rc2-20030126
...@@ -33,8 +33,9 @@ class LinkedTextImpl; ...@@ -33,8 +33,9 @@ class LinkedTextImpl;
class LinkedTextHandler; class LinkedTextHandler;
class DocHandler; class DocHandler;
struct MemberReference : public IMemberReference class MemberReference : public IMemberReference
{ {
public:
virtual ~MemberReference() {} virtual ~MemberReference() {}
virtual IMember *member() const; virtual IMember *member() const;
virtual const IString *memberName() const { return &m_name; } virtual const IString *memberName() const { return &m_name; }
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.3_rc2_20030119 Version: 1.3_rc2_20030126
Release: 1 Release: 1
Epoch: 1 Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
...@@ -2195,10 +2195,10 @@ void ClassDef::determineIntfUsageRelation() ...@@ -2195,10 +2195,10 @@ void ClassDef::determineIntfUsageRelation()
} }
#endif #endif
PackageDef *ClassDef::packageDef() const //PackageDef *ClassDef::packageDef() const
{ //{
return m_fileDef ? m_fileDef->packageDef() : 0; // return m_fileDef ? m_fileDef->packageDef() : 0;
} //}
QCString ClassDef::compoundTypeString() const QCString ClassDef::compoundTypeString() const
{ {
......
...@@ -138,7 +138,7 @@ class ClassDef : public Definition ...@@ -138,7 +138,7 @@ class ClassDef : public Definition
/*! Returns the Java package this class is in or 0 if not applicable. /*! Returns the Java package this class is in or 0 if not applicable.
*/ */
PackageDef *packageDef() const; //PackageDef *packageDef() const;
MemberDef *getMemberByName(const QCString &); MemberDef *getMemberByName(const QCString &);
......
...@@ -1966,10 +1966,9 @@ void Config::create() ...@@ -1966,10 +1966,9 @@ void Config::create()
"If the GENERATE_TREEVIEW tag is set to YES, a side panel will be\n" "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" "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" "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" "JavaScript, DHTML, CSS and frames is required (for instance Mozilla, \n"
"or Internet explorer 4.0+). Note that for large projects the tree generation \n" "Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are \n"
"can take a very long time. In such cases it is better to disable this feature. \n" "probably better off using the HTML help feature. \n",
"Windows users are probably better off using the HTML help feature. \n",
FALSE FALSE
); );
cb->addDependency("GENERATE_HTML"); cb->addDependency("GENERATE_HTML");
......
...@@ -664,3 +664,16 @@ const QList<ListItemInfo> *Definition::specialListItems() const ...@@ -664,3 +664,16 @@ const QList<ListItemInfo> *Definition::specialListItems() const
return m_specialListItems; return m_specialListItems;
} }
QCString Definition::convertNameToFile(const char *name,bool allowDots) const
{
if (!m_ref.isEmpty())
{
return name;
}
else
{
return ::convertNameToFile(name,allowDots);
}
}
...@@ -132,6 +132,7 @@ class Definition ...@@ -132,6 +132,7 @@ class Definition
void makePartOfGroup(GroupDef *gd); void makePartOfGroup(GroupDef *gd);
GroupList *partOfGroups() const { return m_partOfGroups; } GroupList *partOfGroups() const { return m_partOfGroups; }
QCString convertNameToFile(const char *name,bool allowDots=FALSE) const;
protected: protected:
int m_startBodyLine; // line number of the start of the definition int m_startBodyLine; // line number of the start of the definition
......
...@@ -225,7 +225,7 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type) ...@@ -225,7 +225,7 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type)
return result; 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 * in a global list g_paramsFound. If \a isParam is set to TRUE
* and the parameter is not an actual parameter of the current * and the parameter is not an actual parameter of the current
* member g_memberDef, than a warning is raised (unless warnings * member g_memberDef, than a warning is raised (unless warnings
......
...@@ -35,13 +35,18 @@ void FileName::generateDiskNames() ...@@ -35,13 +35,18 @@ void FileName::generateDiskNames()
//QCString commonPrefix; //QCString commonPrefix;
FileDef *fd=first(); FileDef *fd=first();
int count=0; int count=0;
while (fd) { if (!fd->isReference()) count++; fd=next(); } while (fd)
{
if (!fd->isReference()) count++;
fd=next();
}
if (count==1) if (count==1)
{ {
fd=first(); fd=first();
// skip references // skip references
while (fd && fd->isReference()) fd=next(); while (fd && fd->isReference()) fd=next();
// name if unique, so diskname is simply the name // 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(); fd->diskname=name.copy();
} }
else if (count>1) // multiple occurrences of the same file name else if (count>1) // multiple occurrences of the same file name
...@@ -84,6 +89,7 @@ void FileName::generateDiskNames() ...@@ -84,6 +89,7 @@ void FileName::generateDiskNames()
{ {
QCString prefix = fd->path.right(fd->path.length()-j-1); QCString prefix = fd->path.right(fd->path.length()-j-1);
fd->setName(prefix+name); 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->diskname=prefix+name;
} }
fd=next(); fd=next();
......
/****************************************************************************** /******************************************************************************
* ftvhelp.cpp,v 1.0 2000/09/06 16:09:00 * 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. * Folder Tree View for offline help on browsers that do not support HTML Help.
* Uses the FTV structure from: * Uses the FTV structure from:
...@@ -20,10 +21,13 @@ ...@@ -20,10 +21,13 @@
#include "doxygen.h" #include "doxygen.h"
#include "language.h" #include "language.h"
#define MAX_INDENT 1024
#if 0
const char treeview_data[]= const char treeview_data[]=
#include "treeview.h" #include "treeview.h"
; ;
#endif
unsigned char ftv2blank_png[] = { unsigned char ftv2blank_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
...@@ -329,6 +333,22 @@ struct ImageInfo ...@@ -329,6 +333,22 @@ struct ImageInfo
{ 0,0,0 } { 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() static void generateFolderTreeViewData()
{ {
// Generate tree view script // Generate tree view script
...@@ -437,6 +457,7 @@ static void generateFolderTreeViewData() ...@@ -437,6 +457,7 @@ static void generateFolderTreeViewData()
p++; p++;
} }
} }
#endif
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
...@@ -449,8 +470,16 @@ FTVHelp *FTVHelp::m_theInstance = 0; ...@@ -449,8 +470,16 @@ FTVHelp *FTVHelp::m_theInstance = 0;
FTVHelp::FTVHelp() FTVHelp::FTVHelp()
{ {
/* initial depth */ /* initial depth */
m_dc = 0; //m_dc = 0;
m_cf = 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. /*! return a reference to the one and only instance of this class.
...@@ -501,7 +530,8 @@ void FTVHelp::finalize() ...@@ -501,7 +530,8 @@ void FTVHelp::finalize()
m_cts.unsetDevice(); m_cts.unsetDevice();
m_cf->close(); m_cf->close();
delete m_cf; delete m_cf;
generateFolderTreeViewData(); generateTreeView();
//generateFolderTreeViewData();
} }
/*! Increase the level of the contents hierarchy. /*! Increase the level of the contents hierarchy.
...@@ -511,7 +541,9 @@ void FTVHelp::finalize() ...@@ -511,7 +541,9 @@ void FTVHelp::finalize()
int FTVHelp::incContentsDepth() int FTVHelp::incContentsDepth()
{ {
//int i; for (i=0;i<m_dc+1;i++) m_cts << " "; //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. /*! Decrease the level of the contents hierarchy.
...@@ -521,7 +553,16 @@ int FTVHelp::incContentsDepth() ...@@ -521,7 +553,16 @@ int FTVHelp::incContentsDepth()
int FTVHelp::decContentsDepth() int FTVHelp::decContentsDepth()
{ {
//int i; for (i=0;i<m_dc;i++) m_cts << " "; //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. /*! Add a list item to the contents file.
...@@ -538,6 +579,20 @@ void FTVHelp::addContentsItem(bool isDir, ...@@ -538,6 +579,20 @@ void FTVHelp::addContentsItem(bool isDir,
const char *name 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 << " "; int i; for (i=0;i<m_dc;i++) m_cts << " ";
QCString parent; QCString parent;
QCString tagName = ref; QCString tagName = ref;
...@@ -582,5 +637,314 @@ void FTVHelp::addContentsItem(bool isDir, ...@@ -582,5 +637,314 @@ void FTVHelp::addContentsItem(bool isDir,
} }
} }
m_cts << "\n"; 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++;
}
} }
...@@ -13,8 +13,10 @@ ...@@ -13,8 +13,10 @@
#include "qtbc.h" #include "qtbc.h"
#include <qtextstream.h> #include <qtextstream.h>
#include <qlist.h>
class QFile; class QFile;
struct FTVNode;
/*! A class that generated the FTV Help specific file. /*! A class that generated the FTV Help specific file.
* This file is used in conjunction with additional FTV web browser code * This file is used in conjunction with additional FTV web browser code
...@@ -30,7 +32,7 @@ class FTVHelp ...@@ -30,7 +32,7 @@ class FTVHelp
int incContentsDepth(); int incContentsDepth();
int decContentsDepth(); int decContentsDepth();
/*! return the current depth of the contents tree */ /*! return the current depth of the contents tree */
int contentsDepth() { return m_dc; } int contentsDepth() const { return m_indent; }
void addContentsItem(bool isDir, void addContentsItem(bool isDir,
const char *ref, const char *ref,
const char *file, const char *file,
...@@ -38,11 +40,18 @@ class FTVHelp ...@@ -38,11 +40,18 @@ class FTVHelp
const char *name); const char *name);
private: 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();
~FTVHelp();
QFile *m_cf; QFile *m_cf;
QTextStream m_cts; QTextStream m_cts;
int m_dc; //int m_dc;
static FTVHelp *m_theInstance; static FTVHelp *m_theInstance;
QList<FTVNode> *m_indentNodes;
int m_indent;
}; };
#endif /* FTVHELP_H */ #endif /* FTVHELP_H */
......
...@@ -597,14 +597,14 @@ void LatexDocVisitor::visitPost(DocHtmlTable *t) ...@@ -597,14 +597,14 @@ void LatexDocVisitor::visitPost(DocHtmlTable *t)
} }
else else
{ {
m_t << "\\\\\\hline\n\\end{TabularC}\n"; m_t << "\\end{TabularC}\n";
} }
} }
void LatexDocVisitor::visitPre(DocHtmlCaption *) void LatexDocVisitor::visitPre(DocHtmlCaption *)
{ {
if (m_hide) return; 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 *) void LatexDocVisitor::visitPost(DocHtmlCaption *)
......
...@@ -1853,6 +1853,11 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1853,6 +1853,11 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
current->reset(); current->reset();
} }
} }
<FindFields>"[" { // attribute list in IDL
squareCount=1;
lastSquareContext = YY_START;
BEGIN(SkipSquare);
}
/* /*
<FindFieldArg>"," { unput(*yytext); BEGIN(FindFields); } <FindFieldArg>"," { unput(*yytext); BEGIN(FindFields); }
*/ */
......
...@@ -1054,6 +1054,7 @@ void TagFileParser::buildLists(Entry *root) ...@@ -1054,6 +1054,7 @@ void TagFileParser::buildLists(Entry *root)
QString fullName = m_tagName+":"+tfi->path+stripPath(tfi->name); QString fullName = m_tagName+":"+tfi->path+stripPath(tfi->name);
fe->fileName = fullName; fe->fileName = fullName;
//printf("new FileDef() filename=%s\n",tfi->filename.data());
FileDef *fd = new FileDef(m_tagName+":"+tfi->path, FileDef *fd = new FileDef(m_tagName+":"+tfi->path,
tfi->name,m_tagName, tfi->name,m_tagName,
tfi->filename tfi->filename
......
...@@ -41,7 +41,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish ...@@ -41,7 +41,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish
/*! returns the name of the package that is included by LaTeX */ /*! returns the name of the package that is included by LaTeX */
virtual QCString idLanguageCharset() virtual QCString idLanguageCharset()
{ {
#ifdef _WIN32 #ifdef __CYGWIN__
return "Shift_JIS"; return "Shift_JIS";
#else #else
return "euc-jp"; return "euc-jp";
...@@ -61,13 +61,13 @@ class TranslatorJapaneseEn : public TranslatorEnglish ...@@ -61,13 +61,13 @@ class TranslatorJapaneseEn : public TranslatorEnglish
} }
}; };
class TranslatorJapanese : public TranslatorAdapter_1_2_18 class TranslatorJapanese : public Translator
{ {
private: private:
/*! The decode() can change euc into sjis */ /*! The decode() can change euc into sjis */
inline QCString decode(const QCString & sInput) inline QCString decode(const QCString & sInput)
{ {
#ifdef _WIN32 #ifdef __CYGWIN__
return JapaneseEucToSjis(sInput); return JapaneseEucToSjis(sInput);
#else #else
return sInput; return sInput;
...@@ -83,7 +83,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_2_18 ...@@ -83,7 +83,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_2_18
/*! returns the name of the package that is included by LaTeX */ /*! returns the name of the package that is included by LaTeX */
virtual QCString idLanguageCharset() virtual QCString idLanguageCharset()
{ {
#ifdef _WIN32 #ifdef __CYGWIN__
return "Shift_JIS"; return "Shift_JIS";
#else #else
return "euc-jp"; return "euc-jp";
...@@ -1387,5 +1387,23 @@ class TranslatorJapanese : public TranslatorAdapter_1_2_18 ...@@ -1387,5 +1387,23 @@ class TranslatorJapanese : public TranslatorAdapter_1_2_18
{ {
return "非推奨一覧"; 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 #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment