home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 February / PCO_0299.ISO / filesbbs / os2 / eshtml01.arj / ESHTML01.ZIP / ESHTML.E < prev    next >
Encoding:
Text File  |  1998-11-09  |  33.9 KB  |  1,050 lines

  1. compile if not defined(SMALL)  -- If SMALL not defined, then being separately compiled
  2.  define INCLUDING_FILE = 'HTMLTAGS.E'
  3.  const
  4.  compile if not defined(SITE_CONFIG)
  5.     const SITE_CONFIG = 'SITECNF.E'
  6.  compile endif
  7.  compile if SITE_CONFIG
  8.    tryinclude SITE_CONFIG
  9.  compile endif
  10. compile endif
  11.  
  12.  
  13. const
  14. compile if not defined(WANT_DYNAMIC_PROMPTS)
  15.    WANT_DYNAMIC_PROMPTS = 1
  16. compile endif
  17.  
  18.  
  19. const
  20.    HTMLVERSION=                '0.98'
  21.    HTMLTAGS_BAR__MSG =         'ES-H~TML '
  22.    TITLE_MENU_MSG =            '~Titel               Ctrl+T'
  23.    CENTER_MENU_MSG =           '~Center              Ctrl+C'
  24.    COMMENTS_MENU_MSG =         'K~ommentar           Ctrl+O'
  25.    SEPARATORS_MENU_MSG =       'S~eparatoren'
  26.    PARAGRAPH_MENU__MSG =       '~Paragraph           Ctrl+P'
  27.    PARAGRAPHP_MENU__MSG =      'P~aragraph HTML+   Ctrl+-'
  28.    FORCEDLINE_MENU_MSG =       'Line ~Break  Ctrl+B'
  29.    HORIZONTALRULE_MENU_MSG =   '~Horizontal rule      Ctrl+H'
  30.    ANCHOR_MENU_MSG =           'Lin~k to             Ctrl+K'
  31.    IMAGE_MENU_MSG =            '~Inline Grafik        Ctrl+I'
  32.    TARGET_MENU_MSG=            'Anker  Tar~get      Ctrl+G'
  33.    HEADINGS_MENU__MSG =        '~Header (Schriftgrößen)'
  34.    HEAD1_MENU__MSG =           'Heading ~1   Ctrl+1'
  35.    HEAD2_MENU__MSG =           'Heading ~2   Ctrl+2'
  36.    HEAD3_MENU__MSG =           'Heading ~3   Ctrl+3'
  37.    HEAD4_MENU__MSG =           'Heading ~4   Ctrl+4'
  38.    HEAD5_MENU__MSG =           'Heading ~5   Ctrl+5'
  39.    HEAD6_MENU__MSG =           'Heading ~6   Ctrl+6'
  40.    STYLES_MENU_MSG =           '~Styles'
  41.    LOGICAL_MENU_MSG =          'Logische St~yles'
  42.    EM_MENU__MSG =              '~Emphasize'
  43.    STRONG_MENU_MSG =           '~Strong emphasize'
  44.    PREFORMAT_MENU_MSG =        '~Preformatierter Text'
  45.    ADDRESS_MENU_MSG =          '~Addresse'
  46.    PHYSICAL_MENU__MSG =        '~Physical styles'
  47.    UNDERLINE_MENU__MSG =       '~Unterstrich'
  48.    ITALIC_MENU__MSG =          '~Italic'
  49.    BOLD_MENU__MSG =            '~Bold'
  50.    TYPEWRITER_MENU__MSG =      '~Typewriter'
  51.    LISTS_MENU_MSG =            '~Listen'
  52.    LIST_ITEM_MENU__MSG =       'Liste ~Item      Ctrl+L'
  53.    OLIST_MENU__MSG =           '~Sortierte Liste'
  54.    ULIST_MENU__MSG =           '~UnSortierte Liste'
  55.    DIR_MENU__MSG =             '~Directory List'
  56.    SLIST_MENU__MSG =           '~Menue Liste'
  57.    DLIST_MENU__MSG =           'Definition ~Liste'
  58.    DLISTTERM_MENU_MSG =        'Definition Liste ~Term'
  59.    DLISTDEF_MENU_MSG =         'De~finition Liste Definition'
  60.    TABLA_MENU_MSG =            'Ta~belle'
  61.    SPECIAL_MENU_MSG =          'Sonder~Zeichen'
  62. ;   LEFTANGLE_MENU_MSG =        '~<'
  63. ;   RIGHTANGLE_MENU_MSG =       '~>'
  64.    AG_ACUTE_MENU_MSG =          'Ä' 
  65.    AK_ACUTE_MENU_MSG =          'ä' 
  66.    OG_ACUTE_MENU_MSG =          'Ö'
  67.    OK_ACUTE_MENU_MSG =          'ö'
  68.    UG_ACUTE_MENU_MSG =          'Ü'
  69.    UK_ACUTE_MENU_MSG =          'ü'
  70.    SS_ACUTE_MENU_MSG =          'ß'
  71. ;  E_ACUTE_MENU_MSG =          'é '
  72. ;   I_ACUTE_MENU_MSG =          'í '
  73. ;   O_ACUTE_MENU_MSG =          'ó '
  74. ;   U_ACUTE_MENU_MSG =          'ú '
  75.    AMPERSAND_MENU_MSG =        'Am~persand  (@)'
  76.    QUOTES_MENU_MSG =           '~Quote'
  77. ;   TILDE_MENU_MSG  =           '~Tilde'
  78. ;   ACCENT_MENU_MSG =           '~Acute accent'
  79.    FORMS_MENU_MSG =            '~Forms'
  80.    DEFFORMS_MENU_MSG =         '~Define Form'
  81.    INPUTFIELD_MENU_MSG =       '~Input Feld'
  82.    SELECTFIELD_MENU_MSG =      '~Selektion Feld'
  83.    SELECTOPTION_MENU_MSG =     'Selektion ~Option'
  84.    TEXTAREA_MENU_MSG =         '~Text bereich'
  85.    DOC_MENU__MSG =             'Doku~ment'
  86.    HTMLDOC_MENU__MSG =         '~Basis HTML Aufbau'
  87.    PREVIEW_MENU__MSG =         '~Netscape Vorschau'
  88.  ;  ATTR_ON_MENU__MSG =         'Tags Hightlight On'
  89.  ;  ATTR_OFF_MENU__MSG =        'Tags Hightlight Off'
  90. ;   ABOUT_MENU_MSG =            'Abo~ut...'
  91.  
  92. compile if WANT_DYNAMIC_PROMPTS
  93.    HTMLTAGS_BARP__MSG = \1'Erstellt HTLM tags'
  94.    TITLE_MENUP_MSG = \1' Title TAG einfügen'
  95.    CENTER_MENUP__MSG = \1'Center TAG'
  96.    COMMENTS_MENUP_MSG = \1'Markiert  selektierten  text as Kommentar'
  97.    SEPARATORS_MENUP_MSG = \1'Paragraphs, Line Breaks & Rules'
  98.    PARAGRAPH_MENUP__MSG = \1'Paragraph TAG einfügen'
  99.    PARAGRAPHP_MENUP__MSG = \1'HTML Paragraph TAG'
  100.    FORCEDLINE_MENUP_MSG = \1'Break einfügen'
  101.    HORIZONTALRULE_MENUP_MSG = \1'Insert an horizontal rule'
  102.    ANCHOR_MENUP_MSG = \1'Erstellung eines Link'
  103.    IMAGE_MENUP_MSG = \1'Einfügen einer Grafik'
  104.    TARGET_MENUP_MSG = \1'Anker einfügen'
  105.    HEADINGS_MENUP__MSG = \1'Größe der Schrifte'
  106.    HEAD1_MENUP__MSG = \1'Header Größe 1'
  107.    HEAD2_MENUP__MSG = \1'Header Größe 2'
  108.    HEAD3_MENUP__MSG = \1'Header Größe 3'
  109.    HEAD4_MENUP__MSG = \1'Header Größe 4'
  110.    HEAD5_MENUP__MSG = \1'Header Größe 5'
  111.    HEAD6_MENUP__MSG = \1'Header Größe 6'
  112.    STYLES_MENUP_MSG = \1'Auswahl Text Style '
  113.    LOGICAL_MENUP_MSG = \1'Auswahl zwischen logischen Styles'
  114.    EM_MENUP__MSG = \1'Erweiterungs Style für selektierten Text'
  115.    STRONG_MENUP_MSG = \1'Starker Erweiterungs Style für selektierten Text'
  116.    PREFORMAT_MENUP_MSG = \1'Vorformatierter Text'
  117.    ADDRESS_MENUP_MSG = \1'Render text as "address"'
  118.    PHYSICAL_MENUP__MSG = \1'Auswahl physikalischer Style'
  119.    UNDERLINE_MENUP__MSG =\1'Auswahl Unterstrich Style für selektierten Text'
  120.    ITALIC_MENUP__MSG = \1'Auswahl  italic Style für selektierten Text'
  121.    BOLD_MENUP__MSG = \1'Auswahl  bold Style für selektierten Text'
  122.    TYPEWRITER_MENUP__MSG = \1'Auswahl typewriter Style für selektierten Text'
  123.    LISTS_MENUP_MSG = \1'Listet related tags'
  124.    LIST_ITEM_MENUP__MSG = \1'Erstellt ein list item'
  125.    OLIST_MENUP__MSG = \1'Erstellt eine sortierte Liste'
  126.    ULIST_MENUP__MSG = \1'Erstellt eine unsortierte Liste'
  127.    DIR_MENUP__MSG =    \1'Erstellt eine directory Liste'
  128.    SLIST_MENUP__MSG = \1'Erstellt eine Menu Liste'
  129.    DLIST_MENUP__MSG = \1'Erstellt eine definitions Liste'
  130.    DLISTTERM_MENUP_MSG = \1'Fügt einen definition list term tag ein'
  131.    DLISTDEF_MENUP_MSG = \1'Fügt einen definition list definition tag ein'
  132.    SPECIAL_MENUP_MSG = \1' Sonderzeichen'
  133.    LEFTANGLE_MENUP_MSG = \1''
  134.    RIGHTANGLE_MENUP_MSG = \1''
  135.    AMPERSAND_MENUP_MSG = \1 ''
  136.    QUOTES_MENUP_MSG = \1''
  137.    TILDE_MENUP_MSG  =    \1''
  138.    ACCENT_MENUP_MSG = \1''
  139.    FORMS_MENUP_MSG = \1''
  140.    DEFFORMS_MENUP_MSG = \1'Definiert ein  Form Tag'
  141.    INPUTFIELD_MENUP_MSG = \1'Definiert ein  Input Feld'
  142.    SELECTFIELD_MENUP_MSG = \1'Definiert ein  Selektions Feld'
  143.    SELECTOPTION_MENUP_MSG = \1'Definiert eine Selektions Feld Option'
  144.    TEXTAREA_MENUP_MSG = \1'Definiert einen  Textbereich'
  145.    DOC_MENUP__MSG = \1'Erstellt ein HTML Document'
  146.    HTMLDOC_MENUP__MSG = \1'Erstellt die Basis eines HTML Dokuments'
  147.    PREVIEW_MENUP__MSG = \1'Vorschau  Netscape'
  148. ;   ATTR_ON_MENUP__MSG = \1'Set color hightlight of HTML tags'
  149. ;   ATTR_OFF_MENUP__MSG = \1'Unset color hightlight of HTML tags'
  150. compile else
  151.    HTMLTAGS_BARP__MSG = ''
  152.    TITLE_MENUP_MSG = ''
  153.    CENTER_MENUP__MSG=''
  154.    COMMENTS_MENUP_MSG= ''
  155.    SEPARATORS_MENUP_MSG = ''
  156.    PARAGRAPH_MENUP__MSG = ''
  157.    PARAGRAPHP_MENUP__MSG =''
  158.    FORCEDLINE_MENUP_MSG = ''
  159.    HORIZONTALRULE_MENUP_MSG = ''
  160.    ANCHOR_MENUP_MSG = ''
  161.    IMAGE_MENUP_MSG = ''
  162.    TARGET_MENUP_MSG= ''
  163.    HEADINGS_MENUP__MSG = ''
  164.    HEAD1_MENUP__MSG = ''
  165.    HEAD2_MENUP__MSG = ''
  166.    HEAD3_MENUP__MSG = ''
  167.    HEAD4_MENUP__MSG = ''
  168.    HEAD5_MENUP__MSG = ''
  169.    HEAD6_MENUP__MSG = ''
  170.    STYLES_MENUP_MSG = ''
  171.    LOGICAL_MENUP_MSG = ''
  172.    EM_MENUP__MSG = ''
  173.    STRONG_MENUP_MSG = ''
  174.    PREFORMAT_MENUP_MSG = ''
  175.    PHYSICAL_MENUP__MSG = ''
  176.    UNDERLINE_MENUP__MSG = ''
  177.    ITALIC_MENUP__MSG = ''
  178.    BOLD_MENUP__MSG = ''
  179.    TYPEWRITER_MENUP__MSG = ''
  180.    LISTS_MENUP_MSG = ''
  181.    LIST_ITEM_MENUP__MSG = ''
  182.    OLIST_MENUP__MSG = ''
  183.    ULIST_MENUP__MSG = ''
  184.    DIR_MENUP__MSG = ''
  185.    SLIST_MENUP__MSG = ''
  186.    DLIST_MENUP__MSG = ''
  187.    DLISTTERM_MENUP_MSG = ''
  188.    DLISTDEF_MENUP_MSG = ''
  189.    SPECIAL_MENUP_MSG = ''
  190.    LEFTANGLE_MENUP_MSG = ''
  191.    RIGHTANGLE_MENUP_MSG = ''
  192.    AMPERSAND_MENUP_MSG = ''
  193.    QUOTES_MENUP_MSG = ''
  194.    TILDE_MENUP_MSG  = ''
  195.    ACCENT_MENUP_MSG = ''
  196.    FORMS_MENUP_MSG = ''
  197.    DEFFORMS_MENUP_MSG =''
  198.    INPUTFIELD_MENUP_MSG = ''
  199.    SELECTFIELD_MENUP_MSG =  ''
  200.    SELECTOPTION_MENUP_MSG =  ''
  201.    TEXTAREA_MENUP_MSG =  ''
  202.    DOC_MENUP__MSG = ''
  203.    HTMLDOC_MENUP__MSG = ''
  204.   PREVIEW_MENUP__MSG = ''
  205. ;   ATTR_ON_MENUP__MSG = ''
  206. ;   ATTR_OFF_MENUP__MSG = ''
  207.  
  208. compile endif
  209.  
  210.  
  211. definit
  212.    universal defaultmenu, activemenu
  213.    universal activeaccel
  214.    universal HTML_tags_menu_flag
  215.    universal High_ON
  216.    deletemenu defaultmenu, 6, 0, 0  -- delete the existing Help menu (we want it to stay at the right)
  217.  
  218.    buildsubmenu defaultmenu, 80, HTMLTAGS_BAR__MSG, ' ', 0, 0
  219.      buildmenuitem defaultmenu, 80, 8000,TITLE_MENU_MSG,'HTML_EM TITLE'TITLE_MENUP_MSG,0,0
  220.      buildmenuitem defaultmenu, 80, 8001,CENTER_MENU_MSG,'HTML_EM CENTER'CENTER_MENUP__MSG,0,0
  221.      buildmenuitem defaultmenu, 80, 8002,COMMENTS_MENU_MSG,'HTML_COMMENTS'COMMENTS_MENUP_MSG,0,0
  222.      buildmenuitem defaultmenu, 80, 8003,\0,'',4,0
  223.      buildmenuitem defaultmenu, 80, 8004,SEPARATORS_MENU_MSG,SEPARATORS_MENUP_MSG,17,0
  224.      buildmenuitem defaultmenu, 80, 8005,PARAGRAPH_MENU__MSG,'HTML_P'PARAGRAPH_MENUP__MSG,0,0
  225.      buildmenuitem defaultmenu, 80, 8006,PARAGRAPHP_MENU__MSG,'HTML_EM P'PARAGRAPHP_MENUP__MSG,0,0
  226.      buildmenuitem defaultmenu, 80, 8007,FORCEDLINE_MENU_MSG,'HTML_INL <BR>'FORCEDLINE_MENUP_MSG,0,0
  227.      buildmenuitem defaultmenu, 80, 8008,HORIZONTALRULE_MENU_MSG,'HTML_INL <HR>'HORIZONTALRULE_MENUP_MSG,32769,0
  228.      buildmenuitem defaultmenu, 80, 8009,\0,'',4,0
  229.  
  230.      buildmenuitem defaultmenu, 80, 8010,ANCHOR_MENU_MSG,'HTML_ANCHOR'ANCHOR_MENUP_MSG,0,0
  231.      buildmenuitem defaultmenu, 80, 8011,IMAGE_MENU_MSG,'HTML_IMAGE'IMAGE_MENUP_MSG,0,0
  232.      buildmenuitem defaultmenu, 80, 8012,TARGET_MENU_MSG,'HTML_TARGET'TARGET_MENUP_MSG,0,0
  233.      buildmenuitem defaultmenu, 80, 8019,\0,'',4,0
  234.  
  235.      buildmenuitem defaultmenu, 80, 8020, HEADINGS_MENU__MSG, HEADINGS_MENUP__MSG, 17, 0
  236.      buildmenuitem defaultmenu, 80, 8021, HEAD1_MENU__MSG, 'HTML_EM H1'HEAD1_MENUP__MSG, 0, 0
  237.      buildmenuitem defaultmenu, 80, 8022, HEAD2_MENU__MSG, 'HTML_EM H2'HEAD2_MENUP__MSG, 0, 0
  238.      buildmenuitem defaultmenu, 80, 8023, HEAD3_MENU__MSG, 'HTML_EM H3'HEAD3_MENUP__MSG, 0, 0
  239.      buildmenuitem defaultmenu, 80, 8024, HEAD4_MENU__MSG, 'HTML_EM H4'HEAD4_MENUP__MSG, 0, 0
  240.      buildmenuitem defaultmenu, 80, 8025, HEAD5_MENU__MSG, 'HTML_EM H5'HEAD5_MENUP__MSG, 0, 0
  241.      buildmenuitem defaultmenu, 80, 8026, HEAD6_MENU__MSG, 'HTML_EM H6'HEAD6_MENUP__MSG, 32769, 0
  242.  
  243.      buildmenuitem defaultmenu, 80, 8030, LOGICAL_MENU_MSG, LOGICAL_MENUP_MSG,17,0
  244.      buildmenuitem defaultmenu, 80, 8031, EM_MENU__MSG,'HTML_EM EM'EM_MENUP__MSG, 0, 0
  245.      buildmenuitem defaultmenu, 80, 8032, STRONG_MENU_MSG, 'HTML_EM STRONG'STRONG_MENUP_MSG, 0, 0
  246.      buildmenuitem defaultmenu, 80, 8033, PREFORMAT_MENU_MSG,'HTML_EM PRE'PREFORMAT_MENUP_MSG, 0,0
  247.      buildmenuitem defaultmenu, 80, 8034, ADDRESS_MENU_MSG,'HTML_EM ADDRESS'ADDRESS_MENUP_MSG,32769,0
  248.      buildmenuitem defaultmenu, 80, 8035, PHYSICAL_MENU__MSG,PHYSICAL_MENUP__MSG, 17, 0
  249.      buildmenuitem defaultmenu, 80, 8036, UNDERLINE_MENU__MSG, 'HTML_EM U'UNDERLINE_MENUP__MSG, 0, 0
  250.      buildmenuitem defaultmenu, 80, 8037, ITALIC_MENU__MSG, 'HTML_EM I'ITALIC_MENUP__MSG, 0, 0
  251.      buildmenuitem defaultmenu, 80, 8038, BOLD_MENU__MSG, 'HTML_EM B'BOLD_MENUP__MSG, 0, 0
  252.      buildmenuitem defaultmenu, 80, 8039, TYPEWRITER_MENU__MSG, 'HTML_EM TT'TYPEWRITER_MENUP__MSG, 32769, 0
  253.  
  254.      buildmenuitem defaultmenu, 80, 8040, LISTS_MENU_MSG, LISTS_MENUP_MSG,17,0
  255.      buildmenuitem defaultmenu, 80, 8041, LIST_ITEM_MENU__MSG, 'HTML_I <LI>'LIST_ITEM_MENUP__MSG, 0, 0
  256.      buildmenuitem defaultmenu, 80, 8042, OLIST_MENU__MSG, 'HTML_LIST OL'OLIST_MENUP__MSG, 0, 0
  257.      buildmenuitem defaultmenu, 80, 8043, ULIST_MENU__MSG, 'HTML_LIST UL'ULIST_MENUP__MSG, 0, 0
  258.      buildmenuitem defaultmenu, 80, 8044, DIR_MENU__MSG,'HTML_LIST DIR'DIR_MENUP__MSG,0,0
  259.      buildmenuitem defaultmenu, 80, 8045, SLIST_MENU__MSG, 'HTML_LIST MENU'SLIST_MENUP__MSG, 0, 0
  260.      buildmenuitem defaultmenu, 80, 8046, DLIST_MENU__MSG, 'HTML_LIST DL'DLIST_MENUP__MSG, 0, 0
  261.      buildmenuitem defaultmenu, 80, 8047, DLISTTERM_MENU_MSG,'HTML_I  <DT>'DLISTTERM_MENUP_MSG,0,0
  262.      buildmenuitem defaultmenu, 80, 8048, DLISTDEF_MENU_MSG,'HTML_I   <DD>'DLISTDEF_MENUp_MSG,32769,0
  263.      buildmenuitem defaultmenu, 80, 8049, TABLA_MENU_MSG,'tabla',0,0
  264.      buildmenuitem defaultmenu, 80, 8050, \0,'',4, 0
  265.  
  266.      buildmenuitem defaultmenu, 80, 8051,SPECIAL_MENU_MSG,SPECIAL_MENUP_MSG,17,0
  267.      buildmenuitem defaultmenu, 80, 8058,AG_ACUTE_MENU_MSG,'HTML_I Ä',0,0
  268.      buildmenuitem defaultmenu, 80, 8059,AK_ACUTE_MENU_MSG,'HTML_I ä',0,0
  269.      buildmenuitem defaultmenu, 80, 8060,OG_ACUTE_MENU_MSG,'HTML_I Ö',0,0
  270.      buildmenuitem defaultmenu, 80, 8061,OK_ACUTE_MENU_MSG,'HTML_I ö',0,0
  271.      buildmenuitem defaultmenu, 80, 8062,UG_ACUTE_MENU_MSG,'HTML_I Ü',0,0
  272.      buildmenuitem defaultmenu, 80, 8052,UK_ACUTE_MENU_MSG,'HTML_I ü',0,0
  273.      buildmenuitem defaultmenu, 80, 8053,SS_ACUTE_MENU_MSG,'HTML_I ß',0,0
  274.      buildmenuitem defaultmenu, 80, 8054,AMPERSAND_MENU_MSG,'HTML_I &'AMPERSAND_MENUP_MSG,0,0    
  275.      buildmenuitem defaultmenu, 80, 8055,QUOTES_MENU_MSG,'HTML_I "'QUOTES_MENUP_MSG,32769,0
  276. ;     buildmenuitem defaultmenu, 80, 8056,TILDE_MENU_MSG,'HTML_ACC tilde;'TILDE_MENUP_MSG,0,0
  277. ;     buildmenuitem defaultmenu, 80, 8057,ACCENT_MENU_MSG,'HTML_ACC acute'ACCENT_MENUP_MSG,0,0
  278.  
  279.      buildmenuitem defaultmenu, 80, 8069,\0,'',4,0
  280.  
  281.      buildmenuitem defaultmenu, 80, 8070, FORMS_MENU_MSG,FORMS_MENUP_MSG,17,0
  282.      buildmenuitem defaultmenu, 80, 8071, DEFFORMS_MENU_MSG,'HTML_FORM'DEFFORMS_MENUP_MSG,0,0
  283.      buildmenuitem defaultmenu, 80, 8072, INPUTFIELD_MENU_MSG,'HTML_INPUT'INPUTFIELD_MENUP_MSG,0,0
  284.      buildmenuitem defaultmenu, 80, 8073, SELECTFIELD_MENU_MSG,'HTML_SELECT'SELECTFIELD_MENUP_MSG,0,0
  285.      buildmenuitem defaultmenu, 80, 8074, SELECTOPTION_MENU_MSG, 'HTML_OPTION'SELECTOPTION_MENUP_MSG,0,0
  286.      buildmenuitem defaultmenu, 80, 8075, TEXTAREA_MENU_MSG, 'HTML_TEXTAREA'TEXTAREA_MENUP_MSG, 32769,0
  287.      buildmenuitem defaultmenu, 80, 8089, \0,'',4,0
  288.  
  289.      buildmenuitem defaultmenu, 80, 8090, DOC_MENU__MSG,DOC_MENUP__MSG, 17, 0
  290.      buildmenuitem defaultmenu, 80, 8091, HTMLDOC_MENU__MSG, 'HTML_HTMLDOC'HTMLDOC_MENUP__MSG, 32769, 0
  291.      buildmenuitem defaultmenu, 80, 8092, PREVIEW_MENU__MSG,'PREVIEW'PREVIEW_MENUP__MSG,0,0
  292.      buildmenuitem defaultmenu, 80, 8093, \0,'',4,0
  293.  
  294. ;     buildmenuitem defaultmenu, 80, 8101, ABOUT_MENU_MSG,'HTML_ABOUT',0,0
  295.      buildmenuitem defaultmenu, 80, 8109, \0,'',4,0
  296.  
  297. ;     buildmenuitem defaultmenu, 80, 8111, ATTR_ON_MENU__MSG,'ATTRON'ATTR_ON_MENUP__MSG,0,0
  298. ;     buildmenuitem defaultmenu, 80, 8119, ATTR_OFF_MENU__MSG,'ATTROFF'ATTR_OFF_MENUP__MSG,0,8192
  299.  
  300.      call readd_help_menu()
  301.      HTML_tags_menu_flag = 1
  302.      compile if EVERSION > '5.52'
  303.        call register_mousehandler(1,'2 CLICK 4','POPUP_MENU')
  304.      compile else
  305.        call register_mousehandler(1,'2 CLICK 0','POPUP_MENU')
  306.      compile endif
  307.      keys html_keys
  308.      call InitVars()
  309.  
  310.  
  311.  
  312. defexit
  313.    universal defaultmenu, activemenu
  314.    deletemenu defaultmenu,80,0,0
  315.    call maybe_show_menu()
  316.    HTML_tags_menu_flag = 0
  317.  
  318. defkeys html_keys overlay
  319.    def C_P = 'HTML_P'
  320.    def C_B = 'HTML_INL <BR>'
  321.    def C_H = 'HTML_INL <HR>'
  322.    def C_O = 'HTML_COMMENTS'
  323.    def C_C = 'HTML_EM CENTER'
  324.    def C_I = 'HTML_IMAGE'
  325.  
  326.    def C_1 = 'HTML_EM H1'
  327.    def C_2 = 'HTML_EM H2'
  328.    def C_3 = 'HTML_EM H3'
  329.    def C_4 = 'HTML_EM H4'
  330.    def C_5 = 'HTML_EM H5'
  331.    def C_6 = 'HTML_EM H6'
  332.    def C_K = 'HTML_ANCHOR'
  333.    def C_T = 'HTML_EM TITLE'
  334.    def C_G = 'HTML_TARGET'
  335.    def C_MINUS = 'HTML_EM P'
  336.    def C_L = 'HTML_I <LI>'
  337.  
  338. compile if EVERSION = '5.51a'
  339.    def 'á' = 'HTML_I á'
  340.    def 'é' = 'HTML_I é'
  341.    def 'í' = 'HTML_I í'
  342.    def 'ó' = 'HTML_I ó'
  343.    def 'ú' = 'HTML_I ú'
  344. compile endif
  345.  
  346. defload
  347.   universal High_ON
  348.   if pos(".htm",.filename) or pos(".html",.filename)then
  349.      keys html_keys
  350.      if High_ON then
  351.         call HILITE(1,.last)
  352.      endif
  353.   endif
  354.  
  355.  
  356. defproc InitVars()
  357.    universal High_ON, High_Color
  358.    High_ON = 0
  359.    High_Color = .textcolor
  360.  
  361.  
  362. defc HTML_P
  363.    universal High_ON
  364.    if .col = 1 then
  365.       keyin '<P>'
  366.   else
  367.       keyin '<P>'
  368.       insert
  369.       .col=1
  370.    endif
  371.  
  372. defc HTML_I
  373.    universal High_ON
  374.    l1 = .line
  375.    keyin arg(1)
  376.    l2 = .line
  377.    if High_ON then call HILITE(l1,l2) endif
  378.  
  379.  
  380. defc HTML_INL
  381.    universal High_ON
  382.    l1 = .line
  383.    keyin arg(1)
  384.    insert
  385.    .col = 0
  386.    l2 = .line
  387.    if High_ON then call HILITE(l1,l2) endif
  388.  
  389.  
  390. defc HTML_IML
  391.    universal High_ON
  392.    l1 = .line
  393.    parse value strip(arg(1),'L') with delim 2 rest
  394.    nextline = .line+1
  395.    do while rest <> ''
  396.       parse value rest with line (delim) rest
  397.       insertline line, nextline
  398.       nextline = nextline + 1
  399.    enddo
  400.    l2=.line
  401.    '+2'
  402.    end_line
  403.    .line = .line-1
  404.    l2 = .line
  405.    if High_ON then call HILITE(l1,l2) endif
  406.  
  407.  
  408. defc HTML_LIST
  409.     tag=arg(1)
  410.     if tag=='DL' then
  411.        param ='|<'tag'>|<DT>|</'tag'>|'
  412.     else
  413.        param ='|<'tag'>|<LI>|</'tag'>|'
  414.     endif
  415.     'HTML_IML 'param
  416.     '+1'
  417.  
  418.  
  419. defc HTML_COMMENTS
  420.    universal High_ON
  421.    l1 = .line
  422.    if marktype() then
  423.       call HTML_insert_tags('<!-- ',' -->')
  424.       call pend_mark()
  425.       unmark
  426.      .col=.col+4
  427.    else
  428.       keyin('<!-- -->')
  429.       .col=.col -  3
  430.       l2=.line
  431.       if High_ON then call HILITE(l1,l2) endif
  432.    endif
  433.  
  434.  
  435. defc HTML_EM
  436.    universal High_ON
  437.    l1 = .line
  438.    tag = arg(1)
  439.    if marktype() then
  440.       getmark firstline,lastline,firstcol,lastcol,fileid
  441.       call HTML_insert_tags('<'tag'>','</'tag'>')
  442.       call pend_mark()
  443.       unmark
  444.       .col = .col + length(tag) + 3
  445.    else
  446.       keyin('<'tag'></'tag'>')
  447.       .col = .col - length(tag)-3
  448.       l2 = .line
  449.       if High_ON then call HILITE(l1,l2) endif
  450.    endif
  451.  
  452.  
  453. defproc HTML_insert_tags(start_tag, end_tag)
  454.    universal High_ON
  455.    l1 = .line
  456.    mt = marktype()
  457.    if pos(leftstr(mt,1), 'BC') then  -- Block or Character mark
  458.       getfileid fid
  459.       getmark firstline,lastline,firstcol,lastcol,fileid
  460.       if fid<>fileid then
  461.          sayerror 'Wrong file - check mark'
  462.          return
  463.       endif
  464.    else
  465.       firstline = .line; lastline = .line;
  466.       call pend_word(); lastcol = .col
  467.       call pbegin_word(); firstcol = .col
  468.    endif
  469.    .col=lastcol+1
  470.    lastline
  471.    i_s = insert_state()
  472.    if not i_s then insert_toggle; endif
  473.    keyin end_tag
  474.    firstline
  475.    .col=firstcol
  476.    keyin start_tag
  477.    if pos(leftstr(mt,1), 'BC') then  -- Block or Character mark
  478.       l = length(start_tag)+1
  479.       call pset_mark(firstline, lastline, firstcol+l, lastcol+(l*(lastline=firstline)), mt, fileid)
  480.    endif
  481.    if not i_s then insert_toggle; endif
  482.    l2=.line
  483.    if High_ON then call HILITE(l1,l2) endif
  484.  
  485.  
  486. defc HTML_HTMLDOC
  487.    universal High_ON
  488.    'HTML_IML |<HTML>|<HEAD>|<TITLE></TITLE>|</HEAD>| |<BODY> | |</BODY>|</HTML>'
  489.    '+2'
  490.    .col = 8
  491.     if High_ON then call HILITE(1,.last) endif
  492.  
  493.  
  494. defc HTML_ANCHOR
  495.    universal High_ON
  496.    l1=.line
  497.    linktype = listbox("Select Link to ...",
  498.     "/anchor in this page/local file/anchor in local file/http/mailto/gopher/ftp/news/WAIS/Telnet","/Enter/Cancel" ,8,36,10)
  499.    if linktype == '' then
  500.       return
  501.    endif
  502.    if linktype == 'anchor in local file' then
  503.       filename = entrybox('Enter Filename')
  504.       if  filename == '' then return; endif
  505.       targetname = entrybox('Enter Target name')
  506.       if  targetname == '' then return; endif
  507.       linktype = filename'#'targetname
  508.       usertxt = ""
  509.    else if linktype == 'local file'  then
  510.       linktype = ''
  511.       usertxt = entrybox('Enter Name of Link')
  512.    else if linktype == 'anchor in this page' then
  513.       linktype = "#"
  514.       usertxt = entrybox('Enter target name')
  515.    else if linktype == 'mailto' then
  516.           linktype = 'mailto:'
  517.           usertxt=entrybox("Address to mailto: ")
  518.         else
  519.           linktype = linktype'://'
  520.           usertxt = entrybox("Enter full URL",,linktype)
  521.           linktype =''
  522.         endif
  523.     endif endif
  524.       if usertxt == '' then
  525.          return
  526.       endif
  527.    endif
  528.  
  529.    start_tag = '<A HREF="'||linktype||usertxt||'">'
  530.    end_tag = '</A>'
  531.    if marktype() then
  532.       call HTML_insert_tags(start_tag,end_tag)
  533.       call pend_mark()
  534.       unmark
  535.       .col=.col+length(end_tag)
  536.    else
  537.       keyin start_tag
  538.       keyin end_tag
  539.       l2 = .line
  540.       .col = .col - length(end_tag)
  541.       if High_ON then call HILITE(l1,l2)  endif
  542.    endif
  543.  
  544. defc HTML_TARGET
  545.    universal High_ON
  546.    usertxt = entrybox('Enter Anchor name')
  547.    if usertxt == "" then
  548.       return
  549.    endif
  550.    start_tag = '<A NAME="'usertxt'">'
  551.    end_tag = '</A>'
  552.    if marktype() then
  553.       call HTML_insert_tags(start_tag,end_tag)
  554.       call pend_mark()
  555.       unmark
  556.       .col=.col+length(end_tag)
  557.    else
  558.       l1 = .line
  559.       keyin start_tag
  560.       keyin end_tag
  561.       l2 = .line
  562.       if High_ON then call HILITE(l1,l2) endif
  563.       .col = .col-4
  564.    endif
  565.  
  566. defc HTML_IMAGE
  567.    universal High_ON
  568.    usertxt = entrybox('Enter Image Name')
  569.    if usertxt == '' then
  570.       return
  571.    endif
  572.    punto=lastpos('.',usertxt)
  573.    if punto then
  574.       alttext=substr(usertxt,1,punto-1)
  575.    else
  576.       alttext=usertxt
  577.    endif
  578.  
  579.    alttext = entrybox("Alternative text for non graphics display",,alttext)
  580.  
  581.    imag_pos = listbox("Image Alignment","/BOTTOM/MIDDLE/TOP/",,6,50)
  582.    if imag_pos == '' then
  583.       return
  584.    endif
  585.    IsMap = listbox("Image Map ?","/No/Yes/",,6,50)
  586.    if IsMap=="Yes" then
  587.       Ismap="ISMAP"
  588.    else
  589.       IsMap=""
  590.    endif
  591.    l1=.line
  592.    keyin '<IMG SRC="'usertxt'" ALIGN="'imag_pos'" ALT="'alttext'"' IsMap'>'
  593.    l2=.line
  594.    if High_ON then call HILITE(l1,l2) endif
  595.  
  596.  
  597.  
  598. defc HTML_ACC
  599.    mcol = .col
  600.    letter = get_char()
  601.    if pos(letter,'AEIOUaeiou') then
  602.       keyin '&'
  603.       .col = .col + 1
  604.       keyin arg(1)';'
  605.    else  if pos(letter,'Nn') then
  606.       keyin '&'
  607.       .col=.col+1
  608.       keyin arg(1)
  609.    else
  610.       sayerror("Invalid Character for accent in HTML")
  611.       return
  612.    endif   endif
  613.  
  614. defproc get_char
  615.    universal linepos,colpos,target
  616.    colpos = .col
  617.    linepos = .line
  618.    getline target
  619.    return substr(target,.col,1)
  620.  
  621. defc HTML_FORM
  622.    universal High_ON
  623.    action = entrybox('URL of program that will process the form')
  624.    method = listbox("Request Method",
  625.                       "/POST/GET/HEAD/PUT/DELETE/LINK/UNLINK/",,6,40,7)
  626.    if method=='' then
  627.      return
  628.    endif
  629.    start_tag = '<FORM ACTION="'||action||'" METHOD="'method'">'
  630.    end_tag = '</FORM>'
  631.  
  632.    if marktype() then
  633.       l1=.line
  634.       call HTML_insert_tags(start_tag,end_tag)
  635.       l2=.line
  636.       call pend_mark()
  637.       unmark
  638.       if High_ON then call HILITE(l1,l2) endif
  639.       .col=.col+length(end_tag)
  640.    else
  641.       l1 = .line
  642.       keyin start_tag
  643.       keyin end_tag
  644.       l2 = .line
  645.       if High_ON then call HILITE(l1,l2) endif
  646.       .col = .col-length(end_tag)
  647.    endif
  648.  
  649.  
  650.  
  651. defc HTML_INPUT
  652.    universal High_ON
  653.    l1 = .line
  654.    type = listbox("Enter of Input Field",
  655.                    "/text/password/checkbox/radio/submit/reset",,6,40, 6)
  656.    if type == "" then
  657.       return
  658.    endif
  659.    if type == 'radio' then
  660.       'HTML_radio'
  661.    else  if type == 'checkbox' then
  662.       'HTML_checkbox'
  663.    else  if type == 'submit' or type == 'reset' then
  664.       valor = entrybox("Text of the Button")
  665.       tag ='<INPUT TYPE="'type'" VALUE="'valor'">'
  666.    else
  667.       name = entrybox('Name of Variable ?')
  668.       if  name == '' then return; endif
  669.       valor = entrybox("Default Value")
  670.       size = entrybox("Maximum number of characters")
  671.       tag='<INPUT TYPE="'type'" NAME="'name'" '
  672.       if valor<>"" then
  673.           tag=tag' VALUE="'valor'" '
  674.       endif
  675.       tag=tag' SIZE='size' MAXLENGTH='size'>'
  676.    endif
  677.    keyin tag
  678.    l2 = .line
  679.    if High_ON then call HILITE(l1,l2) endif
  680.  
  681.    endif  endif
  682.  
  683. defc HTML_checkbox
  684.    universal High_ON
  685.    l1 = .line
  686.    name = entrybox("Name of the input variable?")
  687.    if  name == '' then return; endif
  688.    valor = entrybox("Value to return when checked")
  689.    if  valor == "" then return; endif
  690.    chktxt = entrybox("Text of the button")
  691.    tag = '<INPUT TYPE="CHECKBOX" NAME="'name'" VALUE="'valor'" '
  692.    defchk = listbox("Checked by default ?","/Yes/No/",,6,20)
  693.    if defchk == "Yes" then
  694.       tag = tag' CHECKED>'
  695.    else
  696.       tag = tag'>'
  697.    endif
  698.    keyin tag || chktxt' '
  699.    l2 = .line
  700.    if High_ON then call HILITE(l1,l2) endif
  701.    .col = .col + 1
  702.  
  703.  
  704. defc HTML_radio
  705.    universal option_Array, cadena
  706.    universal High_ON
  707.    l1 = .line
  708.    options = ''
  709.    rad_name = entrybox('Name of Radio Variable?')
  710.    if  rad_name == '' then return; endif
  711.    rad_num = listbox('Number of Radio Buttons',"/1/2/3/4/5/More",,6,20,6)
  712.    if rad_num == 'More' then
  713.       rad_num = entrybox('Enter number of Radio Buttons')
  714.    endif
  715.    if not isnum(rad_num) then
  716.       WinMessageBox('HTMLEPM 'HTMLVERSION, 'ERROR: Must enter a number',16384)
  717.       return
  718.    endif
  719.  
  720.    dispo = listbox("Button disposition","/Column/Row/",,6,20)
  721.    if dispo = "Row" then
  722.       separator = " "
  723.    else
  724.       separator = "<BR>"
  725.    endif
  726.  
  727.    do_array 1, opt_id, option_array
  728.    for i =1  to rad_num
  729.       opt = entrybox('Text of Button 'i)
  730.       rad_value = entrybox('Value returned when checked')
  731.       option_str = '<INPUT TYPE=RADIO NAME="'rad_name'" VALUE="'rad_value'">'opt||separator
  732.       do_array 2, opt_id, i, option_Str
  733.    endfor
  734.  
  735.    for i = 1 to rad_num
  736.       do_array 3, opt_id, i, cadena
  737.       insertline cadena
  738.    endfor
  739.    l2 =.line
  740.    if High_ON then call HILITE(l1,l2) endif
  741.  
  742.  
  743. defc HTML_SELECT
  744.    universal High_ON
  745.    l1 = .line
  746.    multiselect = 0
  747.    NotMoreChecks = 0
  748.    name = entrybox('Name of select variable')
  749.    if name == "" then
  750.       return
  751.    endif
  752.    sel_num = entrybox("Options number?")
  753.    if not isnum(sel_num) then
  754.       WinMessageBox('HTMLEPM 'HTMLVERSION, 'ERROR: Must be a number',16384)
  755.       return
  756.    endif
  757.    size = entrybox('Number of visible options ?')
  758.    if size == "" then
  759.       return
  760.    endif
  761.    if not isnum(size) then
  762.       WinMessageBox('HTMLEPM 'HTMLVERSION,'ERROR: Must be a number',16384)
  763.       return
  764.    endif
  765.  
  766.    multi = listbox('Multiple selection allowed?',"/No/Yes/",,6,40,2,30)
  767.    if multi == '' then
  768.       return
  769.    else
  770.       if multi == "Yes" then
  771.          multiselect = 1
  772.       else
  773.          multi = ""
  774.       endif
  775.    endif
  776.    tag_ini = '<SELECT NAME="'name'" SIZE='size || multi'>'
  777.    tag_end = '</SELECT>'
  778.  
  779.    insertline tag_ini
  780.    for i = 1 to sel_num
  781.       valor = entrybox('Text of Option 'i)
  782.       if  NotMoreChecks then
  783.          select = ""
  784.       else
  785.          select = listbox('Selected by default?',"/No/Yes/",,6,45)
  786.       endif
  787.       tag_1 = '<OPTION'
  788.       if select == 'Yes' then
  789.          tag_1 = tag_1 || ' SELECTED'
  790.          if not multiselect then
  791.             NotMoreChecks = 1
  792.          endif
  793.       endif
  794.       tag_1 = tag_1 '>'valor
  795.       insertline tag_1
  796.    endfor
  797.    insertline tag_end
  798.    l2 = .line
  799.    if High_ON then call HILITE(l1,l2) endif
  800.  
  801.  
  802. defc HTML_OPTION
  803.    universal High_ON
  804.    l1=.line
  805.    valor = entrybox('Option text')
  806.    select = listbox('Selected by default?',"/No/Yes/",,6,20)
  807.    tag_1 = '<OPTION'
  808.    if select == 'Yes' then
  809.       tag_1 = tag_1 || ' SELECTED'
  810.    endif
  811.    tag_1 = tag_1 '>'valor
  812.    keyin tag_1
  813.    l2 = .line
  814.    if High_ON then call HILITE(l1,l2) endif
  815.  
  816.  
  817. defc HTML_TEXTAREA
  818.    universal High_ON
  819.    lin_1 = .line
  820.    name = entrybox("Name of variable")
  821.    rows = entrybox("Number of rows")
  822.    cols  = entrybox("Number of columns")
  823.    default = listbox("Default Text ?","/No/Yes/",,6,50)
  824.    if default == "Yes" then
  825.       defText = entrybox("Enter the Default Text")
  826.    else
  827.       defText = ""
  828.    endif
  829.    keyin '<TEXTAREA NAME='name' ROWS='rows' COLS='cols'>'defText'</TEXTAREA>'
  830.    lin_2 = .line
  831.    if (High_ON) then call HILITE(lin_1, lin_2) endif
  832.  
  833. defc POPUP_MENU
  834.    elige = listbox("Select Tag Type",
  835.            "/Link/Image/Target/Define Form/Input Field/Select/Option/Text Area/Table/",
  836.            "/OK/Cancel",6,40,11,30)
  837.    if elige = "" then return
  838.    else if elige = 'Link'            then 'HTML_ANCHOR'
  839.    else if elige = 'Image'           then 'HTML_IMAGE'
  840.    else if elige = 'Target'          then 'HTML_TARGET'
  841.    else if elige = 'Define Form'     then 'HTML_FORM'
  842.    else if elige = 'Input Field'     then 'HTML_INPUT'
  843.    else if elige = 'Select'          then 'HTML_SELECT'
  844.    else if elige = 'Option'          then 'HTML_OPTION'
  845.    else if elige = 'Text Area'       then 'HTML_TEXTAREA'
  846.    else if elige = 'Table'            then 'TABLA'
  847.    endif endif endif endif endif endif endif endif endif endif
  848.  
  849.  
  850. ;defc HTML_ABOUT
  851. ;   linea=.line
  852. ;   WinMessageBox('HTML Extensions for EPM',
  853. ;            '     Version 'HTMLVERSION ||chr(10) ||
  854. ;            '     (c) E.Areitio 1995', 16384)
  855. ;            '     Modifiziert von Ehlertronic 1998 
  856.  
  857. ;   .line=linea
  858.  
  859.  
  860.  
  861. defc PREVIEW
  862.     CurrFile = .filename
  863.     place = lastpos('\', CurrFile)-1
  864.     CurrDir = leftstr(CurrFile, place)
  865. ;   'cd 'CurrDir
  866.     'Start  ES-NSDDE' CurrFile
  867. /*
  868. defc ATTROFF
  869.    universal High_ON
  870.    TOffset = -300
  871.    Column = 1
  872.    Line   = 0
  873.    Class  = 0
  874.    attribute_action 1,Class,TOffset,Column,Line
  875.    while  Class do
  876.       attribute_action 16,Class,TOffset,Column,Line
  877.       Class  = 0
  878.       attribute_action 1,Class,TOffset,Column,Line
  879.    endwhile
  880.    refresh
  881.    High_ON = 0
  882.    'ajusta_menu'
  883.  
  884.  
  885. defc ATTRON
  886.    universal High_ON, High_Color
  887.    High_ON = 1
  888.    Papel_Color = .textcolor // 16
  889.    Tinta_Color  = .textcolor %  16
  890.    High_Color = Papel_Color * 16 + Tinta_Color
  891.    call HILITE(1,.last)
  892.    'ajusta_menu'
  893. */
  894. defproc HILITE(pri,ult)
  895.    universal n,c
  896.    universal High_Color
  897.    entrycol=.col
  898.    entryline=.line
  899.    sayerror "Hightlighting ..."
  900.    class = 1
  901.    aclin = pri
  902.    ultimo = ult
  903.    abre = '<'
  904.    cierra = '>'
  905.    actual = abre
  906.    while  (aclin <= ultimo)  do
  907.       c = 1
  908.       linea=textline(aclin)
  909.       n = length(linea)
  910.       if (n) then
  911.          x=1
  912.          while (x & c <= n)  do
  913.             x = pos(actual,linea,c)
  914.             if x then
  915.                c = x+1
  916.                if actual == abre then
  917.                   insert_attribute class,High_Color,1,-1,x,aclin
  918.                   actual = cierra
  919.                else
  920.                   insert_attribute class,High_Color,0,-1,x+1,aclin
  921.                   actual = abre
  922.                endif
  923.             endif
  924.          endwhile
  925.       endif
  926.       aclin=aclin+1
  927.    endwhile
  928.    refresh
  929.    sayerror "Done."
  930.    .line=entryline
  931.    .col=entrycol
  932.  
  933. defc ajusta_menu
  934.    universal defaultmenu,High_ON
  935.    deletemenu defaultmenu,80,8111,1
  936.    deletemenu defaultmenu,80,8119,1
  937.    if (High_ON==1) then
  938.       buildmenuitem defaultmenu,80,8111,'Tag~s Hightlight On','ATTRON',0,8192
  939.       buildmenuitem defaultmenu,80,8119,'Tags Hightlight ~Off','ATTROFF',32769,0
  940.    else
  941.       buildmenuitem defaultmenu,80,8111,'Tag~s Hightlight On','ATTRON',0,0
  942.       buildmenuitem defaultmenu,80,8119,'Tags Hightlight~Off','ATTROFF',32769,8192
  943.    endif
  944.    showmenu defaultmenu
  945.  
  946. defc tabla
  947.   if marktype() =='' then
  948.      tabla_info="Table Option:"||chr(10)||
  949.                  "requires marked data in the form:"||chr(10)||chr(10)||
  950.                  "Table caption"||chr(10)||
  951.                  "         ColName1 ColName2 ColName3"||chr(10)||
  952.                  "RowName1 data data data"||chr(10)||
  953.                  "RowName2 data data data"||chr(10)||
  954.                  " ...."
  955.      WinMessageBox('HTML Extensions for EPM 0.98',tabla_info,16384)
  956.      return
  957.   endif
  958.   call pend_mark()
  959.   my_end_line = .line
  960.   call pbegin_mark()
  961.   my_init_line = .line
  962.   nrows=my_end_line-my_init_line-1
  963.   getline caption,my_init_line
  964.   getline col_names_line,my_init_line+1
  965.   ncols = words(col_names_line)
  966.   maxsize=0
  967.   for aclin=my_init_line+1 to my_end_line
  968.      getline linea,aclin
  969.      line_size = max_word_size(linea)
  970.      if maxsize <line_size  then
  971.         maxsize=line_size
  972.      endif
  973.   endfor
  974.  
  975.   sep_linea = '+'
  976.   tmp_linea = insertstr('-',sep_linea,1,maxsize+2,'-')
  977.   for i = 1 to ncols+1
  978.      sep_linea=insertstr(tmp_linea,sep_linea)
  979.   endfor
  980.  
  981.   oflin=1
  982.   insertline '<PRE>',my_end_line+oflin
  983.   oflin=oflin+1
  984.   captionline= '<B>'caption'</B>'
  985.   insertline captionline,my_end_line+oflin
  986.   oflin=oflin+1
  987.   insertline sep_linea,my_end_line+oflin
  988.   oflin=oflin+1
  989.   t_linea='|'
  990.   t_linea=insertstr(" ",t_linea,1,maxsize+2," ")'|'
  991.   for j = 1  to words(col_names_line)
  992.      ltpad=maxsize-length(word(col_names_line,j))
  993.      llpad=ltpad % 2
  994.      lrpad=ltpad-llpad
  995.      lpad=insertstr(" ","",1,llpad," ")
  996.      rpad=insertstr(" ","",1,lrpad," ")
  997.      t_linea=t_linea||lpad||word(col_names_line,j)||rpad'|'
  998.   endfor
  999.   insertline t_linea,my_end_line+oflin
  1000.   oflin=oflin+1
  1001.   insertline sep_linea,my_end_line+oflin
  1002.   oflin=oflin+1
  1003.   for linea = my_init_line + 2 to my_end_line
  1004.      getline linea_actual,linea
  1005.      t_linea='|'
  1006.      for j = 1  to words(linea_actual)
  1007.         if word(linea_actual,j)="*" then
  1008.           t_linea=t_linea||insertstr("","",1,maxsize+1," ")'|'
  1009.         else
  1010.           ltpad=maxsize-length(word(linea_actual,j))
  1011.           llpad=ltpad % 2
  1012.           lrpad=ltpad-llpad
  1013.           lpad=insertstr(" ","",1,llpad," ")
  1014.           rpad=insertstr(" ","",1,lrpad," ")
  1015.           t_linea=t_linea||lpad||word(linea_actual,j)||rpad'|'
  1016.         endif
  1017.      endfor                            
  1018.  
  1019.      insertline t_linea,my_end_line+oflin
  1020.      insertline sep_linea,my_end_line+oflin+1
  1021.      oflin=oflin+2
  1022.   endfor
  1023.   insertline '</PRE>',my_end_line+oflin
  1024.  
  1025.   call pbegin_mark()
  1026.   aclin=.line-1
  1027.   for i = 1  to nrows +2
  1028.       getline linea,aclin+i
  1029.       newlinea='<!-- 'linea' -->'
  1030.       replaceline newlinea,aclin+i
  1031.   endfor
  1032.    insertline"",aclin+i
  1033.    insert
  1034.   unmark
  1035.   .line=.line+nrows*3+9
  1036.   .col=1
  1037.  
  1038.  
  1039.                 
  1040. defproc max_word_size(linea)
  1041.   m=0
  1042.   for i=1 to words(linea)
  1043.     l=wordlength(linea,1)
  1044.      if l>m then
  1045.         m=l
  1046.      endif
  1047.   endfor
  1048.   return m
  1049.  
  1050.