<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="cpp2html 1.2 by Lorenzo Bettini, bettini@gnu.org http://w3.newnet.it/bettini http://www.gnu.org/software/cpp2html/cpp2html.html"> <title>source file</title> <link rel="stylesheet" href="mono.css" type="text/css"> </head> <body> <pre> <tt> <span class="keyword">#ifndef</span> TAGS_H <span class="keyword">#define</span> TAGS_H <span class="keyword">#define</span> QUOTATION_MARK <span class="string">"&quot;"</span> <span class="keyword">#define</span> LESS_THAN <span class="string">"&lt;"</span> <span class="keyword">#define</span> GREATER_THAN <span class="string">"&gt;"</span> <span class="keyword">#define</span> AMPERSAND <span class="string">"&amp;"</span> <span class="keyword">#define</span> NEWLINE <span class="string">"<br>"</span> <span class="keyword">#define</span> SPACE_CHAR <span class="string">" "</span> <span class="keyword">#define</span> FONT_TAG <span class="string">"font"</span> <span class="keyword">#define</span> COLOR_TAG <span class="string">"color"</span> <span class="keyword">#define</span> BOLD_TAG <span class="string">"b"</span> <span class="keyword">#define</span> ITALIC_TAG <span class="string">"i"</span> <span class="keyword">#define</span> UNDERLINE_TAG <span class="string">"u"</span> <span class="keyword">#define</span> ISBOLD <span class="number">0x1</span> <span class="keyword">#define</span> ISITALIC <span class="number">0x2</span> <span class="keyword">#define</span> ISUNDERLINE <span class="number">0x4</span> <span class="keyword">#include</span> <span class="string">"list.h"</span> <span class="keyword">#include</span> <span class="string">"colors.h"</span> <span class="keyword">#include</span> <span class="string"><iostream.h></span> <span class="keyword">#include</span> <span class="string"><string.h></span> <span class="keyword">class</span> Tag { <span class="keyword">protected</span>: <span class="type">char</span> *TagName ; <span class="type">char</span> *color ; <span class="type">int</span> flags ; <span class="keyword">public</span>: Tag( <span class="type">char</span> *n ) : TagName( n ), color( <span class="number">0</span> ), flags( <span class="number">0</span> ) {} Tag( <span class="type">char</span> *n, <span class="type">char</span> *c ) : TagName( n ), flags( <span class="number">0</span> ) { <span class="keyword">if</span> ( strcmp( c, GREEN ) == <span class="number">0</span> ) color = GREEN_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, RED ) == <span class="number">0</span> ) color = RED_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, DARKRED ) == <span class="number">0</span> ) color = DARKRED_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, BLUE ) == <span class="number">0</span> ) color = BLUE_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, BROWN ) == <span class="number">0</span> ) color = BROWN_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, PINK ) == <span class="number">0</span> ) color = PINK_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, YELLOW ) == <span class="number">0</span> ) color = YELLOW_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, CYAN ) == <span class="number">0</span> ) color = CYAN_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, PURPLE ) == <span class="number">0</span> ) color = PURPLE_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, ORANGE ) == <span class="number">0</span> ) color = ORANGE_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, BRIGHTORANGE ) == <span class="number">0</span> ) color = BRIGHTORANGE_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, BRIGHTGREEN ) == <span class="number">0</span> ) color = BRIGHTGREEN_C ; <span class="keyword">else</span> <span class="keyword">if</span> ( strcmp( c, BLACK ) == <span class="number">0</span> ) color = BLACK_C ; <span class="keyword">else</span> color = NULL ; } <span class="type">void</span> SetFlags( <span class="type">int</span> f ) { flags = f ; } <span class="type">char</span> *GetName() { <span class="keyword">return</span> TagName ; } <span class="type">char</span> *GetColor() { <span class="keyword">return</span> color ; } <span class="type">void</span> SetColor( <span class="type">char</span> *col ) { color = col ; } <span class="type">int</span> IsBold() { <span class="keyword">return</span> ( flags & ISBOLD ) ; } <span class="type">int</span> IsItalic() { <span class="keyword">return</span> ( flags & ISITALIC ) ; } <span class="type">int</span> IsUnderline() { <span class="keyword">return</span> ( flags & ISUNDERLINE ) ; } <span class="type">void</span> Print() ; } ; <span class="keyword">class</span> Tags { <span class="keyword">protected</span>: List<Tag *> tagsList ; <span class="keyword">public</span>: Tags() {} <span class="type">void</span> AddTag( Tag *t ) { tagsList.Add( t ) ; } Tag *GetTag( <span class="type">char</span> *name ) ; } ; <span class="keyword">inline</span> Tag * Tags::GetTag( <span class="type">char</span> *name ) { <span class="keyword">if</span> ( tagsList.Empty() ) <span class="keyword">return</span> NULL ; ListNode<Tag *> *tag = tagsList.First() ; <span class="keyword">while</span> ( tag ) { <span class="keyword">if</span> ( strcmp( tag->Elem()->GetName(), name ) == <span class="number">0</span> ) <span class="keyword">return</span> tag->Elem() ; tag = tag->Next() ; } <span class="keyword">return</span> NULL ; } <span class="type">void</span> setTags( Tags *t ) ; Tag *getTag( <span class="type">char</span> *name ) ; <span class="type">void</span> createDefaultTags() ; Tag *newDefaultTag( <span class="type">char</span> *tag, <span class="type">char</span> *color ) ; <span class="keyword">#endif</span> </tt> </pre> </body> </html>