cross-reference types in the generated docs (patch 1038083)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
ffa4348d33
commit
4116fac052
@ -8,6 +8,7 @@ wxWidgets 2.5 Change Log - For more verbose changes, see the manual
|
||||
All:
|
||||
|
||||
- new classes for reading and writing ZIP files (M.J.Wetherell)
|
||||
- classes in the manual are now cross-referenced (Zbigniew Zagórski)
|
||||
- Norwegian (Bokmål) translation added (Hans F. Nordhaug)
|
||||
- wxDynamicLibrary::HasSymbol() added
|
||||
- added wxTextInputStream::operator>>(wchar_t) for compilers which support this
|
||||
|
@ -45,7 +45,7 @@ ignoreInput = "ltx.tex"
|
||||
\docparam [2]{\parskip{0}{\it #1}\htmlignore{\par}\parskip{10}\indented{1cm}{#2}}
|
||||
\wxheading [1]{{\bf \htmlignore{\fcol{blue}{#1}}\htmlonly{\fcol{red}{#1}}}}
|
||||
\const [0] {{\bf const}}
|
||||
\constfunc [3] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}}
|
||||
\constfunc [3] {\func{#1}{#2}{#3} {\bf const}\index{#2}}
|
||||
\windowstyle [1] {{\bf #1}\index{#1}}
|
||||
\bftt [1] {\bf{\tt{#1}}}
|
||||
\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}} #1}
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "tex2any.h"
|
||||
#include "tex2rtf.h"
|
||||
#include "table.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#define HTML_FILENAME_PATTERN _T("%s_%s.html")
|
||||
|
||||
#if !WXWIN_COMPATIBILITY_2_4
|
||||
@ -1801,7 +1801,74 @@ void HTMLOnMacro(int macroId, int no_args, bool start)
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* CheckTypeRef()
|
||||
|
||||
should be called at of argument which usually is
|
||||
type declaration which propably contains name of
|
||||
documented class
|
||||
|
||||
examples:
|
||||
HTMLOnArgument
|
||||
- ltFUNC,
|
||||
- ltPARAM
|
||||
- ltCPARAM
|
||||
|
||||
checks: GetArgData() if contains Type Declaration
|
||||
and can be referenced to some file
|
||||
prints:
|
||||
before<a href="xxx&yyy">type</a>after
|
||||
|
||||
returns:
|
||||
false - if no reference was found
|
||||
true - if reference was found and HREF printed
|
||||
*/
|
||||
static bool CheckTypeRef()
|
||||
{
|
||||
wxString typeDecl = GetArgData();
|
||||
if( !typeDecl.IsEmpty() ) {
|
||||
typeDecl.Replace(wxT("\\"),wxT(""));
|
||||
wxString label = typeDecl;
|
||||
label.Replace(wxT("const"),wxT(""));
|
||||
label.Replace(wxT("virtual"),wxT(""));
|
||||
label.Replace(wxT("static"),wxT(""));
|
||||
label.Replace(wxT("extern"),wxT(""));
|
||||
label = label.BeforeFirst('&');
|
||||
label = label.BeforeFirst(wxT('*'));
|
||||
label = label.BeforeFirst(wxT('\\'));
|
||||
label.Trim(true); label.Trim(false);
|
||||
wxString typeName = label;
|
||||
label.MakeLower();
|
||||
TexRef *texRef = FindReference((wxChar*)label.c_str());
|
||||
|
||||
if (texRef && texRef->refFile && wxStrcmp(texRef->refFile, _T("??")) != 0) {
|
||||
int a = typeDecl.Find(typeName);
|
||||
wxString before = typeDecl.Mid( 0, a );
|
||||
wxString after = typeDecl.Mid( a+typeName.Length() );
|
||||
//wxFprintf(stderr,wxT("%s <%s> %s to ... %s#%s !!!!\n"),
|
||||
// before.c_str(),
|
||||
// typeName.c_str(),
|
||||
// after.c_str(),
|
||||
// texRef->refFile,label.c_str());
|
||||
TexOutput(before);
|
||||
TexOutput(_T("<A HREF=\""));
|
||||
TexOutput(texRef->refFile);
|
||||
TexOutput(_T("#"));
|
||||
TexOutput(label);
|
||||
TexOutput(wxT("\">"));
|
||||
TexOutput(typeName);
|
||||
TexOutput(wxT("</A>"));
|
||||
TexOutput(after);
|
||||
return true;
|
||||
} else {
|
||||
//wxFprintf(stderr,wxT("'%s' from (%s) -> label %s NOT FOUND\n"),
|
||||
// typeName.c_str(),
|
||||
// typeDecl.c_str(),
|
||||
// label.c_str());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// Called on start/end of argument examination
|
||||
bool HTMLOnArgument(int macroId, int arg_no, bool start)
|
||||
{
|
||||
@ -1827,8 +1894,13 @@ bool HTMLOnArgument(int macroId, int arg_no, bool start)
|
||||
}
|
||||
case ltFUNC:
|
||||
{
|
||||
if (start && (arg_no == 1))
|
||||
if (start && (arg_no == 1)) {
|
||||
TexOutput(_T("<B>"));
|
||||
if( CheckTypeRef() ) {
|
||||
TexOutput(_T("</B> "));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!start && (arg_no == 1))
|
||||
TexOutput(_T("</B> "));
|
||||
@ -1889,27 +1961,21 @@ bool HTMLOnArgument(int macroId, int arg_no, bool start)
|
||||
break;
|
||||
}
|
||||
case ltPARAM:
|
||||
{
|
||||
if (start && (arg_no == 1))
|
||||
TexOutput(_T("<B>"));
|
||||
if (!start && (arg_no == 1))
|
||||
TexOutput(_T("</B>"));
|
||||
if (start && (arg_no == 2))
|
||||
{
|
||||
TexOutput(_T("<I>"));
|
||||
}
|
||||
if (!start && (arg_no == 2))
|
||||
{
|
||||
TexOutput(_T("</I>"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ltCPARAM:
|
||||
{
|
||||
if (start && (arg_no == 1))
|
||||
TexOutput(_T("<B>"));
|
||||
if (!start && (arg_no == 1))
|
||||
TexOutput(_T("</B> ")); // This is the difference from param - one space!
|
||||
const wxChar* pend = macroId == ltCPARAM ?
|
||||
_T("</B> ") : _T("</B>");
|
||||
if( arg_no == 1) {
|
||||
if( start ) {
|
||||
TexOutput(_T("<B>"));
|
||||
if( CheckTypeRef() ) {
|
||||
TexOutput(pend);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
TexOutput(pend);
|
||||
}
|
||||
}
|
||||
if (start && (arg_no == 2))
|
||||
{
|
||||
TexOutput(_T("<I>"));
|
||||
@ -1980,6 +2046,7 @@ bool HTMLOnArgument(int macroId, int arg_no, bool start)
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case ltHELPREF:
|
||||
case ltHELPREFN:
|
||||
case ltPOPREF:
|
||||
|
Loading…
Reference in New Issue
Block a user