html.inl
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:17k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: html.inl,v $
  4.  * PRODUCTION Revision 1000.3  2004/04/01 21:01:45  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [CORE_002] Dev-tree R1.35
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #if defined(HTML___HTML__HPP)  &&  !defined(HTML___HTML__INL)
  10. #define HTML___HTML__INL
  11. /*  $Id: html.inl,v 1000.3 2004/04/01 21:01:45 gouriano Exp $
  12.  * ===========================================================================
  13.  *
  14.  *                            PUBLIC DOMAIN NOTICE
  15.  *               National Center for Biotechnology Information
  16.  *
  17.  *  This software/database is a "United States Government Work" under the
  18.  *  terms of the United States Copyright Act.  It was written as part of
  19.  *  the author's official duties as a United States Government employee and
  20.  *  thus cannot be copyrighted.  This software/database is freely available
  21.  *  to the public for use. The National Library of Medicine and the U.S.
  22.  *  Government have not placed any restriction on its use or reproduction.
  23.  *
  24.  *  Although all reasonable efforts have been taken to ensure the accuracy
  25.  *  and reliability of the software and data, the NLM and the U.S.
  26.  *  Government do not and cannot warrant the performance or results that
  27.  *  may be obtained by using this software or data. The NLM and the U.S.
  28.  *  Government disclaim all warranties, express or implied, including
  29.  *  warranties of performance, merchantability or fitness for any particular
  30.  *  purpose.
  31.  *
  32.  *  Please cite the author in any work or product based on this material.
  33.  *
  34.  * ===========================================================================
  35.  *
  36.  * Author: Eugene Vasilchenko
  37.  *
  38.  */
  39. inline
  40. const string& CHTMLPlainText::GetText(void) const
  41. {
  42.     return m_Text;
  43. }
  44. inline
  45. void CHTMLPlainText::SetText(const string& text)
  46. {
  47.     m_Text = text;
  48. }
  49. inline
  50. const string& CHTMLText::GetText(void) const
  51. {
  52.     return m_Text;
  53. }
  54. inline
  55. void CHTMLText::SetText(const string& text)
  56. {
  57.     m_Text = text;
  58. }
  59. inline
  60. CHTMLListElement* CHTMLListElement::AppendItem(const char* text)
  61. {
  62.     AppendChild(new CHTML_li(text));
  63.     return this;
  64. }
  65. inline
  66. CHTMLListElement* CHTMLListElement::AppendItem(const string& text)
  67. {
  68.     AppendChild(new CHTML_li(text));
  69.     return this;
  70. }
  71. inline
  72. CHTMLListElement* CHTMLListElement::AppendItem(CNCBINode* node)
  73. {
  74.     AppendChild(new CHTML_li(node));
  75.     return this;
  76. }
  77. inline
  78. CHTML_tc* CHTML_table::NextCell(ECellType type)
  79. {
  80.     return Cell(m_CurrentRow, m_CurrentCol + 1, type);
  81. }
  82. inline
  83. CHTML_tc* CHTML_table::NextRowCell(ECellType type)
  84. {
  85.     return Cell(m_CurrentRow + 1, 0, type);
  86. }
  87. inline
  88. CHTML_tc* CHTML_table::InsertAt(TIndex row, TIndex column, CNCBINode* node)
  89. {
  90.     CHTML_tc* cell = Cell(row, column);
  91.     cell->AppendChild(node);
  92.     return cell;
  93. }
  94. inline
  95. CHTML_tc* CHTML_table::InsertAt(TIndex row, TIndex column, const string& text)
  96. {
  97.     return InsertAt(row, column, new CHTMLPlainText(text));
  98. }
  99. inline
  100. CHTML_tc* CHTML_table::InsertTextAt(TIndex row, TIndex column,
  101.                                     const string& text)
  102. {
  103.     return InsertAt(row, column, text);
  104. }
  105. inline
  106. CHTML_tc* CHTML_table::InsertNextCell(CNCBINode* node)
  107. {
  108.     CHTML_tc* cell = NextCell();
  109.     cell->AppendChild(node);
  110.     return cell;
  111. }
  112. inline
  113. CHTML_tc* CHTML_table::InsertNextCell(const string& text)
  114. {
  115.     return InsertNextCell(new CHTMLPlainText(text));
  116. }
  117. inline
  118. CHTML_tc* CHTML_table::InsertNextRowCell(CNCBINode* node)
  119. {
  120.     CHTML_tc* cell = NextRowCell();
  121.     cell->AppendChild(node);
  122.     return cell;
  123. }
  124. inline
  125. CHTML_tc* CHTML_table::InsertNextRowCell(const string& text)
  126. {
  127.     return InsertNextRowCell(new CHTMLPlainText(text));
  128. }
  129. inline
  130. CHTML_ol::CHTML_ol(bool compact)
  131.     : CParent(sm_TagName, compact)
  132. {
  133.     return;
  134. }
  135. inline
  136. CHTML_ol::CHTML_ol(const char* type, bool compact)
  137.     : CParent(sm_TagName, type, compact)
  138. {
  139.     return;
  140. }
  141. inline
  142. CHTML_ol::CHTML_ol(const string& type, bool compact)
  143.     : CParent(sm_TagName, type, compact)
  144. {
  145.     return;
  146. }
  147. inline
  148. CHTML_ol::CHTML_ol(int start, bool compact)
  149.     : CParent(sm_TagName, compact)
  150. {
  151.     SetStart(start);
  152. }
  153. inline
  154. CHTML_ol::CHTML_ol(int start, const char* type, bool compact)
  155.     : CParent(sm_TagName, type, compact)
  156. {
  157.     SetStart(start);
  158. }
  159. inline
  160. CHTML_ol::CHTML_ol(int start, const string& type, bool compact)
  161.     : CParent(sm_TagName, type, compact)
  162. {
  163.     SetStart(start);
  164. }
  165. inline
  166. CHTML_ul::CHTML_ul(bool compact)
  167.     : CParent(sm_TagName, compact)
  168. {
  169.     return;
  170. }
  171. inline
  172. CHTML_ul::CHTML_ul(const char* type, bool compact)
  173.     : CParent(sm_TagName, type, compact)
  174. {
  175.     return;
  176. }
  177. inline
  178. CHTML_ul::CHTML_ul(const string& type, bool compact)
  179.     : CParent(sm_TagName, type, compact)
  180. {
  181.     return;
  182. }
  183. inline
  184. CHTML_dir::CHTML_dir(bool compact)
  185.     : CParent(sm_TagName, compact)
  186. {
  187.     return;
  188. }
  189. inline
  190. CHTML_dir::CHTML_dir(const char* type, bool compact)
  191.     : CParent(sm_TagName, type, compact)
  192. {
  193.     return;
  194. }
  195. inline
  196. CHTML_dir::CHTML_dir(const string& type, bool compact)
  197.     : CParent(sm_TagName, type, compact)
  198. {
  199.     return;
  200. }
  201. inline
  202. CHTML_menu::CHTML_menu(bool compact)
  203.     : CParent(sm_TagName, compact)
  204. {
  205.     return;
  206. }
  207. inline
  208. CHTML_menu::CHTML_menu(const char* type, bool compact)
  209.     : CParent(sm_TagName, type, compact)
  210. {
  211.     return;
  212. }
  213. inline
  214. CHTML_menu::CHTML_menu(const string& type, bool compact)
  215.     : CParent(sm_TagName, type, compact)
  216. {
  217.     return;
  218. }
  219. inline
  220. CHTML_a::CHTML_a(void)
  221.     : CParent(sm_TagName)
  222. {
  223.     return;
  224. }
  225. inline
  226. CHTML_a::CHTML_a(const string& href)
  227.     : CParent(sm_TagName)
  228. {
  229.     SetHref(href);
  230. }
  231. inline
  232. CHTML_a::CHTML_a(const string& href, CNCBINode* node)
  233.     : CParent(sm_TagName, node)
  234. {
  235.     SetHref(href);
  236. }
  237. inline
  238. CHTML_a::CHTML_a(const string& href, const char* text)
  239.     : CParent(sm_TagName, text)
  240. {
  241.     SetHref(href);
  242. }
  243. inline
  244. CHTML_a::CHTML_a(const string& href, const string& text)
  245.     : CParent(sm_TagName, text)
  246. {
  247.     SetHref(href);
  248. }
  249. inline
  250. CHTML_option::CHTML_option(const string& value, bool selected)
  251.     : CParent(sm_TagName, value)
  252. {
  253.     if ( selected ) {
  254.         SetSelected();
  255.     }
  256. }
  257. inline
  258. CHTML_option::CHTML_option(const string& value, const string& label,
  259.                            bool selected)
  260.     : CParent(sm_TagName, label)
  261. {
  262.     SetValue(value);
  263.     if ( selected ) {
  264.         SetSelected();
  265.     }
  266. }
  267. inline
  268. CHTML_option::CHTML_option(const string& value, const char* label,
  269.                            bool selected)
  270.     : CParent(sm_TagName, label)
  271. {
  272.     SetValue(value);
  273.     if ( selected ) {
  274.         SetSelected();
  275.     }
  276. }
  277. inline
  278. CHTML_select::CHTML_select(const string& name, bool multiple)
  279.     : CParent(sm_TagName)
  280. {
  281.     SetNameAttribute(name);
  282.     if ( multiple ) {
  283.         SetMultiple();
  284.     }
  285. }
  286. inline
  287. CHTML_select::CHTML_select(const string& name, int size, bool multiple)
  288.     : CParent(sm_TagName)
  289. {
  290.     SetNameAttribute(name);
  291.     SetSize(size);
  292.     if ( multiple ) {
  293.         SetMultiple();
  294.     }
  295. }
  296. inline
  297. CHTML_select* CHTML_select::AppendOption(const string& value, bool selected)
  298. {
  299.     AppendChild(new CHTML_option(value, selected));
  300.     return this;
  301. }
  302. inline
  303. CHTML_select* CHTML_select::AppendOption(const string& value,
  304.                                          const string& label, bool selected)
  305. {
  306.     AppendChild(new CHTML_option(value, label, selected));
  307.     return this;
  308. }
  309. inline
  310. CHTML_select* CHTML_select::AppendOption(const string& value,
  311.                                          const char* label, bool selected)
  312. {
  313.     AppendChild(new CHTML_option(value, label, selected));
  314.     return this;
  315. }
  316. inline
  317. CHTML_br::CHTML_br(void)
  318.     : CParent(sm_TagName)
  319. {
  320.     return;
  321. }
  322. inline
  323. CHTML_dl::CHTML_dl(bool compact)
  324.     : CParent(sm_TagName)
  325. {
  326.     if ( compact )
  327.         SetCompact();
  328. }
  329. inline
  330. CHTML_basefont::CHTML_basefont(int size)
  331.     : CParent(sm_TagName)
  332. {
  333.     SetSize(size);
  334. }
  335. inline
  336. CHTML_basefont::CHTML_basefont(const string& typeface)
  337.     : CParent(sm_TagName)
  338. {
  339.     SetTypeFace(typeface);
  340. }
  341. inline
  342. CHTML_basefont::CHTML_basefont(const string& typeface, int size)
  343.     : CParent(sm_TagName)
  344. {
  345.     SetTypeFace(typeface);
  346.     SetSize(size);
  347. }
  348. inline
  349. CHTML_font::CHTML_font(void)
  350.     : CParent(sm_TagName)
  351. {
  352.     return;
  353. }
  354. inline
  355. CHTML_font* CHTML_font::SetFontSize(int size, bool absolute)
  356. {
  357.     if ( absolute ) {
  358.         SetSize(size);
  359.     } else {
  360.         SetRelativeSize(size);
  361.     }
  362.     return this;
  363. }
  364. inline
  365. CHTML_font::CHTML_font(int size,
  366.                        CNCBINode* node)
  367.     : CParent(sm_TagName, node)
  368. {
  369.     SetRelativeSize(size);
  370. }
  371. inline
  372. CHTML_font::CHTML_font(int size,
  373.                        const string& text)
  374.     : CParent(sm_TagName, text)
  375. {
  376.     SetRelativeSize(size);
  377. }
  378. inline
  379. CHTML_font::CHTML_font(int size,
  380.                        const char* text)
  381.     : CParent(sm_TagName, text)
  382. {
  383.     SetRelativeSize(size);
  384. }
  385. inline
  386. CHTML_font::CHTML_font(int size, bool absolute,
  387.                        CNCBINode* node)
  388.     : CParent(sm_TagName, node)
  389. {
  390.     SetFontSize(size, absolute);
  391. }
  392. inline
  393. CHTML_font::CHTML_font(int size, bool absolute,
  394.                        const string& text)
  395.     : CParent(sm_TagName, text)
  396. {
  397.     SetFontSize(size, absolute);
  398. }
  399. inline
  400. CHTML_font::CHTML_font(int size, bool absolute,
  401.                        const char* text)
  402.     : CParent(sm_TagName, text)
  403. {
  404.     SetFontSize(size, absolute);
  405. }
  406. inline
  407. CHTML_font::CHTML_font(const string& typeface,
  408.                        CNCBINode* node)
  409.     : CParent(sm_TagName, node)
  410. {
  411.     SetTypeFace(typeface);
  412. }
  413. inline
  414. CHTML_font::CHTML_font(const string& typeface,
  415.                        const string& text)
  416.     : CParent(sm_TagName, text)
  417. {
  418.     SetTypeFace(typeface);
  419. }
  420. inline
  421. CHTML_font::CHTML_font(const string& typeface,
  422.                        const char* text)
  423.     : CParent(sm_TagName, text)
  424. {
  425.     SetTypeFace(typeface);
  426. }
  427. inline
  428. CHTML_font::CHTML_font(const string& typeface, int size,
  429.                        CNCBINode* node)
  430.     : CParent(sm_TagName, node)
  431. {
  432.     SetTypeFace(typeface);
  433.     SetRelativeSize(size);
  434. }
  435. inline
  436. CHTML_font::CHTML_font(const string& typeface, int size,
  437.                        const string& text)
  438.     : CParent(sm_TagName, text)
  439. {
  440.     SetTypeFace(typeface);
  441.     SetRelativeSize(size);
  442. }
  443. inline
  444. CHTML_font::CHTML_font(const string& typeface, int size,
  445.                        const char* text)
  446.     : CParent(sm_TagName, text)
  447. {
  448.     SetTypeFace(typeface);
  449.     SetRelativeSize(size);
  450. }
  451. inline
  452. CHTML_font::CHTML_font(const string& typeface, int size, bool absolute,
  453.                        CNCBINode* node)
  454.     : CParent(sm_TagName, node)
  455. {
  456.     SetTypeFace(typeface);
  457.     SetFontSize(size, absolute);
  458. }
  459. inline
  460. CHTML_font::CHTML_font(const string& typeface, int size, bool absolute,
  461.                        const string& text)
  462.     : CParent(sm_TagName, text)
  463. {
  464.     SetTypeFace(typeface);
  465.     SetFontSize(size, absolute);
  466. }
  467. inline
  468. CHTML_font::CHTML_font(const string& typeface, int size, bool absolute,
  469.                        const char* text)
  470.     : CParent(sm_TagName, text)
  471. {
  472.     SetTypeFace(typeface);
  473.     SetFontSize(size, absolute);
  474. }
  475. inline
  476. CHTML_color::CHTML_color(const string& color, const string& text)
  477. {
  478.     SetColor(color);
  479.     AppendPlainText(text);
  480. }
  481. inline
  482. CHTML_color::CHTML_color(const string& color, CNCBINode* node)
  483. {
  484.     SetColor(color);
  485.     AppendChild(node);
  486. }
  487. inline
  488. CHTML_hr* CHTML_hr::SetNoShade(bool noShade)
  489. {
  490.     if ( noShade ) {
  491.         SetNoShade();
  492.     }
  493.     return this;
  494. }
  495. inline
  496. CHTML_hr::CHTML_hr(bool noShade)
  497.     : CParent(sm_TagName)
  498. {
  499.     SetNoShade(noShade);
  500. }
  501. inline
  502. CHTML_hr::CHTML_hr(int size, bool noShade)
  503.     : CParent(sm_TagName)
  504. {
  505.     SetSize(size);
  506.     SetNoShade(noShade);
  507. }
  508. inline
  509. CHTML_hr::CHTML_hr(int size, int width, bool noShade)
  510.     : CParent(sm_TagName)
  511. {
  512.     SetSize(size);
  513.     SetWidth(width);
  514.     SetNoShade(noShade);
  515. }
  516. inline
  517. CHTML_hr::CHTML_hr(int size, const string& width, bool noShade)
  518.     : CParent(sm_TagName)
  519. {
  520.     SetSize(size);
  521.     SetWidth(width);
  522.     SetNoShade(noShade);
  523. }
  524. /*
  525.  * ===========================================================================
  526.  * $Log: html.inl,v $
  527.  * Revision 1000.3  2004/04/01 21:01:45  gouriano
  528.  * PRODUCTION: UPGRADED [CORE_002] Dev-tree R1.35
  529.  *
  530.  * Revision 1.35  2004/02/04 12:45:11  ivanov
  531.  * Made CHTML[Plain]Text::SetText() inline.
  532.  *
  533.  * Revision 1.34  2004/02/03 19:45:42  ivanov
  534.  * Binded dummy names for the unnamed nodes
  535.  *
  536.  * Revision 1.33  2003/12/31 19:00:45  ivanov
  537.  * Added default constructor for CHTML_a
  538.  *
  539.  * Revision 1.32  2003/11/05 18:41:06  dicuccio
  540.  * Added export specifiers
  541.  *
  542.  * Revision 1.31  2003/11/03 17:02:53  ivanov
  543.  * Some formal code rearrangement. Move log to end.
  544.  *
  545.  * Revision 1.30  2003/11/03 15:07:55  ucko
  546.  * Fixed typo in include guards: there must be *three* underscores after
  547.  * the first "HTML".
  548.  *
  549.  * Revision 1.29  2003/11/03 14:47:01  ivanov
  550.  * Some formal code rearrangement
  551.  *
  552.  * Revision 1.28  2002/09/25 01:24:29  dicuccio
  553.  * Added CHTMLHelper::StripTags() - strips HTML comments and tags from any
  554.  * string
  555.  *
  556.  * Revision 1.27  2002/01/17 23:37:50  ivanov
  557.  * Moved CVS Log to end of file
  558.  *
  559.  * Revision 1.26  2001/06/08 19:01:42  ivanov
  560.  * Added base classes: CHTMLDualNode, CHTMLSpecialChar
  561.  *     (and based on it: CHTML_nbsp, _gt, _lt, _quot, _amp, _copy, _reg)
  562.  * Added realization for tags <meta> (CHTML_meta) and <script> (CHTML_script)
  563.  * Changed base class for tags LINK, PARAM, ISINDEX -> CHTMLOpenElement 
  564.  * Added tags: OBJECT, NOSCRIPT
  565.  * Added attribute "alt" for CHTML_img
  566.  * Added CHTMLComment::Print() for disable print html-comments in plaintext mode
  567.  *
  568.  * Revision 1.25  2001/05/17 14:55:32  lavr
  569.  * Typos corrected
  570.  *
  571.  * Revision 1.24  2000/10/18 13:25:47  vasilche
  572.  * Added missing constructors to CHTML_font.
  573.  *
  574.  * Revision 1.23  2000/07/18 17:21:34  vasilche
  575.  * Added possibility to force output of empty attribute value.
  576.  * Added caching to CHTML_table, now large tables work much faster.
  577.  * Changed algorithm of emitting EOL symbols in html output.
  578.  *
  579.  * Revision 1.22  1999/12/28 21:01:03  vasilche
  580.  * Fixed conflict on MS VC between bool and const string& arguments by
  581.  * adding const char* argument.
  582.  *
  583.  * Revision 1.21  1999/12/28 18:55:28  vasilche
  584.  * Reduced size of compiled object files:
  585.  * 1. avoid inline or implicit virtual methods (especially destructors).
  586.  * 2. avoid std::string's methods usage in inline methods.
  587.  * 3. avoid string literals ("xxx") in inline methods.
  588.  *
  589.  * Revision 1.20  1999/10/29 18:28:53  vakatov
  590.  * [MSVC]  bool vs. const string& arg confusion
  591.  *
  592.  * Revision 1.19  1999/10/28 13:40:30  vasilche
  593.  * Added reference counters to CNCBINode.
  594.  *
  595.  * Revision 1.18  1999/07/08 18:05:12  vakatov
  596.  * Fixed compilation warnings
  597.  *
  598.  * Revision 1.17  1999/05/28 18:04:06  vakatov
  599.  * CHTMLNode::  added attribute "CLASS"
  600.  *
  601.  * Revision 1.16  1999/05/10 17:01:11  vasilche
  602.  * Fixed warning on Sun by renaming CHTML_font::SetSize() -> SetFontSize().
  603.  *
  604.  * Revision 1.15  1999/04/22 14:20:11  vasilche
  605.  * Now CHTML_select::AppendOption and CHTML_option constructor accept option
  606.  * name always as first argument.
  607.  *
  608.  * Revision 1.14  1999/04/15 19:48:17  vasilche
  609.  * Fixed several warnings detected by GCC
  610.  *
  611.  * Revision 1.13  1999/04/15 16:28:37  vasilche
  612.  * Fixed type in definition of list HTML tags.
  613.  *
  614.  * Revision 1.12  1999/04/08 19:00:26  vasilche
  615.  * Added current cell pointer to CHTML_table
  616.  *
  617.  * Revision 1.11  1999/02/02 17:57:47  vasilche
  618.  * Added CHTML_table::Row(int row).
  619.  * Linkbar now have equal image spacing.
  620.  *
  621.  * Revision 1.10  1999/01/28 16:58:59  vasilche
  622.  * Added several constructors for CHTML_hr.
  623.  * Added CHTMLNode::SetSize method.
  624.  *
  625.  * Revision 1.9  1999/01/25 19:34:15  vasilche
  626.  * String arguments which are added as HTML text now treated as plain text.
  627.  *
  628.  * Revision 1.8  1999/01/21 21:12:54  vasilche
  629.  * Added/used descriptions for HTML submit/select/text.
  630.  * Fixed some bugs in paging.
  631.  *
  632.  * Revision 1.7  1999/01/11 15:13:33  vasilche
  633.  * Fixed CHTML_font size.
  634.  * CHTMLHelper extracted to separate file.
  635.  *
  636.  * Revision 1.6  1999/01/07 16:41:53  vasilche
  637.  * CHTMLHelper moved to separate file.
  638.  * TagNames of CHTML classes ara available via s_GetTagName() static
  639.  * method.
  640.  * Input tag types ara available via s_GetInputType() static method.
  641.  * Initial selected database added to CQueryBox.
  642.  * Background colors added to CPagerBax & CSmallPagerBox.
  643.  *
  644.  * Revision 1.5  1999/01/05 21:47:11  vasilche
  645.  * Added 'current page' to CPageList.
  646.  * CPageList doesn't display forward/backward if empty.
  647.  *
  648.  * Revision 1.4  1999/01/04 20:06:10  vasilche
  649.  * Redesigned CHTML_table.
  650.  * Added selection support to HTML forms (via hidden values).
  651.  *
  652.  * Revision 1.3  1998/12/24 16:15:36  vasilche
  653.  * Added CHTMLComment class.
  654.  * Added TagMappers from static functions.
  655.  *
  656.  * Revision 1.2  1998/12/23 21:20:57  vasilche
  657.  * Added more HTML tags (almost all).
  658.  * Importent ones: all lists (OL, UL, DIR, MENU), fonts (FONT, BASEFONT).
  659.  *
  660.  * Revision 1.1  1998/12/21 22:24:56  vasilche
  661.  * A lot of cleaning.
  662.  *
  663.  * ===========================================================================
  664.  */
  665. #endif /* def HTML___HTML__HPP  &&  ndef HTML___HTML__INL */