00001 #ifndef sitemap_h 00002 #define sitemap_h 00003 00004 #include "tag.h" 00005 00006 class SitemapBase : private Tag 00007 { 00008 private: 00009 00010 bool is_valid_tag; 00011 bool blockquote; 00012 bool local_system; 00013 std::string menu; 00014 std::string position; 00015 std::string target; 00016 std::string nav_up; 00017 std::string nav_down; 00018 00019 int indent_num; 00020 std::string indent_type; 00021 00023 std::string highlight_type; 00024 std::string highlight_menu_type; 00025 std::string highlight_highlight_type; 00026 std::string highlight_highlight_menu_type; 00027 00028 00030 std::string highlight_active_type; 00031 std::string highlight_active_menu_type; 00032 00033 std::string blockquote_principe; 00034 00035 bool override; 00036 00037 std::string title_type; // better expressions with style sheets 00038 std::string title_menu_type; // better expressions with style sheets 00039 std::string title_highlight_type; // better expressions with style sheets 00040 std::string title_highlight_menu_type; // better expressions with style sheets 00041 00042 public: 00043 SitemapBase( Line& line, std::string tag_type ); 00044 SitemapBase() : Tag() {} 00045 00046 bool operator!() const { return !is_valid_tag; } 00047 00049 00052 bool is_blockquote() const { return blockquote; } 00053 bool is_local_system() const { return local_system; } 00054 std::string get_menu() const { return menu; } 00055 std::string get_position() const { return position; } 00057 std::string get_target() const { return target; } 00058 00059 std::string get_nav_up() const { return nav_up; } 00060 std::string get_nav_down() const { return nav_down; } 00061 00062 int get_indent_num() const { return indent_num; } 00063 std::string get_indent_type() const { return indent_type; } 00064 std::string get_highlight_type() const { return highlight_type; } 00065 std::string get_highlight_active_type() const { return highlight_active_type; } 00066 std::string get_highlight_menu_type() const { return highlight_menu_type; } 00067 std::string get_highlight_active_menu_type() const { return highlight_active_menu_type; } 00068 std::string get_blockquote_principe() const { return blockquote_principe; } 00069 std::string get_title_type() const { return title_type; } 00070 std::string get_title_menu_type() const { return title_menu_type; } 00071 std::string get_title_highlight_type() const { return title_highlight_type; } 00072 std::string get_title_highlight_menu_type() const { return title_highlight_menu_type; } 00073 bool get_override() const { return override; } 00074 }; 00075 00076 00078 00082 class Sitemap : public SitemapBase 00083 { 00084 public: 00085 Sitemap(Line& line ) 00086 : SitemapBase( line, "sitemap" ){} 00087 00088 }; 00089 00091 00095 class Here : public SitemapBase 00096 { 00097 public: 00098 Here( Line& line ) 00099 : SitemapBase( line, "here" ){} 00100 }; 00101 00103 00104 class Link : private Tag 00105 { 00106 private: 00107 00108 std::string path; 00109 std::string position; 00110 std::string target; 00111 bool is_valid_tag; 00112 std::string nav_up; 00113 std::string nav_down; 00114 std::string highlight_type; 00115 std::string highlight_active_type; 00116 std::string highlight_menu_type; 00117 std::string highlight_active_menu_type; 00118 bool override; 00119 std::string title_type; // better expressions with style sheets 00120 std::string title_menu_type; // better expressions with style sheets 00121 std::string title_highlight_type; 00122 std::string title_highlight_menu_type; 00123 00124 public: 00125 Link( Line& line ); 00126 Link() : Tag() {} 00127 00128 bool operator!() const { return !is_valid_tag; } 00129 00130 std::string get_path() const { return path; } 00131 00132 std::string get_position() const { return position; } 00133 00135 std::string get_target() const { return target; } 00136 00137 std::string get_nav_up() const { return nav_up; } 00138 std::string get_nav_down() const { return nav_down; } 00139 00140 std::string get_highlight_type() const { return highlight_type; } 00141 std::string get_highlight_active_type() const { return highlight_active_type; } 00142 bool get_override() const { return override; } 00143 std::string get_title_type() const { return title_type; } 00144 std::string get_title_menu_type() const { return title_menu_type; } 00145 std::string get_highlight_menu_type() const { return highlight_menu_type; } 00146 std::string get_highlight_active_menu_type() const { return highlight_active_menu_type; } 00147 std::string get_title_highlight_type() const { return title_highlight_type; } 00148 std::string get_title_highlight_menu_type() const { return title_highlight_menu_type; } 00149 }; 00150 00151 #endif