STATIC s_cNewLine
FUNCTION Main()
LOCAL oHTML := THTML():New()
s_cNewLine := HB_OSNewLine()
oHTML:SetTitle( "Harbour Power Demonstration" )
oHTML:AddHead( "Harbour Project" )
oHTML:AddPara( "<B>Harbour</B> is xBase at its best. Have a taste today!", "LEFT" )
oHTML:AddPara( "<B>L i n k s</B>", "CENTER" )
oHTML:AddLink( "http://www.Harbour-Project.org", "Meet the harbour power!" )
oHTML:Generate()
oHTML:ShowResult()
RETURN( NIL )
FUNCTION THTML
STATIC oClass
IF oClass == NIL
oClass = HBClass():New( "THTML" )
oClass:AddData( "cTitle" ) oClass:AddData( "cBody" ) oClass:AddData( "cBGColor" ) oClass:AddData( "cLinkColor" ) oClass:AddData( "cvLinkColor" ) oClass:AddData( "cContent" ) oClass:AddMethod( "New", @New() ) oClass:AddMethod( "SetTitle", @SetTitle() ) oClass:AddMethod( "AddHead", @AddHead() ) oClass:AddMethod( "AddLink", @AddLink() ) oClass:AddMethod( "AddPara", @AddPara() ) oClass:AddMethod( "Generate", @Generate() ) oClass:AddMethod( "SaveToFile", @SaveToFile() ) oClass:AddMethod( "ShowResult", @ShowResult() ) oClass:Create()
ENDIF
RETURN( oClass:Instance() )
STATIC FUNCTION New()
LOCAL Self := QSelf()
::cTitle := "Untitled"
::cBGColor := "#FFFFFF"
::cLinkColor := "#0000FF"
::cvLinkColor := "#FF0000"
::cContent := ""
::cBody := ""
RETURN( Self )
STATIC FUNCTION SetTitle( cTitle )
LOCAL Self := QSelf()
::cTitle := cTitle
RETURN( Self )
STATIC FUNCTION AddLink( cLinkTo, cLinkName )
LOCAL Self := QSelf()
::cBody := ::cBody + ;
"<A HREF='" + cLinkTo + "'>" + cLinkName + "</A>"
RETURN( Self )
STATIC FUNCTION AddHead( cDescr )
LOCAL Self := QSelf()
::cBody := ::cBody + ;
"<H1>" + cDescr + "</H1>"
RETURN( NIL )
STATIC FUNCTION AddPara( cPara, cAlign )
LOCAL Self := QSelf()
cAlign:=If(cAlign==NIL,"Left",cAlign) ::cBody := ::cBody + ;
"<P ALIGN='" + cAlign + "'>" + s_cNewLine + ;
cPara + s_cNewLine + ;
"</P>"
RETURN( Self )
STATIC FUNCTION Generate()
LOCAL Self := QSelf()
::cContent := ;
"<HTML><HEAD>" + s_cNewLine + ;
"<TITLE>" + ::cTitle + "</TITLE>" + s_cNewLine + ;
"<BODY link='" + ::cLinkColor + "' " + ;
"vlink='" + ::cvLinkColor + "'>" + + s_cNewLine + ;
::cBody + s_cNewLine + ;
"</BODY></HTML>"
RETURN( Self )
STATIC FUNCTION ShowResult()
LOCAL Self := QSelf()
OutStd( ;
; "CONTENT-TYPE: TEXT/HTML" + s_cNewLine + s_cNewLine + ;
::cContent )
RETURN( Self )
STATIC FUNCTION SaveToFile( cFile )
LOCAL Self := QSelf()
LOCAL hFile := fCreate( cFile )
fWrite( hFile, ::cContent )
fClose( hFile )
RETURN( Self )