mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 04:49:19 +02:00
* Added ability to create class chart
git-svn-id: trunk@23193 -
This commit is contained in:
parent
c9e838e2f9
commit
2c26d53f9b
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -14018,6 +14018,7 @@ utils/fpdoc/fpde/xpms.pp svneol=native#text/plain
|
|||||||
utils/fpdoc/fpdoc.css -text
|
utils/fpdoc/fpdoc.css -text
|
||||||
utils/fpdoc/fpdoc.lpi svneol=native#text/plain
|
utils/fpdoc/fpdoc.lpi svneol=native#text/plain
|
||||||
utils/fpdoc/fpdoc.pp svneol=native#text/plain
|
utils/fpdoc/fpdoc.pp svneol=native#text/plain
|
||||||
|
utils/fpdoc/fpdocclasstree.pp svneol=native#text/plain
|
||||||
utils/fpdoc/fpdocproj.pas svneol=native#text/plain
|
utils/fpdoc/fpdocproj.pas svneol=native#text/plain
|
||||||
utils/fpdoc/fpdocxmlopts.pas svneol=native#text/plain
|
utils/fpdoc/fpdocxmlopts.pas svneol=native#text/plain
|
||||||
utils/fpdoc/fpmake.pp svneol=native#text/plain
|
utils/fpdoc/fpmake.pp svneol=native#text/plain
|
||||||
@ -14032,9 +14033,11 @@ utils/fpdoc/intl/makeskel.de.po svneol=native#text/plain
|
|||||||
utils/fpdoc/makeskel.lpi svneol=native#text/plain
|
utils/fpdoc/makeskel.lpi svneol=native#text/plain
|
||||||
utils/fpdoc/makeskel.pp svneol=native#text/plain
|
utils/fpdoc/makeskel.pp svneol=native#text/plain
|
||||||
utils/fpdoc/mgrfpdocproj.pp svneol=native#text/plain
|
utils/fpdoc/mgrfpdocproj.pp svneol=native#text/plain
|
||||||
|
utils/fpdoc/minusimage.inc svneol=native#text/plain
|
||||||
utils/fpdoc/mkfpdoc.pp svneol=native#text/plain
|
utils/fpdoc/mkfpdoc.pp svneol=native#text/plain
|
||||||
utils/fpdoc/mkfpdocproj.lpi svneol=native#text/plain
|
utils/fpdoc/mkfpdocproj.lpi svneol=native#text/plain
|
||||||
utils/fpdoc/mkfpdocproj.pp svneol=native#text/plain
|
utils/fpdoc/mkfpdocproj.pp svneol=native#text/plain
|
||||||
|
utils/fpdoc/plusimage.inc svneol=native#text/plain
|
||||||
utils/fpdoc/sample-project.xml svneol=native#text/plain
|
utils/fpdoc/sample-project.xml svneol=native#text/plain
|
||||||
utils/fpdoc/sh_pas.pp svneol=native#text/plain
|
utils/fpdoc/sh_pas.pp svneol=native#text/plain
|
||||||
utils/fpdoc/testunit.pp svneol=native#text/plain
|
utils/fpdoc/testunit.pp svneol=native#text/plain
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/09/27]
|
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/12/01]
|
||||||
#
|
#
|
||||||
default: all
|
default: all
|
||||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux jvm-java jvm-android
|
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux jvm-java jvm-android
|
||||||
@ -3500,6 +3500,96 @@ endif
|
|||||||
fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
|
fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
|
||||||
fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
|
fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
|
||||||
fpc_makefiles: fpc_makefile fpc_makefile_dirs
|
fpc_makefiles: fpc_makefile fpc_makefile_dirs
|
||||||
|
ifdef TARGET_DIRS_TARGET_DIRS
|
||||||
|
TARGET_DIRS_all:
|
||||||
|
$(MAKE) -C TARGET_DIRS all
|
||||||
|
TARGET_DIRS_debug:
|
||||||
|
$(MAKE) -C TARGET_DIRS debug
|
||||||
|
TARGET_DIRS_smart:
|
||||||
|
$(MAKE) -C TARGET_DIRS smart
|
||||||
|
TARGET_DIRS_release:
|
||||||
|
$(MAKE) -C TARGET_DIRS release
|
||||||
|
TARGET_DIRS_units:
|
||||||
|
$(MAKE) -C TARGET_DIRS units
|
||||||
|
TARGET_DIRS_examples:
|
||||||
|
$(MAKE) -C TARGET_DIRS examples
|
||||||
|
TARGET_DIRS_shared:
|
||||||
|
$(MAKE) -C TARGET_DIRS shared
|
||||||
|
TARGET_DIRS_install:
|
||||||
|
$(MAKE) -C TARGET_DIRS install
|
||||||
|
TARGET_DIRS_sourceinstall:
|
||||||
|
$(MAKE) -C TARGET_DIRS sourceinstall
|
||||||
|
TARGET_DIRS_exampleinstall:
|
||||||
|
$(MAKE) -C TARGET_DIRS exampleinstall
|
||||||
|
TARGET_DIRS_distinstall:
|
||||||
|
$(MAKE) -C TARGET_DIRS distinstall
|
||||||
|
TARGET_DIRS_zipinstall:
|
||||||
|
$(MAKE) -C TARGET_DIRS zipinstall
|
||||||
|
TARGET_DIRS_zipsourceinstall:
|
||||||
|
$(MAKE) -C TARGET_DIRS zipsourceinstall
|
||||||
|
TARGET_DIRS_zipexampleinstall:
|
||||||
|
$(MAKE) -C TARGET_DIRS zipexampleinstall
|
||||||
|
TARGET_DIRS_zipdistinstall:
|
||||||
|
$(MAKE) -C TARGET_DIRS zipdistinstall
|
||||||
|
TARGET_DIRS_clean:
|
||||||
|
$(MAKE) -C TARGET_DIRS clean
|
||||||
|
TARGET_DIRS_distclean:
|
||||||
|
$(MAKE) -C TARGET_DIRS distclean
|
||||||
|
TARGET_DIRS_cleanall:
|
||||||
|
$(MAKE) -C TARGET_DIRS cleanall
|
||||||
|
TARGET_DIRS_info:
|
||||||
|
$(MAKE) -C TARGET_DIRS info
|
||||||
|
TARGET_DIRS_makefiles:
|
||||||
|
$(MAKE) -C TARGET_DIRS makefiles
|
||||||
|
TARGET_DIRS:
|
||||||
|
$(MAKE) -C TARGET_DIRS all
|
||||||
|
.PHONY: TARGET_DIRS_all TARGET_DIRS_debug TARGET_DIRS_smart TARGET_DIRS_release TARGET_DIRS_units TARGET_DIRS_examples TARGET_DIRS_shared TARGET_DIRS_install TARGET_DIRS_sourceinstall TARGET_DIRS_exampleinstall TARGET_DIRS_distinstall TARGET_DIRS_zipinstall TARGET_DIRS_zipsourceinstall TARGET_DIRS_zipexampleinstall TARGET_DIRS_zipdistinstall TARGET_DIRS_clean TARGET_DIRS_distclean TARGET_DIRS_cleanall TARGET_DIRS_info TARGET_DIRS_makefiles TARGET_DIRS
|
||||||
|
endif
|
||||||
|
ifdef TARGET_EXAMPLEDIRS_TARGET_EXAMPLEDIRS
|
||||||
|
TARGET_EXAMPLEDIRS_all:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS all
|
||||||
|
TARGET_EXAMPLEDIRS_debug:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS debug
|
||||||
|
TARGET_EXAMPLEDIRS_smart:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS smart
|
||||||
|
TARGET_EXAMPLEDIRS_release:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS release
|
||||||
|
TARGET_EXAMPLEDIRS_units:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS units
|
||||||
|
TARGET_EXAMPLEDIRS_examples:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS examples
|
||||||
|
TARGET_EXAMPLEDIRS_shared:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS shared
|
||||||
|
TARGET_EXAMPLEDIRS_install:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS install
|
||||||
|
TARGET_EXAMPLEDIRS_sourceinstall:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS sourceinstall
|
||||||
|
TARGET_EXAMPLEDIRS_exampleinstall:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS exampleinstall
|
||||||
|
TARGET_EXAMPLEDIRS_distinstall:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS distinstall
|
||||||
|
TARGET_EXAMPLEDIRS_zipinstall:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS zipinstall
|
||||||
|
TARGET_EXAMPLEDIRS_zipsourceinstall:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS zipsourceinstall
|
||||||
|
TARGET_EXAMPLEDIRS_zipexampleinstall:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS zipexampleinstall
|
||||||
|
TARGET_EXAMPLEDIRS_zipdistinstall:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS zipdistinstall
|
||||||
|
TARGET_EXAMPLEDIRS_clean:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS clean
|
||||||
|
TARGET_EXAMPLEDIRS_distclean:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS distclean
|
||||||
|
TARGET_EXAMPLEDIRS_cleanall:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS cleanall
|
||||||
|
TARGET_EXAMPLEDIRS_info:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS info
|
||||||
|
TARGET_EXAMPLEDIRS_makefiles:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS makefiles
|
||||||
|
TARGET_EXAMPLEDIRS:
|
||||||
|
$(MAKE) -C TARGET_EXAMPLEDIRS all
|
||||||
|
.PHONY: TARGET_EXAMPLEDIRS_all TARGET_EXAMPLEDIRS_debug TARGET_EXAMPLEDIRS_smart TARGET_EXAMPLEDIRS_release TARGET_EXAMPLEDIRS_units TARGET_EXAMPLEDIRS_examples TARGET_EXAMPLEDIRS_shared TARGET_EXAMPLEDIRS_install TARGET_EXAMPLEDIRS_sourceinstall TARGET_EXAMPLEDIRS_exampleinstall TARGET_EXAMPLEDIRS_distinstall TARGET_EXAMPLEDIRS_zipinstall TARGET_EXAMPLEDIRS_zipsourceinstall TARGET_EXAMPLEDIRS_zipexampleinstall TARGET_EXAMPLEDIRS_zipdistinstall TARGET_EXAMPLEDIRS_clean TARGET_EXAMPLEDIRS_distclean TARGET_EXAMPLEDIRS_cleanall TARGET_EXAMPLEDIRS_info TARGET_EXAMPLEDIRS_makefiles TARGET_EXAMPLEDIRS
|
||||||
|
endif
|
||||||
all: fpc_all
|
all: fpc_all
|
||||||
debug: fpc_debug
|
debug: fpc_debug
|
||||||
smart: fpc_smart
|
smart: fpc_smart
|
||||||
@ -3526,9 +3616,13 @@ include fpcmake.loc
|
|||||||
endif
|
endif
|
||||||
.NOTPARALLEL:
|
.NOTPARALLEL:
|
||||||
fpdoc$(EXEEXT): fpdoc.pp dglobals.pp dwriter.pp dw_xml.pp sh_pas.pp dw_html.pp\
|
fpdoc$(EXEEXT): fpdoc.pp dglobals.pp dwriter.pp dw_xml.pp sh_pas.pp dw_html.pp\
|
||||||
dw_latex.pp dwlinear.pp dw_txt.pp dw_linrtf.pp
|
dw_latex.pp dwlinear.pp dw_txt.pp dw_linrtf.pp css.inc plusimage.inc minusimage.inc
|
||||||
makeskel$(EXEEXT): makeskel.pp dglobals.pp
|
makeskel$(EXEEXT): makeskel.pp dglobals.pp
|
||||||
css.inc: fpdoc.css ../bin2obj$(EXEEXT)
|
css.inc: fpdoc.css ../bin2obj$(EXEEXT)
|
||||||
../bin2obj$(EXEEXT) -o css.inc -c DefaultCSS fpdoc.css
|
../bin2obj$(EXEEXT) -o css.inc -c DefaultCSS fpdoc.css
|
||||||
|
plusimage.inc: images/plus.png ../bin2obj$(EXEEXT)
|
||||||
|
../bin2obj$(EXEEXT) -o plusimage.inc -c PlusImageData images/plus.png
|
||||||
|
minusimage.inc: images/minus.png ../bin2obj$(EXEEXT)
|
||||||
|
../bin2obj$(EXEEXT) -o minusimage.inc -c MinusImageData images/minus.png
|
||||||
../bin2obj$(EXEEXT):
|
../bin2obj$(EXEEXT):
|
||||||
$(MAKE) -C .. bin2obj$(EXEEXT)
|
$(MAKE) -C .. bin2obj$(EXEEXT)
|
||||||
|
@ -34,12 +34,18 @@ files=dwriter.rst fpdoc.rst dglobals.rst makeskel.rst fpdocopts.rst
|
|||||||
[rules]
|
[rules]
|
||||||
.NOTPARALLEL:
|
.NOTPARALLEL:
|
||||||
fpdoc$(EXEEXT): fpdoc.pp dglobals.pp dwriter.pp dw_xml.pp sh_pas.pp dw_html.pp\
|
fpdoc$(EXEEXT): fpdoc.pp dglobals.pp dwriter.pp dw_xml.pp sh_pas.pp dw_html.pp\
|
||||||
dw_latex.pp dwlinear.pp dw_txt.pp dw_linrtf.pp
|
dw_latex.pp dwlinear.pp dw_txt.pp dw_linrtf.pp css.inc plusimage.inc minusimage.inc
|
||||||
|
|
||||||
makeskel$(EXEEXT): makeskel.pp dglobals.pp
|
makeskel$(EXEEXT): makeskel.pp dglobals.pp
|
||||||
|
|
||||||
css.inc: fpdoc.css ../bin2obj$(EXEEXT)
|
css.inc: fpdoc.css ../bin2obj$(EXEEXT)
|
||||||
../bin2obj$(EXEEXT) -o css.inc -c DefaultCSS fpdoc.css
|
../bin2obj$(EXEEXT) -o css.inc -c DefaultCSS fpdoc.css
|
||||||
|
|
||||||
|
plusimage.inc: images/plus.png ../bin2obj$(EXEEXT)
|
||||||
|
../bin2obj$(EXEEXT) -o plusimage.inc -c PlusImageData images/plus.png
|
||||||
|
|
||||||
|
minusimage.inc: images/minus.png ../bin2obj$(EXEEXT)
|
||||||
|
../bin2obj$(EXEEXT) -o minusimage.inc -c MinusImageData images/minus.png
|
||||||
|
|
||||||
../bin2obj$(EXEEXT):
|
../bin2obj$(EXEEXT):
|
||||||
$(MAKE) -C .. bin2obj$(EXEEXT)
|
$(MAKE) -C .. bin2obj$(EXEEXT)
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
Const
|
Const
|
||||||
DefaultCSS : Array[0..2254] of byte = (
|
DefaultCSS : Array[0..2242] of byte = (
|
||||||
47, 42, 10, 32, 32, 36, 73,100, 58, 32,102,112,100,111, 99, 46, 99,
|
47, 42, 10, 32, 32, 36, 73,100, 58, 32,102,112,100,111, 99, 46, 99,
|
||||||
115,115, 44,118, 32, 49, 46, 49, 32, 50, 48, 48, 51, 47, 48, 51, 47,
|
115,116, 44,118, 32, 49, 46, 49, 32, 50, 48, 48, 53, 47, 48, 49, 47,
|
||||||
49, 55, 32, 50, 51, 58, 48, 51, 58, 50, 48, 32,109,105, 99,104, 97,
|
48, 50, 32, 49, 54, 58, 50, 50, 58, 49, 54, 32,109,105, 99,104, 97,
|
||||||
101,108, 32, 69,120,112, 32, 36, 10, 10, 32, 32, 68,101,102, 97,117,
|
101,108, 32, 69,120,112, 32, 36, 10, 10, 32, 32, 68,101,102, 97,117,
|
||||||
108,116, 32,115,116,121,108,101, 32,115,104,101,101,116, 32,102,111,
|
108,116, 32,115,116,121,108,101, 32,115,104,101,101,116, 32,102,111,
|
||||||
114, 32, 70, 80, 68,111, 99, 32,114,101,102,101,114,101,110, 99,101,
|
114, 32, 70, 80, 68,111, 99, 32,114,101,102,101,114,101,110, 99,101,
|
||||||
@ -53,84 +53,83 @@ Const
|
|||||||
32,105,110, 32,115,111,117,114, 99,101, 32,102,114, 97,103,109,101,
|
32,105,110, 32,115,111,117,114, 99,101, 32,102,114, 97,103,109,101,
|
||||||
110,116,115, 32, 42, 47, 10,115,112, 97,110, 46,115,121,109, 32,123,
|
110,116,115, 32, 42, 47, 10,115,112, 97,110, 46,115,121,109, 32,123,
|
||||||
10, 32, 32, 99,111,108,111,114, 58, 32,100, 97,114,107,114,101,100,
|
10, 32, 32, 99,111,108,111,114, 58, 32,100, 97,114,107,114,101,100,
|
||||||
10,125, 10, 10, 47, 42, 32,107,101,121,119,111,114,100,115, 32,105,
|
10,125, 10, 47, 42, 32, 78,111, 32,119,111,114,100,119,114, 97,112,
|
||||||
110, 32,115,111,117,114, 99,101, 32,102,114, 97,103,109,101,110,116,
|
32,105,110, 32, 99,111,100,101, 32,102,114, 97,103,109,101,110,116,
|
||||||
115, 32, 42, 47, 10,115,112, 97,110, 46,107,119, 32,123, 10, 32, 32,
|
115, 32, 42, 47, 10,115,112, 97,110, 46, 99,111,100,101, 32,123, 10,
|
||||||
102,111,110,116, 45,119,101,105,103,104,116, 58, 32, 98,111,108,100,
|
32, 32, 32,119,104,105,116,101, 45,115,112, 97, 99,101, 58, 32,110,
|
||||||
10,125, 10, 10, 47, 42, 32, 99,111,109,109,101,110,116,115, 32,105,
|
111,119,114, 97,112, 10,125, 10, 10, 47, 42, 32,107,101,121,119,111,
|
||||||
110, 32,115,111,117,114, 99,101, 32,102,114, 97,103,109,101,110,116,
|
114,100,115, 32,105,110, 32,115,111,117,114, 99,101, 32,102,114, 97,
|
||||||
115, 32, 42, 47, 10,115,112, 97,110, 46, 99,109,116, 32,123, 10, 32,
|
103,109,101,110,116,115, 32, 42, 47, 10,115,112, 97,110, 46,107,119,
|
||||||
32, 99,111,108,111,114, 58, 32,100, 97,114,107, 99,121, 97,110, 59,
|
32,123, 10, 32, 32,102,111,110,116, 45,119,101,105,103,104,116, 58,
|
||||||
10, 32, 32,102,111,110,116, 45,115,116,121,108,101, 58, 32,105,116,
|
32, 98,111,108,100, 10,125, 10, 10, 47, 42, 32, 99,111,109,109,101,
|
||||||
97,108,105, 99, 10,125, 10, 10, 47, 42, 32,100,105,114,101, 99,116,
|
110,116,115, 32,105,110, 32,115,111,117,114, 99,101, 32,102,114, 97,
|
||||||
105,118,101,115, 32,105,110, 32,115,111,117,114, 99,101, 32,102,114,
|
103,109,101,110,116,115, 32, 42, 47, 10,115,112, 97,110, 46, 99,109,
|
||||||
97,103,109,101,110,116,115, 32, 42, 47, 10,115,112, 97,110, 46,100,
|
116, 32,123, 10, 32, 32, 99,111,108,111,114, 58, 32,100, 97,114,107,
|
||||||
105,114, 32,123, 10, 32, 32, 99,111,108,111,114, 58, 32,100, 97,114,
|
99,121, 97,110, 59, 10, 32, 32,102,111,110,116, 45,115,116,121,108,
|
||||||
107,121,101,108,108,111,119, 59, 10, 32, 32,102,111,110,116, 45,115,
|
101, 58, 32,105,116, 97,108,105, 99, 10,125, 10, 10, 47, 42, 32,100,
|
||||||
116,121,108,101, 58, 32,105,116, 97,108,105, 99, 10,125, 10, 10, 47,
|
105,114,101, 99,116,105,118,101,115, 32,105,110, 32,115,111,117,114,
|
||||||
42, 32,110,117,109, 98,101,114,115, 32,105,110, 32,115,111,117,114,
|
|
||||||
99,101, 32,102,114, 97,103,109,101,110,116,115, 32, 42, 47, 10,115,
|
99,101, 32,102,114, 97,103,109,101,110,116,115, 32, 42, 47, 10,115,
|
||||||
112, 97,110, 46,110,117,109, 32,123, 10, 32, 32, 99,111,108,111,114,
|
112, 97,110, 46,100,105,114, 32,123, 10, 32, 32, 99,111,108,111,114,
|
||||||
58, 32,100, 97,114,107,109, 97,103,101,110,116, 97, 10,125, 10, 10,
|
58, 32,100, 97,114,107,121,101,108,108,111,119, 59, 10, 32, 32,102,
|
||||||
47, 42, 32, 99,104, 97,114, 97, 99,116,101,114,115, 32, 40, 35, 46,
|
|
||||||
46, 46, 41, 32,105,110, 32,115,111,117,114, 99,101, 32,102,114, 97,
|
|
||||||
103,109,101,110,116,115, 32, 42, 47, 10,115,112, 97,110, 46, 99,104,
|
|
||||||
114, 32,123, 10, 32, 32, 99,111,108,111,114, 58, 32,100, 97,114,107,
|
|
||||||
99,121, 97,110, 10,125, 10, 10, 47, 42, 32,115,116,114,105,110,103,
|
|
||||||
115, 32,105,110, 32,115,111,117,114, 99,101, 32,102,114, 97,103,109,
|
|
||||||
101,110,116,115, 32, 42, 47, 10,115,112, 97,110, 46,115,116,114, 32,
|
|
||||||
123, 10, 32, 32, 99,111,108,111,114, 58, 32, 98,108,117,101, 10,125,
|
|
||||||
10, 10, 47, 42, 32, 97,115,115,101,109, 98,108,101,114, 32,112, 97,
|
|
||||||
115,115, 97,103,101,115, 32,105,110, 32,115,111,117,114, 99,101, 32,
|
|
||||||
102,114, 97,103,109,101,110,116,115, 32, 42, 47, 10,115,112, 97,110,
|
|
||||||
46, 97,115,109, 32,123, 10, 32, 32, 99,111,108,111,114, 58, 32,103,
|
|
||||||
114,101,101,110, 10,125, 10, 10, 10,116,100, 46,112,114,101, 32,123,
|
|
||||||
10, 32, 32,119,104,105,116,101, 45,115,112, 97, 99,101, 58, 32,112,
|
|
||||||
114,101, 10,125, 10, 10,112, 46, 99,109,116, 32,123, 10, 32, 32, 99,
|
|
||||||
111,108,111,114, 58, 32,103,114, 97,121, 10,125, 10, 10,115,112, 97,
|
|
||||||
110, 46,119, 97,114,110,105,110,103, 32,123, 10, 32, 32, 99,111,108,
|
|
||||||
111,114, 58, 32,114,101,100, 59, 10, 32, 32,102,111,110,116, 45,119,
|
|
||||||
101,105,103,104,116, 58, 32, 98,111,108,100, 10,125, 10, 10, 47, 42,
|
|
||||||
32, 33, 33, 33, 58, 32, 72,111,119, 32,115,104,111,117,108,100, 32,
|
|
||||||
119,101, 32,100,101,102,105,110,101, 32,116,104,105,115, 46, 46, 46,
|
|
||||||
63, 32, 42, 47, 10,115,112, 97,110, 46,102,105,108,101, 32,123, 10,
|
|
||||||
32, 32, 99,111,108,111,114, 58, 32,100, 97,114,107,103,114,101,101,
|
|
||||||
110, 10,125, 10, 10,116, 97, 98,108,101, 46,114,101,109, 97,114,107,
|
|
||||||
32,123, 10, 32, 32, 98, 97, 99,107,103,114,111,117,110,100, 45, 99,
|
|
||||||
111,108,111,114, 58, 32, 35,102,102,102,102, 99, 48, 59, 10,125, 10,
|
|
||||||
10,116, 97, 98,108,101, 46, 98, 97,114, 32,123, 10, 32, 32, 98, 97,
|
|
||||||
99,107,103,114,111,117,110,100, 45, 99,111,108,111,114, 58, 32, 35,
|
|
||||||
97, 48, 99, 48,102,102, 59, 10,125, 10, 10,115,112, 97,110, 46, 98,
|
|
||||||
97,114,116,105,116,108,101, 32,123, 10, 32, 32,102,111,110,116, 45,
|
|
||||||
119,101,105,103,104,116, 58, 32, 98,111,108,100, 59, 10, 32, 32,102,
|
|
||||||
111,110,116, 45,115,116,121,108,101, 58, 32,105,116, 97,108,105, 99,
|
111,110,116, 45,115,116,121,108,101, 58, 32,105,116, 97,108,105, 99,
|
||||||
59, 10, 32, 32, 99,111,108,111,114, 58, 32,100, 97,114,107, 98,108,
|
10,125, 10, 10, 47, 42, 32,110,117,109, 98,101,114,115, 32,105,110,
|
||||||
117,101, 10,125, 10, 10,115,112, 97,110, 46,102,111,111,116,101,114,
|
32,115,111,117,114, 99,101, 32,102,114, 97,103,109,101,110,116,115,
|
||||||
32,123, 10, 32, 32,102,111,110,116, 45,115,116,121,108,101, 58, 32,
|
32, 42, 47, 10,115,112, 97,110, 46,110,117,109, 32,123, 10, 32, 32,
|
||||||
105,116, 97,108,105, 99, 59, 10, 32, 32, 99,111,108,111,114, 58, 32,
|
99,111,108,111,114, 58, 32,100, 97,114,107,109, 97,103,101,110,116,
|
||||||
100, 97,114,107, 98,108,117,101, 10,125, 10, 10, 47, 42, 32,100,101,
|
97, 10,125, 10, 10, 47, 42, 32, 99,104, 97,114, 97, 99,116,101,114,
|
||||||
102,105,110,105,116,105,111,110, 32,108,105,115,116, 32, 42, 47, 10,
|
115, 32, 40, 35, 46, 46, 46, 41, 32,105,110, 32,115,111,117,114, 99,
|
||||||
100,108, 32,123, 10, 32, 98,111,114,100,101,114, 58, 32, 51,112,120,
|
101, 32,102,114, 97,103,109,101,110,116,115, 32, 42, 47, 10,115,112,
|
||||||
32,100,111,117, 98,108,101, 32, 35, 99, 99, 99, 59, 10, 32,112, 97,
|
97,110, 46, 99,104,114, 32,123, 10, 32, 32, 99,111,108,111,114, 58,
|
||||||
100,100,105,110,103, 58, 32, 48, 46, 53,101,109, 59, 10,125, 10, 10,
|
32,100, 97,114,107, 99,121, 97,110, 10,125, 10, 10, 47, 42, 32,115,
|
||||||
47, 42, 32,100,101,102,105,110,105,116,105,111,110, 32,108,105,115,
|
116,114,105,110,103,115, 32,105,110, 32,115,111,117,114, 99,101, 32,
|
||||||
116, 58, 32,116,101,114,109, 32, 42, 47, 10,100,116, 32,123, 10, 32,
|
102,114, 97,103,109,101,110,116,115, 32, 42, 47, 10,115,112, 97,110,
|
||||||
102,108,111, 97,116, 58, 32,108,101,102,116, 59, 10, 32, 99,108,101,
|
46,115,116,114, 32,123, 10, 32, 32, 99,111,108,111,114, 58, 32, 98,
|
||||||
97,114, 58, 32,108,101,102,116, 59, 10, 32,119,105,100,116,104, 58,
|
108,117,101, 10,125, 10, 10, 47, 42, 32, 97,115,115,101,109, 98,108,
|
||||||
32, 97,117,116,111, 59, 32, 47, 42, 32,110,111,114,109, 97,108,108,
|
101,114, 32,112, 97,115,115, 97,103,101,115, 32,105,110, 32,115,111,
|
||||||
121, 32, 98,114,111,119,115,101,114,115, 32,100,101,102, 97,117,108,
|
117,114, 99,101, 32,102,114, 97,103,109,101,110,116,115, 32, 42, 47,
|
||||||
116, 32,119,105,100,116,104, 32,111,102, 32,108, 97,114,103,101,115,
|
10,115,112, 97,110, 46, 97,115,109, 32,123, 10, 32, 32, 99,111,108,
|
||||||
116, 32,105,116,101,109, 32, 42, 47, 10, 32,112, 97,100,100,105,110,
|
111,114, 58, 32,103,114,101,101,110, 10,125, 10, 10, 10,116,100, 46,
|
||||||
103, 45,114,105,103,104,116, 58, 32, 50, 48,112,120, 59, 10, 32,102,
|
112,114,101, 32,123, 10, 32, 32,119,104,105,116,101, 45,115,112, 97,
|
||||||
111,110,116, 45,119,101,105,103,104,116, 58, 32, 98,111,108,100, 59,
|
99,101, 58, 32,112,114,101, 10,125, 10, 10,112, 46, 99,109,116, 32,
|
||||||
10, 32, 99,111,108,111,114, 58, 32,100, 97,114,107,103,114,101,101,
|
123, 10, 32, 32, 99,111,108,111,114, 58, 32,103,114, 97,121, 10,125,
|
||||||
110, 59, 10,125, 10, 10, 47, 42, 32,100,101,102,105,110,105,116,105,
|
10, 10,115,112, 97,110, 46,119, 97,114,110,105,110,103, 32,123, 10,
|
||||||
111,110, 32,108,105,115,116, 58, 32,100,101,115, 99,114,105,112,116,
|
32, 32, 99,111,108,111,114, 58, 32,114,101,100, 59, 10, 32, 32,102,
|
||||||
105,111,110, 32, 42, 47, 10,100,100, 32,123, 10, 32,109, 97,114,103,
|
111,110,116, 45,119,101,105,103,104,116, 58, 32, 98,111,108,100, 10,
|
||||||
105,110, 58, 32, 48, 32, 48, 32, 48, 32, 49, 49, 48,112,120, 59, 10,
|
125, 10, 10, 47, 42, 32, 33, 33, 33, 58, 32, 72,111,119, 32,115,104,
|
||||||
32,112, 97,100,100,105,110,103, 58, 32, 48, 32, 48, 32, 48, 46, 53,
|
111,117,108,100, 32,119,101, 32,100,101,102,105,110,101, 32,116,104,
|
||||||
101,109, 32, 48, 59, 10,125, 10, 10, 47, 42, 32,102,111,114, 32, 98,
|
105,115, 46, 46, 46, 63, 32, 42, 47, 10,115,112, 97,110, 46,102,105,
|
||||||
114,111,119,115,101,114,115, 32,105,110, 32,115,116, 97,110,100, 97,
|
108,101, 32,123, 10, 32, 32, 99,111,108,111,114, 58, 32,100, 97,114,
|
||||||
114,100,115, 32, 99,111,109,112,108,105, 97,110, 99,101, 32,109,111,
|
107,103,114,101,101,110, 10,125, 10, 10,116, 97, 98,108,101, 46,114,
|
||||||
100,101, 32, 42, 47, 10,116,100, 32,112, 32,123, 10, 32, 32,109, 97,
|
101,109, 97,114,107, 32,123, 10, 32, 32, 98, 97, 99,107,103,114,111,
|
||||||
114,103,105,110, 58, 32, 48, 59, 10,125, 10);
|
117,110,100, 45, 99,111,108,111,114, 58, 32, 35,102,102,102,102, 99,
|
||||||
|
48, 59, 10,125, 10, 10,116, 97, 98,108,101, 46, 98, 97,114, 32,123,
|
||||||
|
10, 32, 32, 98, 97, 99,107,103,114,111,117,110,100, 45, 99,111,108,
|
||||||
|
111,114, 58, 32, 35, 97, 48, 99, 48,102,102, 59, 10,125, 10, 10,116,
|
||||||
|
100, 32,112, 32,123, 10, 32,109, 97,114,103,105,110, 58, 32, 48, 59,
|
||||||
|
10,125, 10, 10,115,112, 97,110, 46, 98, 97,114,116,105,116,108,101,
|
||||||
|
32,123, 10, 32, 32,102,111,110,116, 45,119,101,105,103,104,116, 58,
|
||||||
|
32, 98,111,108,100, 59, 10, 32, 32,102,111,110,116, 45,115,116,121,
|
||||||
|
108,101, 58, 32,105,116, 97,108,105, 99, 59, 10, 32, 32, 99,111,108,
|
||||||
|
111,114, 58, 32,100, 97,114,107, 98,108,117,101, 10,125, 10, 10,115,
|
||||||
|
112, 97,110, 46,116,111,103,103,108,101,116,114,101,101, 99,108,111,
|
||||||
|
115,101, 32,123, 10, 32, 32, 32, 32, 98, 97, 99,107,103,114,111,117,
|
||||||
|
110,100, 58, 32,117,114,108, 40,109,105,110,117,115, 46,112,110,103,
|
||||||
|
41, 32, 99,101,110,116,101,114, 32,108,101,102,116, 32,110,111, 45,
|
||||||
|
114,101,112,101, 97,116, 59, 10, 32, 32, 32, 32,112, 97,100,100,105,
|
||||||
|
110,103, 45,108,101,102,116, 58, 32, 50, 48,112,120, 59, 32, 10,125,
|
||||||
|
10, 10,115,112, 97,110, 46,116,111,103,103,108,101,116,114,101,101,
|
||||||
|
111,112,101,110, 32,123, 10, 32, 32, 32, 32, 98, 97, 99,107,103,114,
|
||||||
|
111,117,110,100, 58, 32,117,114,108, 40,112,108,117,115, 46,112,110,
|
||||||
|
103, 41, 32, 99,101,110,116,101,114, 32,108,101,102,116, 32,110,111,
|
||||||
|
45,114,101,112,101, 97,116, 59, 10, 32, 32, 32, 32,112, 97,100,100,
|
||||||
|
105,110,103, 45,108,101,102,116, 58, 32, 50, 48,112,120, 59, 32, 10,
|
||||||
|
125, 10, 10,117,108, 46, 99,108, 97,115,115,116,114,101,101,108,105,
|
||||||
|
115,116, 32,108,105, 32,123, 32,112, 97,100,100,105,110,103, 45,108,
|
||||||
|
101,102,116, 58, 32, 48,112,120, 59, 32,125, 10, 10,117,108, 46, 99,
|
||||||
|
108, 97,115,115,116,114,101,101,108,105,115,116, 32,123, 32,108,105,
|
||||||
|
115,116, 45,115,116,121,108,101, 45,116,121,112,101, 58,110,111,110,
|
||||||
|
101, 59, 32,125, 10, 10,108,105, 46, 99,108, 97,115,115,116,114,101,
|
||||||
|
101, 32,117,108, 32,123, 32,100,105,115,112,108, 97,121, 58, 32, 98,
|
||||||
|
108,111, 99,107, 59, 32,125, 10, 10,108,105, 46, 99,108, 97,115,115,
|
||||||
|
116,114,101,101, 99,108,111,115,101,100, 32,117,108, 32,123, 32,100,
|
||||||
|
105,115,112,108, 97,121, 58, 32,110,111,110,101, 59, 32,125, 10);
|
||||||
|
@ -48,6 +48,7 @@ resourcestring
|
|||||||
SDocProceduresAndFunctions = 'Procedures and functions';
|
SDocProceduresAndFunctions = 'Procedures and functions';
|
||||||
SDocVariables = 'Variables';
|
SDocVariables = 'Variables';
|
||||||
SDocIdentifierIndex = 'Index';
|
SDocIdentifierIndex = 'Index';
|
||||||
|
SDocPackageClassHierarchy = 'Class hierarchy';
|
||||||
SDocModuleIndex = 'Index of all identifiers in unit ''%s''';
|
SDocModuleIndex = 'Index of all identifiers in unit ''%s''';
|
||||||
SDocPackageIndex = 'Index of all identifiers in package ''%s''';
|
SDocPackageIndex = 'Index of all identifiers in package ''%s''';
|
||||||
SDocUnitOverview = 'Overview of unit ''%s''';
|
SDocUnitOverview = 'Overview of unit ''%s''';
|
||||||
|
@ -32,6 +32,7 @@ const
|
|||||||
// Maybe needed later for topic overview ??
|
// Maybe needed later for topic overview ??
|
||||||
TopicsSubIndex = 7;
|
TopicsSubIndex = 7;
|
||||||
IndexSubIndex = 8;
|
IndexSubIndex = 8;
|
||||||
|
ClassHierarchySubIndex = 9;
|
||||||
|
|
||||||
// Subpage indices for classes
|
// Subpage indices for classes
|
||||||
PropertiesByInheritanceSubindex = 1;
|
PropertiesByInheritanceSubindex = 1;
|
||||||
@ -88,7 +89,10 @@ type
|
|||||||
FOnTest: TNotifyEvent;
|
FOnTest: TNotifyEvent;
|
||||||
FPackage: TPasPackage;
|
FPackage: TPasPackage;
|
||||||
FCharSet : String;
|
FCharSet : String;
|
||||||
|
procedure AddElementsFromList(L: TStrings; List: TFPList; UsePathName : Boolean = False);
|
||||||
procedure AppendTypeDecl(AType: TPasType; TableEl, CodeEl: TDomElement);
|
procedure AppendTypeDecl(AType: TPasType; TableEl, CodeEl: TDomElement);
|
||||||
|
procedure CreateMinusImage;
|
||||||
|
procedure CreatePlusImage;
|
||||||
function GetPageCount: Integer;
|
function GetPageCount: Integer;
|
||||||
procedure SetOnTest(const AValue: TNotifyEvent);
|
procedure SetOnTest(const AValue: TNotifyEvent);
|
||||||
protected
|
protected
|
||||||
@ -99,6 +103,7 @@ type
|
|||||||
PageInfos: TObjectList; // list of TPageInfo objects
|
PageInfos: TObjectList; // list of TPageInfo objects
|
||||||
|
|
||||||
Doc: THTMLDocument;
|
Doc: THTMLDocument;
|
||||||
|
HeadElement,
|
||||||
BodyElement, TitleElement: TDOMElement;
|
BodyElement, TitleElement: TDOMElement;
|
||||||
|
|
||||||
Module: TPasModule;
|
Module: TPasModule;
|
||||||
@ -233,6 +238,8 @@ type
|
|||||||
procedure CreatePageBody(AElement: TPasElement; ASubpageIndex: Integer); virtual;
|
procedure CreatePageBody(AElement: TPasElement; ASubpageIndex: Integer); virtual;
|
||||||
procedure CreatePackagePageBody;
|
procedure CreatePackagePageBody;
|
||||||
procedure CreatePackageIndex;
|
procedure CreatePackageIndex;
|
||||||
|
procedure CreatePackageClassHierarchy;
|
||||||
|
procedure CreateClassHierarchyPage(AList: TStringList; AddUnit : Boolean);
|
||||||
procedure AddModuleIdentifiers(AModule : TPasModule; L : TStrings);
|
procedure AddModuleIdentifiers(AModule : TPasModule; L : TStrings);
|
||||||
Procedure CreateTopicPageBody(AElement : TTopicElement);
|
Procedure CreateTopicPageBody(AElement : TTopicElement);
|
||||||
procedure CreateModulePageBody(AModule: TPasModule; ASubpageIndex: Integer);
|
procedure CreateModulePageBody(AModule: TPasModule; ASubpageIndex: Integer);
|
||||||
@ -286,9 +293,12 @@ type
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses SysUtils, XHTML, XMLRead, XMLWrite, HTMWrite, sh_pas,chmsitemap;
|
uses SysUtils, XHTML, XMLRead, XMLWrite, HTMWrite, sh_pas, fpdocclasstree,
|
||||||
|
chmsitemap;
|
||||||
|
|
||||||
{$i css.inc}
|
{$i css.inc}
|
||||||
|
{$i plusimage.inc}
|
||||||
|
{$i minusimage.inc}
|
||||||
|
|
||||||
Function FixHTMLpath(S : String) : STring;
|
Function FixHTMLpath(S : String) : STring;
|
||||||
|
|
||||||
@ -525,6 +535,13 @@ constructor THTMLWriter.Create(APackage: TPasPackage; AEngine: TFPDocEngine);
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Function HaveClasses(AModule: TPasModule) : Boolean;
|
||||||
|
|
||||||
|
begin
|
||||||
|
with AModule do
|
||||||
|
Result:=InterfaceSection.Classes.Count>0;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure ScanModule(AModule: TPasModule; LinkList : TObjectList);
|
procedure ScanModule(AModule: TPasModule; LinkList : TObjectList);
|
||||||
var
|
var
|
||||||
i, j, k: Integer;
|
i, j, k: Integer;
|
||||||
@ -621,6 +638,7 @@ constructor THTMLWriter.Create(APackage: TPasPackage; AEngine: TFPDocEngine);
|
|||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
L : TObjectList;
|
L : TObjectList;
|
||||||
|
H : Boolean;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
inherited ;
|
inherited ;
|
||||||
@ -642,6 +660,15 @@ begin
|
|||||||
begin
|
begin
|
||||||
AddPage(Package, 0);
|
AddPage(Package, 0);
|
||||||
AddPage(Package,IndexSubIndex);
|
AddPage(Package,IndexSubIndex);
|
||||||
|
I:=0;
|
||||||
|
H:=False;
|
||||||
|
While (I<Package.Modules.Count) and Not H do
|
||||||
|
begin
|
||||||
|
H:=HaveClasses(TPasModule(Package.Modules[i]));
|
||||||
|
Inc(I);
|
||||||
|
end;
|
||||||
|
if H then
|
||||||
|
AddPage(Package,ClassHierarchySubIndex);
|
||||||
AddTopicPages(Package);
|
AddTopicPages(Package);
|
||||||
end;
|
end;
|
||||||
L:=TObjectList.Create;
|
L:=TObjectList.Create;
|
||||||
@ -683,6 +710,7 @@ begin
|
|||||||
Doc.AppendChild(HTMLEl);
|
Doc.AppendChild(HTMLEl);
|
||||||
|
|
||||||
HeadEl := Doc.CreateHeadElement;
|
HeadEl := Doc.CreateHeadElement;
|
||||||
|
HeadElement:=HeadEl;
|
||||||
HTMLEl.AppendChild(HeadEl);
|
HTMLEl.AppendChild(HeadEl);
|
||||||
El := Doc.CreateElement('meta');
|
El := Doc.CreateElement('meta');
|
||||||
HeadEl.AppendChild(El);
|
HeadEl.AppendChild(El);
|
||||||
@ -762,6 +790,41 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
CreateCSSFile;
|
CreateCSSFile;
|
||||||
|
CreatePlusImage;
|
||||||
|
CreateMinusImage;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure THTMLWriter.CreatePlusImage;
|
||||||
|
Var
|
||||||
|
TempStream: TMemoryStream;
|
||||||
|
|
||||||
|
begin
|
||||||
|
TempStream := TMemoryStream.Create;
|
||||||
|
try
|
||||||
|
DoLog('Creating plus image',[]);
|
||||||
|
TempStream.WriteBuffer(PlusImageData,SizeOf(PlusImageData));
|
||||||
|
TempStream.Position := 0;
|
||||||
|
TempStream.SaveToFile(Engine.output+'plus.png');
|
||||||
|
finally
|
||||||
|
TempStream.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure THTMLWriter.CreateMinusImage;
|
||||||
|
|
||||||
|
Var
|
||||||
|
TempStream: TMemoryStream;
|
||||||
|
|
||||||
|
begin
|
||||||
|
TempStream := TMemoryStream.Create;
|
||||||
|
try
|
||||||
|
DoLog('Creating minus image',[]);
|
||||||
|
TempStream.WriteBuffer(MinusImageData,SizeOf(MinusImageData));
|
||||||
|
TempStream.Position := 0;
|
||||||
|
TempStream.SaveToFile(Engine.output+'minus.png');
|
||||||
|
finally
|
||||||
|
TempStream.Free;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure THTMLWriter.CreateCSSFile;
|
procedure THTMLWriter.CreateCSSFile;
|
||||||
@ -2003,6 +2066,20 @@ var
|
|||||||
AppendText(ParaEl, ']');
|
AppendText(ParaEl, ']');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure AddPackageLink(ALinkSubpageIndex: Integer; const AName: String);
|
||||||
|
begin
|
||||||
|
if FUseMenuBrackets then
|
||||||
|
AppendText(ParaEl, '[');
|
||||||
|
if ALinkSubpageIndex = ASubpageIndex then
|
||||||
|
AppendText(ParaEl, AName)
|
||||||
|
else
|
||||||
|
AppendText(
|
||||||
|
CreateLink(ParaEl, ResolveLinkWithinPackage(Package, ALinkSubpageIndex)),
|
||||||
|
AName);
|
||||||
|
if FUseMenuBrackets then
|
||||||
|
AppendText(ParaEl, ']');
|
||||||
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
TableEl := CreateEl(BodyElement, 'table');
|
TableEl := CreateEl(BodyElement, 'table');
|
||||||
TableEl['cellpadding'] := '4';
|
TableEl['cellpadding'] := '4';
|
||||||
@ -2032,17 +2109,8 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
// Manually add link for package page
|
AddPackageLink(IndexSubIndex, SDocIdentifierIndex);
|
||||||
if FUseMenuBrackets then
|
AddPackageLink(ClassHierarchySubIndex, SDocPackageClassHierarchy);
|
||||||
AppendText(ParaEl, '[');
|
|
||||||
if (IndexSubIndex = ASubpageIndex) then
|
|
||||||
AppendText(ParaEl, SDocIdentifierIndex)
|
|
||||||
else
|
|
||||||
AppendText(
|
|
||||||
CreateLink(ParaEl, ResolveLinkWithinPackage(Package, IndexSubIndex)),
|
|
||||||
SDocIdentifierIndex);
|
|
||||||
if FUseMenuBrackets then
|
|
||||||
AppendText(ParaEl, ']');
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if Length(SearchPage) > 0 then
|
if Length(SearchPage) > 0 then
|
||||||
@ -2269,6 +2337,162 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure THTMLWriter.CreateClassHierarchyPage(AList : TStringList; AddUnit : Boolean);
|
||||||
|
Procedure PushClassElement;
|
||||||
|
|
||||||
|
Var
|
||||||
|
H : THTMLElement;
|
||||||
|
begin
|
||||||
|
H:=CreateEl(CurOutputNode, 'li');
|
||||||
|
H['class']:='classtree';
|
||||||
|
PushOutputNode(H);
|
||||||
|
H:=CreateEl(CurOutputNode, 'span');
|
||||||
|
H['class']:='toggletreeclose';
|
||||||
|
H['onclick']:='expandorcollapse(this)';
|
||||||
|
PushOutputNode(h);
|
||||||
|
AppendNbSp(h,1);
|
||||||
|
PopOutputNode;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Procedure PushClassList;
|
||||||
|
|
||||||
|
Var
|
||||||
|
H : THTMLElement;
|
||||||
|
begin
|
||||||
|
H:=CreateEl(CurOutputNode, 'ul');
|
||||||
|
H['class']:='classtreelist';
|
||||||
|
PushOutputNode(h);
|
||||||
|
end;
|
||||||
|
|
||||||
|
Procedure AppendClass(E : TDomElement);
|
||||||
|
|
||||||
|
Var
|
||||||
|
N : TDomNode;
|
||||||
|
P,PM : TPasElement;
|
||||||
|
NN : String;
|
||||||
|
EN : String;
|
||||||
|
LL : TstringList;
|
||||||
|
I,J : Integer;
|
||||||
|
|
||||||
|
begin
|
||||||
|
EN:=Package.Name+'.'+E['unit']+'.'+E.NodeName;
|
||||||
|
J:=AList.IndexOf(EN);
|
||||||
|
If J<>-1 then
|
||||||
|
P:=AList.Objects[J] as TPasElement
|
||||||
|
else
|
||||||
|
P:=Engine.FindElement(EN);
|
||||||
|
PushClassElement;
|
||||||
|
try
|
||||||
|
if (P<>Nil) then
|
||||||
|
begin
|
||||||
|
AppendHyperLink(CurOutputNode,P);
|
||||||
|
PM:=P.Getmodule;
|
||||||
|
if (PM<>Nil) then
|
||||||
|
begin
|
||||||
|
AppendText(CurOutputNode,' (');
|
||||||
|
AppendHyperLink(CurOutputNode,PM);
|
||||||
|
AppendText(CurOutputNode,')');
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
AppendText(CurOutputNode,P.Name);
|
||||||
|
LL:=TStringList.Create;
|
||||||
|
try
|
||||||
|
N:=E.FirstChild;
|
||||||
|
While (N<>Nil) do
|
||||||
|
begin
|
||||||
|
if (N.NodeType=ELEMENT_NODE) then
|
||||||
|
LL.AddObject(N.NodeName,N);
|
||||||
|
N:=N.NextSibling;
|
||||||
|
end;
|
||||||
|
if (LL.Count>0) then
|
||||||
|
begin
|
||||||
|
LL.Sorted:=true;
|
||||||
|
PushClassList;
|
||||||
|
try
|
||||||
|
For I:=0 to LL.Count-1 do
|
||||||
|
AppendClass(LL.Objects[i] as TDomElement);
|
||||||
|
finally
|
||||||
|
PopOutputNode;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
LL.Free;
|
||||||
|
end;
|
||||||
|
Finally
|
||||||
|
PopOutputNode;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Var
|
||||||
|
B : TClassTreeBuilder;
|
||||||
|
E : TDomElement;
|
||||||
|
F : TFileStream;
|
||||||
|
|
||||||
|
begin
|
||||||
|
PushOutputNode(BodyElement);
|
||||||
|
try
|
||||||
|
B:=TClassTreeBuilder.Create(Package,okClass);
|
||||||
|
try
|
||||||
|
B.BuildTree(AList);
|
||||||
|
// Classes
|
||||||
|
WriteXMLFile(B.ClassTree,'tree.xml');
|
||||||
|
// Dummy TObject
|
||||||
|
E:=B.ClassTree.DocumentElement;
|
||||||
|
PushClassList;
|
||||||
|
try
|
||||||
|
AppendClass(E);
|
||||||
|
finally
|
||||||
|
PopOutputNode;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
B.Free;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
PopOutputNode;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure THTMLWriter.CreatePackageClassHierarchy;
|
||||||
|
|
||||||
|
Const
|
||||||
|
SFunc = 'function expandorcollapse (o) {'+sLineBreak+
|
||||||
|
' o.className = (o.className=="toggletreeclose") ? "toggletreeopen" : "toggletreeclose";'+sLineBreak+
|
||||||
|
' o.parentNode.className = (o.className=="toggletreeclose") ? "classtree" : "classtreeclosed";'+sLineBreak+
|
||||||
|
' return false;'+sLineBreak+
|
||||||
|
'}';
|
||||||
|
|
||||||
|
Var
|
||||||
|
L : TStringList;
|
||||||
|
I : Integer;
|
||||||
|
M : TPasModule;
|
||||||
|
E : TPasElement;
|
||||||
|
S : String;
|
||||||
|
SE : THTMLElement;
|
||||||
|
|
||||||
|
begin
|
||||||
|
SE := Doc.CreateElement('script');
|
||||||
|
AppendText(SE,SFunc);
|
||||||
|
HeadElement.AppendChild(SE);
|
||||||
|
L:=TStringList.Create;
|
||||||
|
try
|
||||||
|
L.Capacity:=PageInfos.Count; // Too much, but that doesn't hurt.
|
||||||
|
For I:=0 to Package.Modules.Count-1 do
|
||||||
|
begin
|
||||||
|
M:=TPasModule(Package.Modules[i]);
|
||||||
|
Self.AddElementsFromList(L,M.InterfaceSection.Classes,True)
|
||||||
|
end;
|
||||||
|
AppendMenuBar(ClassHierarchySubIndex);
|
||||||
|
S:=Package.Name;
|
||||||
|
If Length(S)>0 then
|
||||||
|
Delete(S,1,1);
|
||||||
|
AppendTitle(Format(SDocPackageClassHierarchy, [S]));
|
||||||
|
CreateClassHierarchyPage(L,True);
|
||||||
|
Finally
|
||||||
|
L.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure THTMLWriter.CreatePageBody(AElement: TPasElement;
|
procedure THTMLWriter.CreatePageBody(AElement: TPasElement;
|
||||||
ASubpageIndex: Integer);
|
ASubpageIndex: Integer);
|
||||||
var
|
var
|
||||||
@ -2289,6 +2513,8 @@ begin
|
|||||||
CreatePackagePageBody
|
CreatePackagePageBody
|
||||||
else if ASubPageIndex=IndexSubIndex then
|
else if ASubPageIndex=IndexSubIndex then
|
||||||
CreatePackageIndex
|
CreatePackageIndex
|
||||||
|
else if ASubPageIndex=ClassHierarchySubIndex then
|
||||||
|
CreatePackageClassHierarchy
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
@ -2409,24 +2635,27 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Procedure THTMLWriter.AddElementsFromList(L : TStrings; List : TFPList; UsePathName : Boolean = False);
|
||||||
|
|
||||||
|
Var
|
||||||
|
I : Integer;
|
||||||
|
El : TPasElement;
|
||||||
|
|
||||||
|
begin
|
||||||
|
For I:=0 to List.Count-1 do
|
||||||
|
begin
|
||||||
|
El:=TPasElement(List[I]);
|
||||||
|
if UsePathName then
|
||||||
|
L.AddObject(El.PathName,El)
|
||||||
|
else
|
||||||
|
L.AddObject(El.Name,El);
|
||||||
|
If el is TPasEnumType then
|
||||||
|
AddElementsFromList(L,TPasEnumType(el).Values);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure THTMLWriter.AddModuleIdentifiers(AModule : TPasModule; L : TStrings);
|
procedure THTMLWriter.AddModuleIdentifiers(AModule : TPasModule; L : TStrings);
|
||||||
|
|
||||||
Procedure AddElementsFromList(L : TStrings; List : TFPList);
|
|
||||||
|
|
||||||
Var
|
|
||||||
I : Integer;
|
|
||||||
El : TPasElement;
|
|
||||||
|
|
||||||
begin
|
|
||||||
For I:=0 to List.Count-1 do
|
|
||||||
begin
|
|
||||||
El:=TPasElement(List[I]);
|
|
||||||
L.AddObject(El.Name,El);
|
|
||||||
If el is TPasEnumType then
|
|
||||||
AddElementsFromList(L,TPasEnumType(el).Values);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AddElementsFromList(L,AModule.InterfaceSection.Consts);
|
AddElementsFromList(L,AModule.InterfaceSection.Consts);
|
||||||
AddElementsFromList(L,AModule.InterfaceSection.Types);
|
AddElementsFromList(L,AModule.InterfaceSection.Types);
|
||||||
|
@ -1,22 +1,24 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<CONFIG>
|
<CONFIG>
|
||||||
<ProjectOptions>
|
<ProjectOptions>
|
||||||
<PathDelim Value="/"/>
|
<Version Value="9"/>
|
||||||
<Version Value="6"/>
|
|
||||||
<General>
|
<General>
|
||||||
<Flags>
|
<Flags>
|
||||||
<SaveOnlyProjectUnits Value="True"/>
|
<SaveOnlyProjectUnits Value="True"/>
|
||||||
<MainUnitHasUsesSectionForAllUnits Value="False"/>
|
<MainUnitHasUsesSectionForAllUnits Value="False"/>
|
||||||
<MainUnitHasCreateFormStatements Value="False"/>
|
<MainUnitHasCreateFormStatements Value="False"/>
|
||||||
<MainUnitHasTitleStatement Value="False"/>
|
<MainUnitHasTitleStatement Value="False"/>
|
||||||
|
<LRSInOutputDirectory Value="False"/>
|
||||||
</Flags>
|
</Flags>
|
||||||
<SessionStorage Value="InProjectDir"/>
|
<SessionStorage Value="InProjectDir"/>
|
||||||
<MainUnit Value="0"/>
|
<MainUnit Value="0"/>
|
||||||
<TargetFileExt Value=""/>
|
|
||||||
</General>
|
</General>
|
||||||
<VersionInfo>
|
<VersionInfo>
|
||||||
<ProjectVersion Value=""/>
|
<StringTable ProductVersion=""/>
|
||||||
</VersionInfo>
|
</VersionInfo>
|
||||||
|
<BuildModes Count="1">
|
||||||
|
<Item1 Name="default" Default="True"/>
|
||||||
|
</BuildModes>
|
||||||
<PublishOptions>
|
<PublishOptions>
|
||||||
<Version Value="2"/>
|
<Version Value="2"/>
|
||||||
<IgnoreBinaries Value="False"/>
|
<IgnoreBinaries Value="False"/>
|
||||||
@ -29,7 +31,7 @@
|
|||||||
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||||
</local>
|
</local>
|
||||||
</RunParams>
|
</RunParams>
|
||||||
<Units Count="2">
|
<Units Count="3">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="fpclasschart.pp"/>
|
<Filename Value="fpclasschart.pp"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
@ -40,10 +42,20 @@
|
|||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="dGlobals"/>
|
<UnitName Value="dGlobals"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
|
<Unit2>
|
||||||
|
<Filename Value="fpdocclasstree.pp"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="fpdocclasstree"/>
|
||||||
|
</Unit2>
|
||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
<Version Value="8"/>
|
<Version Value="11"/>
|
||||||
|
<Parsing>
|
||||||
|
<SyntaxOptions>
|
||||||
|
<UseAnsiStrings Value="False"/>
|
||||||
|
</SyntaxOptions>
|
||||||
|
</Parsing>
|
||||||
<Other>
|
<Other>
|
||||||
<CompilerPath Value="$(CompPath)"/>
|
<CompilerPath Value="$(CompPath)"/>
|
||||||
</Other>
|
</Other>
|
||||||
|
@ -19,7 +19,7 @@ program fpclasschart;
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
SysUtils, Classes, Typinfo, Gettext, dom, xmlread,
|
SysUtils, Classes, Typinfo, Gettext, dom, xmlread,
|
||||||
dGlobals, PasTree, PParser,PScanner, xmlwrite;
|
dGlobals, PasTree, PParser,PScanner, xmlwrite, fpdocclasstree;
|
||||||
|
|
||||||
resourcestring
|
resourcestring
|
||||||
STitle = 'fpClassTree - Create class tree from pascal sources';
|
STitle = 'fpClassTree - Create class tree from pascal sources';
|
||||||
@ -37,20 +37,14 @@ type
|
|||||||
|
|
||||||
{ TClassTreeEngine }
|
{ TClassTreeEngine }
|
||||||
|
|
||||||
|
|
||||||
TClassTreeEngine = class(TFPDocEngine)
|
TClassTreeEngine = class(TFPDocEngine)
|
||||||
Private
|
Private
|
||||||
FClassTree : TXMLDocument;
|
FTree : TClassTreeBuilder;
|
||||||
FTreeStart : TDomElement;
|
|
||||||
FObjects : TStringList;
|
FObjects : TStringList;
|
||||||
FObjectKind : TPasObjKind;
|
|
||||||
FParentObject : TPasClassType;
|
|
||||||
function LookForElement(PE: TDomElement; AElement: TPasElement): TDomNode;
|
|
||||||
function NodeMatch(N: TDomNode; AElement: TPasElement): Boolean;
|
|
||||||
Function AddToClassTree(AElement : TPasElement; Var ACount : Integer) : TDomElement;
|
|
||||||
public
|
public
|
||||||
Constructor Create(AClassTree : TXMLDocument; AObjectKind : TPasObjKind);
|
Constructor Create(AClassTree : TXMLDocument; AObjectKind : TPasObjKind);
|
||||||
Destructor Destroy; override;
|
Destructor Destroy; override;
|
||||||
Function BuildTree : Integer;
|
|
||||||
function CreateElement(AClass: TPTreeElement; const AName: String;
|
function CreateElement(AClass: TPTreeElement; const AName: String;
|
||||||
AParent: TPasElement; AVisibility :TPasMemberVisibility;
|
AParent: TPasElement; AVisibility :TPasMemberVisibility;
|
||||||
const ASourceFilename: String; ASourceLinenumber: Integer): TPasElement; override;
|
const ASourceFilename: String; ASourceLinenumber: Integer): TPasElement; override;
|
||||||
@ -95,6 +89,11 @@ type
|
|||||||
Property MaxObjectsPerColumn : Integer Read FMaxObjectsPerColumn Write FMaxObjectsPerColumn;
|
Property MaxObjectsPerColumn : Integer Read FMaxObjectsPerColumn Write FMaxObjectsPerColumn;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TClassTreeBuilder }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{ TChartFormatter }
|
{ TChartFormatter }
|
||||||
|
|
||||||
constructor TClassChartFormatter.Create(AXML: TXMLDocument);
|
constructor TClassChartFormatter.Create(AXML: TXMLDocument);
|
||||||
@ -450,21 +449,11 @@ end;
|
|||||||
|
|
||||||
Constructor TClassTreeEngine.Create(AClassTree : TXMLDocument; AObjectKind : TPasObjKind);
|
Constructor TClassTreeEngine.Create(AClassTree : TXMLDocument; AObjectKind : TPasObjKind);
|
||||||
|
|
||||||
Var
|
|
||||||
N : TDomNode;
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
FClassTree:=AClassTree;
|
|
||||||
FTreeStart:=FClassTree.DocumentElement;
|
|
||||||
FPackage:=TPasPackage.Create('dummy',Nil);
|
FPackage:=TPasPackage.Create('dummy',Nil);
|
||||||
FObjectKind:=AObjectKind;
|
FTree:=TClassTreeBuilder.Create(FPackage,AObjectKind);
|
||||||
FObjects:=TStringList.Create;
|
FObjects:=TStringList.Create;
|
||||||
Case FObjectkind of
|
|
||||||
okObject : FParentObject:=TPasClassType.Create('TObject',FPackage);
|
|
||||||
okClass : FParentObject:=TPasClassType.Create('TObject',FPackage);
|
|
||||||
okInterface : FParentObject:=TPasClassType.Create('IInterface',FPackage);
|
|
||||||
end;
|
|
||||||
FParentObject.ObjKind:=FObjectKind;
|
|
||||||
Inherited Create;
|
Inherited Create;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -474,89 +463,7 @@ begin
|
|||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Function TClassTreeEngine.BuildTree : Integer;
|
|
||||||
|
|
||||||
Var
|
|
||||||
I : Integer;
|
|
||||||
PC : TPasClassType;
|
|
||||||
|
|
||||||
begin
|
|
||||||
Result:=0;
|
|
||||||
FObjects.Sorted:=True;
|
|
||||||
For I:=0 to FObjects.Count-1 do
|
|
||||||
begin
|
|
||||||
PC:=TPasClassType(FObjects.Objects[i]);
|
|
||||||
If (PC.ObjKind=FObjectKind) and Not PC.IsForward then
|
|
||||||
AddToClassTree(PC as TPasElement,Result)
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
Function TClassTreeEngine.NodeMatch(N : TDomNode; AElement : TPasElement) : Boolean;
|
|
||||||
|
|
||||||
begin
|
|
||||||
Result:=(N.NodeType=ELEMENT_NODE) and (CompareText(N.NodeName,AElement.Name)=0)
|
|
||||||
end;
|
|
||||||
|
|
||||||
Function TClassTreeEngine.LookForElement(PE : TDomElement; AElement : TPasElement) : TDomNode;
|
|
||||||
|
|
||||||
Var
|
|
||||||
N : TDomNode;
|
|
||||||
|
|
||||||
begin
|
|
||||||
Result:=PE.FirstChild;
|
|
||||||
While (Result<>Nil) and Not NodeMatch(Result,AElement) do
|
|
||||||
Result:=Result.NextSibling;
|
|
||||||
If (Result=Nil) then
|
|
||||||
begin
|
|
||||||
N:=PE.FirstChild;
|
|
||||||
While (Result=Nil) and (N<>Nil) do
|
|
||||||
begin
|
|
||||||
if (N.NodeType=ELEMENT_NODE) then
|
|
||||||
begin
|
|
||||||
Result:=LookForElement(N as TDomElement,AElement);
|
|
||||||
end;
|
|
||||||
N:=N.NextSibling;
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
|
|
||||||
Function TClassTreeEngine.AddToClassTree(AElement : TPasElement; Var ACount : Integer) : TDomElement;
|
|
||||||
|
|
||||||
Var
|
|
||||||
PC : TPasClassType;
|
|
||||||
PE : TDomElement;
|
|
||||||
M : TPasModule;
|
|
||||||
N : TDomNode;
|
|
||||||
|
|
||||||
begin
|
|
||||||
PE:=Nil;
|
|
||||||
If (AElement is TPasClassType) then
|
|
||||||
begin
|
|
||||||
PC:=AElement as TPasClassType;
|
|
||||||
If not Assigned(PC.AncestorType) and (CompareText(PC.Name,FParentObject.Name)<>0) then
|
|
||||||
PC.AncestorType:=FParentObject;
|
|
||||||
If Assigned(PC.AncestorType) then
|
|
||||||
PE:=AddToClassTree(PC.AncestorType,ACount);
|
|
||||||
end;
|
|
||||||
If (PE=Nil) then
|
|
||||||
PE:=FTreeStart;
|
|
||||||
N:=LookForElement(PE,AElement);
|
|
||||||
If (N<>Nil) then
|
|
||||||
Result:=N as TDomElement
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Inc(ACount);
|
|
||||||
Result:=FClassTree.CreateElement(AElement.Name);
|
|
||||||
If Not (AElement is TPasUnresolvedTypeRef) then
|
|
||||||
begin
|
|
||||||
M:=AElement.GetModule;
|
|
||||||
if Assigned(M) then
|
|
||||||
Result['unit']:=M.Name;
|
|
||||||
end;
|
|
||||||
PE.AppendChild(Result);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
{ ---------------------------------------------------------------------
|
{ ---------------------------------------------------------------------
|
||||||
Main program. Document all units.
|
Main program. Document all units.
|
||||||
---------------------------------------------------------------------}
|
---------------------------------------------------------------------}
|
||||||
@ -636,7 +543,7 @@ begin
|
|||||||
Engine := TClassTreeEngine.Create(XML,AObjectKind);
|
Engine := TClassTreeEngine.Create(XML,AObjectKind);
|
||||||
Try
|
Try
|
||||||
ParseSource(Engine,InputFiles[I],OSTarget,CPUTarget);
|
ParseSource(Engine,InputFiles[I],OSTarget,CPUTarget);
|
||||||
ACount:=ACount+Engine.BuildTree;
|
ACount:=ACount+Engine.Ftree.BuildTree(Engine.FObjects);
|
||||||
Finally
|
Finally
|
||||||
Engine.Free;
|
Engine.Free;
|
||||||
end;
|
end;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: fpdoc.css,v 1.1 2003/03/17 23:03:20 michael Exp $
|
$Id: fpdoc.cst,v 1.1 2005/01/02 16:22:16 michael Exp $
|
||||||
|
|
||||||
Default style sheet for FPDoc reference documentation
|
Default style sheet for FPDoc reference documentation
|
||||||
by Sebastian Guenther, sg@freepascal.org
|
by Sebastian Guenther, sg@freepascal.org
|
||||||
@ -62,6 +62,10 @@ span.code {
|
|||||||
span.sym {
|
span.sym {
|
||||||
color: darkred
|
color: darkred
|
||||||
}
|
}
|
||||||
|
/* No wordwrap in code fragments */
|
||||||
|
span.code {
|
||||||
|
white-space: nowrap
|
||||||
|
}
|
||||||
|
|
||||||
/* keywords in source fragments */
|
/* keywords in source fragments */
|
||||||
span.kw {
|
span.kw {
|
||||||
@ -127,40 +131,30 @@ table.bar {
|
|||||||
background-color: #a0c0ff;
|
background-color: #a0c0ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
td p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
span.bartitle {
|
span.bartitle {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
color: darkblue
|
color: darkblue
|
||||||
}
|
}
|
||||||
|
|
||||||
span.footer {
|
span.toggletreeclose {
|
||||||
font-style: italic;
|
background: url(minus.png) center left no-repeat;
|
||||||
color: darkblue
|
padding-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* definition list */
|
span.toggletreeopen {
|
||||||
dl {
|
background: url(plus.png) center left no-repeat;
|
||||||
border: 3px double #ccc;
|
padding-left: 20px;
|
||||||
padding: 0.5em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* definition list: term */
|
ul.classtreelist li { padding-left: 0px; }
|
||||||
dt {
|
|
||||||
float: left;
|
|
||||||
clear: left;
|
|
||||||
width: auto; /* normally browsers default width of largest item */
|
|
||||||
padding-right: 20px;
|
|
||||||
font-weight: bold;
|
|
||||||
color: darkgreen;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* definition list: description */
|
ul.classtreelist { list-style-type:none; }
|
||||||
dd {
|
|
||||||
margin: 0 0 0 110px;
|
|
||||||
padding: 0 0 0.5em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* for browsers in standards compliance mode */
|
li.classtree ul { display: block; }
|
||||||
td p {
|
|
||||||
margin: 0;
|
li.classtreeclosed ul { display: none; }
|
||||||
}
|
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
<RunParams>
|
<RunParams>
|
||||||
<local>
|
<local>
|
||||||
<FormatVersion Value="1"/>
|
<FormatVersion Value="1"/>
|
||||||
<CommandLineParams Value="--project=fpdoc.xml"/>
|
<CommandLineParams Value="--package=me --output=me --input=ct.pp --format=html"/>
|
||||||
<LaunchingApplication PathPlusParams="/usr/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
<LaunchingApplication PathPlusParams="/usr/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||||
</local>
|
</local>
|
||||||
</RunParams>
|
</RunParams>
|
||||||
@ -40,7 +40,7 @@
|
|||||||
<PackageName Value="FCL"/>
|
<PackageName Value="FCL"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="15">
|
<Units Count="16">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="fpdoc.pp"/>
|
<Filename Value="fpdoc.pp"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
@ -116,6 +116,11 @@
|
|||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="mkfpdoc"/>
|
<UnitName Value="mkfpdoc"/>
|
||||||
</Unit14>
|
</Unit14>
|
||||||
|
<Unit15>
|
||||||
|
<Filename Value="fpdocclasstree.pp"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="fpdocclasstree"/>
|
||||||
|
</Unit15>
|
||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
|
@ -23,6 +23,7 @@ uses
|
|||||||
{$endif}
|
{$endif}
|
||||||
SysUtils, Classes, Gettext, custapp,
|
SysUtils, Classes, Gettext, custapp,
|
||||||
dGlobals, // Global definitions, constants.
|
dGlobals, // Global definitions, constants.
|
||||||
|
fpdocclasstree, // Class tree builder
|
||||||
dwriter, // TFPDocWriter definition.
|
dwriter, // TFPDocWriter definition.
|
||||||
dwlinear, // Linear (abstract) writer
|
dwlinear, // Linear (abstract) writer
|
||||||
dw_LaTeX, // TLaTex writer
|
dw_LaTeX, // TLaTex writer
|
||||||
|
160
utils/fpdoc/fpdocclasstree.pp
Normal file
160
utils/fpdoc/fpdocclasstree.pp
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
unit fpdocclasstree;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, DOM, pastree;
|
||||||
|
|
||||||
|
Type
|
||||||
|
TClassTreeBuilder = Class
|
||||||
|
Private
|
||||||
|
FClassTree : TXMLDocument;
|
||||||
|
FTreeStart : TDomElement;
|
||||||
|
FObjectKind : TPasObjKind;
|
||||||
|
FPackage: TPasPackage;
|
||||||
|
FParentObject : TPasClassType;
|
||||||
|
Protected
|
||||||
|
function LookForElement(PE: TDomElement; AElement: TPasElement): TDomNode;
|
||||||
|
function NodeMatch(N: TDomNode; AElement: TPasElement): Boolean;
|
||||||
|
Function AddToClassTree(AElement : TPasElement; Var ACount : Integer) : TDomElement;
|
||||||
|
Public
|
||||||
|
Constructor Create(APackage : TPasPackage; AObjectKind : TPasObjKind = okClass);
|
||||||
|
Destructor Destroy; override;
|
||||||
|
Function BuildTree(AObjects : TStringList) : Integer;
|
||||||
|
Property ClassTree : TXMLDocument Read FClassTree;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
constructor TClassTreeBuilder.Create(APackage : TPasPackage;
|
||||||
|
AObjectKind: TPasObjKind);
|
||||||
|
Var
|
||||||
|
N : TDomNode;
|
||||||
|
begin
|
||||||
|
FCLassTree:=TXMLDocument.Create;
|
||||||
|
FPackage:=APAckage;
|
||||||
|
FObjectKind:=AObjectKind;
|
||||||
|
Case FObjectkind of
|
||||||
|
okObject : FParentObject:=TPasClassType.Create('System.TObject',FPackage);
|
||||||
|
okClass : FParentObject:=TPasClassType.Create('System.TObject',FPackage);
|
||||||
|
okInterface : FParentObject:=TPasClassType.Create('System.IInterface',FPackage);
|
||||||
|
end;
|
||||||
|
FParentObject.ObjKind:=FObjectKind;
|
||||||
|
FTreeStart:=FClassTree.CreateElement('TObject');
|
||||||
|
FTreeStart['unit']:='System';
|
||||||
|
ClassTree.AppendChild(FTreeStart);
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TClassTreeBuilder.Destroy;
|
||||||
|
begin
|
||||||
|
FreeAndNil(FClassTree);
|
||||||
|
Inherited;
|
||||||
|
end;
|
||||||
|
Function TClassTreeBuilder.BuildTree(AObjects : TStringList) : Integer;
|
||||||
|
|
||||||
|
Var
|
||||||
|
I : Integer;
|
||||||
|
PC : TPasClassType;
|
||||||
|
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
AObjects.Sorted:=True;
|
||||||
|
For I:=0 to AObjects.Count-1 do
|
||||||
|
begin
|
||||||
|
PC:=TPasClassType(AObjects.Objects[i]);
|
||||||
|
If (PC.ObjKind=FObjectKind) and Not PC.IsForward then
|
||||||
|
begin
|
||||||
|
AddToClassTree(PC as TPasElement,Result)
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Function TClassTreeBuilder.NodeMatch(N : TDomNode; AElement : TPasElement) : Boolean;
|
||||||
|
|
||||||
|
Var
|
||||||
|
S : String;
|
||||||
|
|
||||||
|
begin
|
||||||
|
Result:=(N.NodeType=ELEMENT_NODE);
|
||||||
|
if Result then
|
||||||
|
begin
|
||||||
|
S:=N.NodeName;
|
||||||
|
S:=FPackage.Name+'.'+TDomElement(N)['unit']+'.'+S;
|
||||||
|
Result:= (CompareText(S,AElement.PathName)=0)
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Function TClassTreeBuilder.LookForElement(PE : TDomElement; AElement : TPasElement) : TDomNode;
|
||||||
|
|
||||||
|
Var
|
||||||
|
N : TDomNode;
|
||||||
|
|
||||||
|
begin
|
||||||
|
Result:=PE;
|
||||||
|
While (Result<>Nil) and Not NodeMatch(Result,AElement) do
|
||||||
|
Result:=Result.NextSibling;
|
||||||
|
If (Result=Nil) then
|
||||||
|
begin
|
||||||
|
N:=PE.FirstChild;
|
||||||
|
While (Result=Nil) and (N<>Nil) do
|
||||||
|
begin
|
||||||
|
if (N.NodeType=ELEMENT_NODE) then
|
||||||
|
begin
|
||||||
|
Result:=LookForElement(N as TDomElement,AElement);
|
||||||
|
end;
|
||||||
|
N:=N.NextSibling;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
Function TClassTreeBuilder.AddToClassTree(AElement : TPasElement; Var ACount : Integer) : TDomElement;
|
||||||
|
|
||||||
|
Var
|
||||||
|
PC : TPasClassType;
|
||||||
|
PE : TDomElement;
|
||||||
|
M : TPasModule;
|
||||||
|
N : TDomNode;
|
||||||
|
|
||||||
|
begin
|
||||||
|
Result:=Nil;
|
||||||
|
If (AElement=Nil) then
|
||||||
|
Result:=FTreeStart
|
||||||
|
else If (AElement is TPasClassType) then
|
||||||
|
begin
|
||||||
|
Writeln('Doing ',AElement.Name);
|
||||||
|
if (AElement=FParentObject) then
|
||||||
|
Result:=FTreeStart
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
PC:=AElement as TPasClassType;
|
||||||
|
PE:=AddToClassTree(PC.AncestorType,ACount);
|
||||||
|
N:=LookForElement(PE,AElement);
|
||||||
|
If (N<>Nil) then
|
||||||
|
Result:=N as TDomElement
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Inc(ACount);
|
||||||
|
Result:=FClassTree.CreateElement(AElement.Name);
|
||||||
|
If Not (AElement is TPasUnresolvedTypeRef) then
|
||||||
|
begin
|
||||||
|
M:=AElement.GetModule;
|
||||||
|
if Assigned(M) then
|
||||||
|
Result['unit']:=M.Name;
|
||||||
|
end;
|
||||||
|
if (PE=FTreeStart) then
|
||||||
|
begin
|
||||||
|
Writeln('Adding to tree start :',AELement.Name);
|
||||||
|
Writeln('Have ancestor : ',PC.AncestorType<>Nil);
|
||||||
|
if (PC.AncestorType<>Nil) then
|
||||||
|
Writeln(PC.AncestorType.ClassName, ' : '+PC.AncestorType.Name);
|
||||||
|
end;
|
||||||
|
PE.AppendChild(Result);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
20
utils/fpdoc/minusimage.inc
Normal file
20
utils/fpdoc/minusimage.inc
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
Const
|
||||||
|
MinusImageData : Array[0..273] of byte = (
|
||||||
|
137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0,
|
||||||
|
0, 0, 19, 0, 0, 0, 19, 8, 4, 0, 0, 0,216, 89,254, 71, 0,
|
||||||
|
0, 0, 2, 98, 75, 71, 68, 0,238,237, 63,236, 77, 0, 0, 0, 9,
|
||||||
|
112, 72, 89,115, 0, 0, 0, 72, 0, 0, 0, 72, 0, 70,201,107, 62,
|
||||||
|
0, 0, 0, 9,118,112, 65,103, 0, 0, 0, 19, 0, 0, 0, 19, 0,
|
||||||
|
241,127,140,174, 0, 0, 0, 63, 73, 68, 65, 84, 40,207, 99,124,199,
|
||||||
|
64, 12, 96, 34, 74,213,192, 40, 99, 65, 48, 39,253, 71,151,204, 99,
|
||||||
|
196,162,140,129,161, 30, 69, 81, 35, 61,220,198,192,192,192, 0,119,
|
||||||
|
12,195,127,124,202,254,227, 48,141,134,110,107,196,169,140,113,232,
|
||||||
|
167, 16, 0,229, 60, 7,139,203,229, 71, 3, 0, 0, 0, 37,116, 69,
|
||||||
|
88,116,100, 97,116,101, 58, 99,114,101, 97,116,101, 0, 50, 48, 49,
|
||||||
|
50, 45, 49, 50, 45, 50, 48, 84, 49, 53, 58, 48, 52, 58, 52, 48, 43,
|
||||||
|
48, 49, 58, 48, 48, 36,251,160,191, 0, 0, 0, 37,116, 69, 88,116,
|
||||||
|
100, 97,116,101, 58,109,111,100,105,102,121, 0, 50, 48, 49, 50, 45,
|
||||||
|
49, 50, 45, 50, 48, 84, 49, 53, 58, 48, 52, 58, 52, 48, 43, 48, 49,
|
||||||
|
58, 48, 48, 85,166, 24, 3, 0, 0, 0, 0, 73, 69, 78, 68,174, 66,
|
||||||
|
96,130);
|
21
utils/fpdoc/plusimage.inc
Normal file
21
utils/fpdoc/plusimage.inc
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
Const
|
||||||
|
PlusImageData : Array[0..288] of byte = (
|
||||||
|
137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0,
|
||||||
|
0, 0, 19, 0, 0, 0, 19, 8, 4, 0, 0, 0,216, 89,254, 71, 0,
|
||||||
|
0, 0, 2, 98, 75, 71, 68, 0,238,237, 63,236, 77, 0, 0, 0, 9,
|
||||||
|
112, 72, 89,115, 0, 0, 0, 72, 0, 0, 0, 72, 0, 70,201,107, 62,
|
||||||
|
0, 0, 0, 9,118,112, 65,103, 0, 0, 0, 19, 0, 0, 0, 19, 0,
|
||||||
|
241,127,140,174, 0, 0, 0, 78, 73, 68, 65, 84, 40,207, 99,124,199,
|
||||||
|
64, 12, 96, 34, 74,213,192, 40, 99, 65, 48, 39,253, 71,151,204, 99,
|
||||||
|
196,162,140,129,161, 30, 69, 81, 35,126, 75, 25, 49,133,200,112, 27,
|
||||||
|
194, 36, 70, 6, 6,134,255,248,148,253,103, 96, 96, 96,100,192,240,
|
||||||
|
11, 5,225,246, 31,139, 50, 20, 75, 27, 25,112, 1,198,161,159, 66,
|
||||||
|
0, 47,159, 9,140, 36, 84,124, 38, 0, 0, 0, 37,116, 69, 88,116,
|
||||||
|
100, 97,116,101, 58, 99,114,101, 97,116,101, 0, 50, 48, 49, 50, 45,
|
||||||
|
49, 50, 45, 50, 48, 84, 49, 53, 58, 48, 52, 58, 50, 50, 43, 48, 49,
|
||||||
|
58, 48, 48,117, 11,184, 17, 0, 0, 0, 37,116, 69, 88,116,100, 97,
|
||||||
|
116,101, 58,109,111,100,105,102,121, 0, 50, 48, 49, 50, 45, 49, 50,
|
||||||
|
45, 50, 48, 84, 49, 53, 58, 48, 52, 58, 50, 50, 43, 48, 49, 58, 48,
|
||||||
|
48, 4, 86, 0,173, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130
|
||||||
|
);
|
Loading…
Reference in New Issue
Block a user