00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 #ifndef __XB_HTML_H__
00052 #define __XB_HTML_H__
00053
00054 #ifdef __GNUG__
00055 #pragma interface
00056 #endif
00057
00058 #ifdef __WIN32__
00059 #include <xbase/xbconfigw32.h>
00060 #else
00061 #include <xbase/xbconfig.h>
00062 #endif
00063
00064 #include <stdlib.h>
00065 #include <string.h>
00066
00067 #include <xbase/xtypes.h>
00068
00072
00073
00076 struct xbFieldList{
00077 char * Label;
00078 char * FieldName;
00079 xbShort FieldLen;
00080 xbShort FieldNo;
00081 xbShort Option;
00082 };
00083
00084 typedef char **xbArrayPtr;
00085
00087
00089 class XBDLLEXPORT xbHtml {
00090 public:
00091 xbHtml ( void );
00093
00095 void BoldOff( void ) { cout << "</b>\n"; };
00097
00099 void BoldOn( void ) { cout << "<b>"; };
00101
00103 void Bullet( void ) { cout << "<li>"; };
00104 void DumpArray( void );
00106
00108 void EmphasizeOff( void ) { cout << "</em>\n"; };
00110
00112 void EmphasizeOn( void ) { cout << "<em>"; };
00114
00116 void EndHtmlPage( void ) { cout << "</BODY>\n</HTML>\n"; }
00117 xbShort GenFormFields(xbDbf *d, xbShort Option,const char * Title,xbFieldList *fl);
00118 xbShort GetArrayNo( const char * FieldName );
00119 const char * GetCookie( const char *CookieName );
00120 char * GetData( xbShort );
00121 char * GetDataForField( const char *FieldName );
00122 char * GetEnv( char * s ){ return getenv( s ); }
00123 xbShort GetMethod( void );
00125
00127 void HeaderOff( xbShort i ){ cout << "</h" << i << ">\n"; };
00129
00131 void HeaderOn( xbShort i ){ cout << "<h" << i << ">\n"; };
00133
00135 void ItalicOff( void ) { cout << "</i>\n"; };
00137
00139 void ItalicOn( void ) { cout << "<i>"; };
00141
00143 void NewLine( void ) { cout << "<br>"; }
00144 xbShort PostMethod( void );
00145 void PrintEncodedChar( char );
00146 void PrintEncodedString( const char *s );
00148
00150 void PrintHtml( char * s ) { cout << s; };
00152
00154 void PrintHtml( xbLong l ) { cout << l; };
00156
00158 void PrintHtml( xbShort i ) { cout << i; };
00160
00162 void PrintHtml( int i ) { cout << i; };
00163 void StartHtmlPage( const char *Title );
00165
00167 void StartTextPage( void ) { cout << "Content-type: text/plain\n\n"; }
00168 void TextOut( const char *String );
00169 xbLong Tally( const char *FileName );
00170 xbShort SetCookie(const char *Name, const char *Value, const char *ExpDate,
00171 const char *ExpTime,const char *TimeZone, const char *Path,
00172 const char *Domain, xbShort Secure );
00173 void SpaceToPlus( char * );
00174 void PlusToSpace( char * );
00175 void SendRedirect( char * ) const;
00176
00177 protected:
00178 xbArrayPtr FieldNameArray;
00179 xbArrayPtr DataValueArray;
00180 xbShort NoOfDataFields;
00181 char * HtmlWorkBuf;
00182 xbShort HtmlBufLen;
00183 void LoadArray( void );
00184 void DeleteEscChars( char *String );
00185 void InitVals( void );
00186 };
00187
00188 #endif // __XB_HTML_H__