home *** CD-ROM | disk | FTP | other *** search
/ Chip Hitware 6 A / CHIP_HITWARE6_A.iso / tools / Dana / HTMLMODE.DAS < prev    next >
Text File  |  1998-02-23  |  42KB  |  1,588 lines

  1. '********************************************************************
  2. '                        HTML mode for Dana
  3. '                                      carty, 1995
  4. 'ver 1.00E    rel. 95/11
  5. 'ver 1.01E    rel. 96/02
  6. 'ver 1.02E    rel. 96/06
  7. 'ver 1.03E    rel. 98/01
  8. '********************************************************************
  9.  
  10. Declare Proc OpenURL Lib "DanaInet.DLL" Alias "DanaOpenURL" (url$)
  11.  
  12. Const WIN32S = False
  13. '--------------------------------------------------------------------
  14. ' If you are running Dana on Win32s, set this True.
  15. '--------------------------------------------------------------------
  16.  
  17. Const HTMLVER = 3
  18. '--------------------------------------------------------------------
  19. ' Specify HTML version. Actually less than 2 just means 2.
  20. '--------------------------------------------------------------------
  21.  
  22. Const NETSCAPE = True
  23. '--------------------------------------------------------------------
  24. ' If you want to use NetScape extention, set this True.
  25. ' But, some very popular tags like <CENTER> can be used if you set
  26. ' this False
  27. '--------------------------------------------------------------------
  28.  
  29. Const T_HEADSIZE1 = 1
  30. Const T_HEADSIZE2 = 2
  31. Const T_HEADSIZE3 = 3
  32. Const T_HEADSIZE4 = 4
  33. Const T_HEADSIZE5 = 5
  34. Const T_HEADSIZE6 = 6
  35. Const T_PREFORMAT = 7
  36. Const T_CENTER    = 8
  37. Const T_BLINK     = 9
  38. Const T_COMMENT   = 10
  39.  
  40. Const T_DIVISION  = 11
  41. Const T_BLOCKQUOTE= 12
  42. Const T_EMPHASIS  = 13
  43. Const T_STRONG    = 14
  44. Const T_CITATION  = 15
  45. Const T_CODE      = 16
  46. Const T_SAMPLE    = 17
  47. Const T_KEYBOARD  = 18
  48. Const T_VARIABLE  = 19
  49. Const T_DEFINITION= 20
  50. Const T_ADDRESS   = 21
  51.  
  52. Const T_FONTSIZE1 = 31
  53. Const T_FONTSIZE2 = 32
  54. Const T_FONTSIZE3 = 33
  55. Const T_FONTSIZE4 = 34
  56. Const T_FONTSIZE5 = 35
  57. Const T_FONTSIZE6 = 36
  58. Const T_FONTSIZE7 = 37
  59. Const T_FONTCOLOR = 38
  60. Const T_FONTBOLD  = 39
  61. Const T_FONTITALIC= 40
  62. Const T_FONTFIX   = 41
  63. Const T_FONTUNDER = 42
  64. Const T_FONTSTRIKE= 43
  65. Const T_FONTSUB   = 44
  66. Const T_FONTSUPER = 45
  67.  
  68. Const T_FONTBIG   = 51
  69. Const T_FONTSMALL = 52
  70.  
  71. Const T_FONTBASE1 = 61
  72. Const T_FONTBASE2 = 62
  73. Const T_FONTBASE3 = 63
  74. Const T_FONTBASE4 = 64
  75. Const T_FONTBASE5 = 65
  76. Const T_FONTBASE6 = 66
  77. Const T_FONTBASE7 = 67
  78.  
  79. Const T_REPEAT = 99
  80.  
  81. Const T_LINKHTTP  = 101
  82. Const T_LINKFTP   = 102
  83. Const T_LINKFILE  = 103
  84.  
  85. Const T_LINKIMAGE = 111
  86. Const T_LINKINLINE= 112
  87.  
  88. Const T_LIST       = 201
  89. Const T_NUMLIST    = 202
  90. Const T_MENULIST   = 203
  91. Const T_DIRLIST    = 204
  92. Const T_DEFLIST    = 205
  93. Const T_LISTITEM   = 206
  94.  
  95. Const T_PARAGRAPH = 301
  96. Const T_PARABREAK = 302
  97. Const T_PARAHORZ  = 303
  98.  
  99. Const T_LEFT      = 401
  100. Const T_RIGHT     = 402
  101. Const T_AMP       = 403
  102. Const T_QUOTE     = 404
  103. Const T_SPACE     = 405
  104. Const T_TRADEMARK = 406
  105. Const T_COPYRIGHT = 407
  106.  
  107. Const T_TABLE = 501
  108. Const T_TABLEHEAD = 502
  109. Const T_TABLEDATA = 503
  110. Const T_TABLEROW = 504
  111. Const T_CAPTION = 505
  112.  
  113. Const T_FORM     = 601
  114. Const T_SUBMIT   = 602
  115. Const T_RESET    = 603
  116. Const T_TEXT     = 604
  117. Const T_PASSWORD = 605
  118. Const T_CHECKBOX = 606
  119. Const T_RADIO    = 607
  120. Const T_SELECT   = 608
  121. Const T_TEXTAREA = 609
  122.  
  123. Const T_MAILADDRESS = 901
  124. Const T_HEADER   = 902
  125. Const T_TITLE    = 903
  126. Const T_BODY     = 904
  127. Const T_FRAMESET = 905
  128. Const T_FRAME    = 906
  129. Const T_NOFRAME  = 907
  130.  
  131. Const T_INPUTTAG = 990
  132.  
  133. Const T_NETSCAPE = 996
  134. Const T_TAGDELETE = 997
  135. Const T_TEMPLATE = 998
  136. Const T_EXIT     = 999
  137.  
  138. Const VK_RBUTTON = &H02
  139. Const VK_ESCAPE = &H1B
  140. Const VK_RETURN = &H0D
  141.  
  142. Const MB_YESNO = &H04
  143. Const MB_YESNOCANCEL = &H03
  144. Const MB_ICONQUESTION = &H20
  145. Const MB_DEFBUTTON1 = &H0
  146. Const MB_DEFBUTTON2 = &H100
  147.  
  148. Const IDOK = 1
  149. Const IDCANCEL = 2
  150. Const IDYES = 6
  151. Const IDNO = 7
  152.  
  153. Const STATE_INIT        = 0
  154. Const STATE_BEFORE_OPEN = 1
  155. Const STATE_AFTER_OPEN  = 2
  156. Const STATE_BEFORE_SAVE = 4
  157. Const STATE_AFTER_SAVE  = 5
  158. Const STATE_KEY_PRESS   = 8
  159. Const STATE_CHAR        = 9
  160.  
  161. Dim hMenu%
  162. Dim hMenuBase%
  163. Dim hMenuChar%
  164. Dim hMenuFont%
  165. Dim hMenuForm%
  166. Dim hMenuHead%
  167. Dim hMenuLink%
  168. Dim hMenuList%
  169. Dim hMenuOther%
  170. Dim hMenuFrame%
  171. Dim hMenuPara%
  172. Dim hMenuSize%
  173. Dim hMenuSpec%
  174. Dim hMenuTable%
  175.  
  176. Declare Proc ChooseColor Lib "ComDlg32" Alias "ChooseColorA" (cc%) As Integer
  177. Declare Proc wsprintf Lib "User32" Alias "wsprintfA" (s$, fmt$, ..)
  178. Declare Proc GetProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (sec$, key$, def$, buf$, nbuf%, fname$)
  179. Declare Proc WriteProfileString Lib "Kernel32" Alias "WritePrivateProfileStringA" (sec$, key$, def$, fname$)
  180.  
  181. Static address$                ' mail address
  182. Static nNum%                ' temporary counter
  183. Static nRpt%                ' previous tag
  184.  
  185. Main ()
  186.  
  187.     Select Case .DanaState
  188.     Case STATE_INIT
  189.         MenuInit()
  190.         StayResident()
  191.     Case STATE_KEY_PRESS
  192.         OnKeyPress(.ParmA, .ParmB)
  193.     Case STATE_CHAR
  194.         OnChar(.ParmA)
  195.     Case STATE_AFTER_OPEN
  196.         OnAfterOpen()
  197.     Case STATE_BEFORE_SAVE
  198.         OnBeforeSave(.ParmStrA)
  199.     Case STATE_AFTER_SAVE
  200.         OnAfterSave()
  201.     Case Else
  202.     End Select
  203.  
  204. End
  205.  
  206. '/////////////////////////////////////////////////////////
  207. ' Message handlers
  208.  
  209. '///////////////////////////////
  210. ' Key pressed
  211. Proc OnKeyPress(nKey%, nShift%)
  212.     Dim cmd$
  213.     cmd$ = KeyToCmd(nKey, nShift)
  214.  
  215.     If nKey = VK_ESCAPE Or nKey = VK_RBUTTON Then
  216.         HTMLMain()
  217.         .ParmA = 0    ' Default key should be ignored.
  218.     Else If nKey = VK_RETURN Then
  219.         If nShift = &H20 Then
  220.             AddEnd("P")
  221.             .ParmA = 0
  222.         Else If nShift = &H40 Then
  223.             AddEnd("BR")
  224.             .ParmA = 0
  225.         End If
  226.     Else If cmd$ = "Repeat" Then
  227.         HTMLDispatch(T_REPEAT)
  228.         .ParmA = 0
  229.     End If
  230. End Proc
  231.  
  232. '///////////////////////////////
  233. ' Char input
  234. Proc OnChar(nChar%)
  235.  
  236. End Proc
  237.  
  238. '///////////////////////////////
  239. ' After open file
  240. Proc OnAfterOpen()
  241.  
  242. End Proc
  243.  
  244. '///////////////////////////////
  245. ' Before save file
  246. Proc OnBeforeSave(strName$)
  247.  
  248. End Proc
  249.  
  250. '///////////////////////////////
  251. ' After save file
  252. Proc OnAfterSave()
  253.  
  254. End Proc
  255.  
  256. '//////////////////////////////////////////////////////////////////
  257. ' Initialize Main Menu
  258. Proc MenuInit()
  259.     Dim fp%
  260.     Dim s$
  261.     address$ = Space(256)
  262.     GetProfileString("HTML", "Address", "", address$, 256, .HomePath + "DanaInet.INI")
  263.     If address$ = "" Then
  264.         GetProfileString("Mail", "Address", "", address$, 256, .HomePath + "DanaInet.INI")
  265.     End If
  266.     hMenu = NewMenu()
  267.     AddMenuItem(hMenu, "&Repeat", T_REPEAT)
  268.     hMenuChar = AddMenuItem(hMenu, "&Characters", 0)
  269.         hMenuHead = AddMenuItem(hMenuChar, "&Header", 0)
  270.             AddMenuItem(hMenuHead, "Size&1", T_HEADSIZE1)
  271.             AddMenuItem(hMenuHead, "Size&2", T_HEADSIZE2)
  272.             AddMenuItem(hMenuHead, "Size&3", T_HEADSIZE3)
  273.             AddMenuItem(hMenuHead, "Size&4", T_HEADSIZE4)
  274.             AddMenuItem(hMenuHead, "Size&5", T_HEADSIZE5)
  275.             AddMenuItem(hMenuHead, "Size&6", T_HEADSIZE6)
  276.         If HTMLVER >= 3 Then
  277.             AddMenuItem(hMenuChar, "&Division", T_DIVISION)
  278.         End If
  279.         AddMenuItem(hMenuChar, "&Pre formatted", T_PREFORMAT)
  280.             AddMenuItem(hMenuChar, "&Center", T_CENTER)
  281.         If NETSCAPE = True Then
  282.             AddMenuItem(hMenuChar, "B&link", T_BLINK)
  283.         End If
  284.         AddMenuItem(hMenuChar, "&Emphasis", T_EMPHASIS)
  285.         AddMenuItem(hMenuChar, "S&trong", T_STRONG)
  286.         AddMenuItem(hMenuChar, "Cit&ation", T_CITATION)
  287.         AddMenuItem(hMenuChar, "C&ode", T_CODE)
  288.         AddMenuItem(hMenuChar, "&Sample", T_SAMPLE)
  289.         AddMenuItem(hMenuChar, "&Keyboard", T_KEYBOARD)
  290.         AddMenuItem(hMenuChar, "&Variable", T_VARIABLE)
  291.         AddMenuItem(hMenuChar, "Co&mment", T_COMMENT)
  292.     hMenuFont = AddMenuItem(hMenu, "Fo&nt", 0)
  293.         If NETSCAPE = True Then
  294.             hMenuSize = AddMenuItem(hMenuFont, "Si&ze", 0)
  295.                 AddMenuItem(hMenuSize, "Size&1", T_FONTSIZE1)
  296.                 AddMenuItem(hMenuSize, "Size&2", T_FONTSIZE2)
  297.                 AddMenuItem(hMenuSize, "Size&3", T_FONTSIZE3)
  298.                 AddMenuItem(hMenuSize, "Size&4", T_FONTSIZE4)
  299.                 AddMenuItem(hMenuSize, "Size&5", T_FONTSIZE5)
  300.                 AddMenuItem(hMenuSize, "Size&6", T_FONTSIZE6)
  301.                 AddMenuItem(hMenuSize, "Size&7", T_FONTSIZE7)
  302.             AddMenuItem(hMenuFont, "&Color...", T_FONTCOLOR)
  303.         End If
  304.         AddMenuItem(hMenuFont, "&Bold", T_FONTBOLD)
  305.         AddMenuItem(hMenuFont, "&Italic", T_FONTITALIC)
  306.         AddMenuItem(hMenuFont, "&Typewriter", T_FONTFIX)
  307.         If HTMLVER >= 3 Then
  308.             AddMenuItem(hMenuFont, "&Underline", T_FONTUNDER)
  309.             AddMenuItem(hMenuFont, "&Strikeout", T_FONTSTRIKE)
  310.             AddMenuItem(hMenuFont, "Subsc&ript", T_FONTSUB)
  311.             AddMenuItem(hMenuFont, "Su&perscript", T_FONTSUPER)
  312.             AddMenuItem(hMenuFont, "S&mall Font", T_FONTSMALL)
  313.             AddMenuItem(hMenuFont, "&Large Font", T_FONTBIG)
  314.         End If
  315.         If NETSCAPE = True Then
  316.             hMenuBase = AddMenuItem(hMenuFont, "B&ase Size", 0)
  317.                 AddMenuItem(hMenuBase, "Size&1", T_FONTBASE1)
  318.                 AddMenuItem(hMenuBase, "Size&2", T_FONTBASE2)
  319.                 AddMenuItem(hMenuBase, "Size&3", T_FONTBASE3)
  320.                 AddMenuItem(hMenuBase, "Size&4", T_FONTBASE4)
  321.                 AddMenuItem(hMenuBase, "Size&5", T_FONTBASE5)
  322.                 AddMenuItem(hMenuBase, "Size&6", T_FONTBASE6)
  323.                 AddMenuItem(hMenuBase, "Size&7", T_FONTBASE7)
  324.         End If
  325.     hMenuLink = AddMenuItem(hMenu, "Lin&k", 0)
  326.         AddMenuItem(hMenuLink, "&HTTP...", T_LINKHTTP)
  327.         AddMenuItem(hMenuLink, "F&TP...", T_LINKFTP)
  328.         AddMenuItem(hMenuLink, "&File...", T_LINKFILE)
  329.         AddMenuItem(hMenuLink, "&Inline Image...", T_LINKIMAGE)
  330.         AddMenuItem(hMenuLink, "Inline &Source...", T_LINKINLINE)
  331.     hMenuList = AddMenuItem(hMenu, "&List", 0)
  332.         AddMenuItem(hMenuList, "Norma&l", T_LIST)
  333.         AddMenuItem(hMenuList, "&Numbered", T_NUMLIST)
  334.         AddMenuItem(hMenuList, "&Menu", T_MENULIST)
  335.         AddMenuItem(hMenuList, "Di&rectory", T_DIRLIST)
  336.         AddMenuItem(hMenuList, "&Defined", T_DEFLIST)
  337.         AddMenuItem(hMenuList, "List &Items", T_LISTITEM)
  338.     hMenuPara = AddMenuItem(hMenu, "&Paragraph", 0)
  339.         AddMenuItem(hMenuPara, "B&reak", T_PARABREAK)
  340.         AddMenuItem(hMenuPara, "&Paragraph", T_PARAGRAPH)
  341.         AddMenuItem(hMenuPara, "&Horizontal Line", T_PARAHORZ)
  342.     hMenuSpec = AddMenuItem(hMenu, "&Special Characters", 0)
  343.         AddMenuItem(hMenuSpec, "&<", T_LEFT)
  344.         AddMenuItem(hMenuSpec, "&>", T_RIGHT)
  345.         AddMenuItem(hMenuSpec, "&Ampersand", T_AMP)
  346.         AddMenuItem(hMenuSpec, Chr(34) + "(&Quote)", T_QUOTE)
  347.         AddMenuItem(hMenuSpec, "&Space", T_SPACE)
  348.         AddMenuItem(hMenuSpec, "&Registered Trademark", T_TRADEMARK)
  349.         AddMenuItem(hMenuSpec, "&Copyright", T_COPYRIGHT)
  350.     If HTMLVER >= 3 Then
  351.         hMenuTable = AddMenuItem(hMenu, "&Table", 0)
  352.             AddMenuItem(hMenuTable, "&Table...", T_TABLE)
  353.             AddMenuItem(hMenuTable, "Table &Row", T_TABLEROW)
  354.             AddMenuItem(hMenuTable, "&Caption", T_CAPTION)
  355.             AddMenuItem(hMenuTable, "Table &Header", T_TABLEHEAD)
  356.             AddMenuItem(hMenuTable, "Table &Data", T_TABLEDATA)
  357.     End If
  358.     hMenuForm = AddMenuItem(hMenu, "&Form", 0)
  359.         AddMenuItem(hMenuForm, "&Form...", T_FORM)
  360.         AddMenuItem(hMenuForm, "&Submit...", T_SUBMIT)
  361.         AddMenuItem(hMenuForm, "&Reset...", T_RESET)
  362.         AddMenuItem(hMenuForm, "&Text Box...", T_TEXT)
  363.         AddMenuItem(hMenuForm, "&Password...", T_PASSWORD)
  364.         AddMenuItem(hMenuForm, "&Check Box...", T_CHECKBOX)
  365.         AddMenuItem(hMenuForm, "Ra&dio Button...", T_RADIO)
  366.         AddMenuItem(hMenuForm, "&Selection Box...", T_SELECT)
  367.         AddMenuItem(hMenuForm, "Text &Area...", T_TEXTAREA)
  368.     hMenuFrame = AddMenuItem(hMenu, "Fr&ame", 0)
  369.         AddMenuItem(hMenuFrame, "Frame &Set", T_FRAMESET)
  370.         AddMenuItem(hMenuFrame, "&Frame", T_FRAME)
  371.         AddMenuItem(hMenuFrame, "&No Frame", T_NOFRAME)
  372.     hMenuOther = AddMenuItem(hMenu, "&Others", 0)
  373.         AddMenuItem(hMenuOther, "&Mail Address...", T_MAILADDRESS)
  374.         AddMenuItem(hMenuOther, "&Head", T_HEADER)
  375.         AddMenuItem(hMenuOther, "&Title", T_TITLE)
  376.         AddMenuItem(hMenuOther, "&Body", T_BODY)
  377.         AddMenuItem(hMenuOther, "&Input Tag...", T_INPUTTAG)
  378.     AddMenuItem(hMenu, "", -1)
  379.     AddMenuItem(hMenu, "View in &Browser", T_NETSCAPE)
  380.     AddMenuItem(hMenu, "R&emove Tags...", T_TAGDELETE)
  381.     AddMenuItem(hMenu, "Te&mplate...", T_TEMPLATE)
  382.     AddMenuItem(hMenu, "E&xit HTML mode", T_EXIT)
  383. End Proc
  384.  
  385. '//////////////////////////////////////////////////////////////////
  386. ' HTML command call
  387. Proc HTMLMain()
  388.     Dim nC%
  389.     Dim sCsr$
  390.  
  391.     If .BlkDisp = False Then
  392.         Dim nSaveCol%
  393.         nSaveCol% = .Column
  394.         Silent()
  395.  
  396.         nC = GetCurrentChar()
  397.         Do
  398.             If .CsrX > 0 Then
  399.                 Command("CsrLeft")
  400.             Else
  401.                 Exit Do
  402.             End If
  403.             nC = GetCurrentChar()
  404.             If nC = Asc(">") Then Exit Do
  405.             If nC = Asc("<") Then
  406.                 Command("CsrRight")
  407.                 sCsr$ = GetCursorWord()
  408.                 NoSilent()
  409.                 InTag(sCsr$)
  410.                 GotoThere(0, nSaveCol)
  411.                 Return
  412.             End If
  413.         Loop While True
  414.  
  415.         GotoThere(0, nSaveCol)
  416.         NoSilent()
  417.     End If
  418.  
  419.     Dim nRC%
  420.     nRC = DoMenu(hMenu)
  421.     HTMLDispatch(nRC)
  422. End Proc
  423.  
  424. Proc HTMLDispatch(nRC%)
  425.  
  426.     If nRC = T_REPEAT Then
  427.         nRC = nRpt
  428.     Else
  429.         If nRC <> -1 Then nRpt = nRC
  430.     End If
  431.  
  432.     Select Case nRC
  433.     Case -1
  434.     Case T_HEADSIZE1
  435.         AddTag("H1")
  436.     Case T_HEADSIZE2
  437.         AddTag("H2")
  438.     Case T_HEADSIZE3
  439.         AddTag("H3")
  440.     Case T_HEADSIZE4
  441.         AddTag("H4")
  442.     Case T_HEADSIZE5
  443.         AddTag("H5")
  444.     Case T_HEADSIZE6
  445.         AddTag("H6")
  446.     Case T_PREFORMAT
  447.         AddParaTag("PRE")
  448.     Case T_CENTER
  449.         AddTag("CENTER")
  450.     Case T_BLINK
  451.         AddTag("BLINK")
  452.     Case T_DIVISION
  453.         AddTag("DIV")
  454.     Case T_BLOCKQUOTE
  455.         AddTag("BLOCKQUOTE")
  456.     Case T_EMPHASIS
  457.         AddTag("EM")
  458.     Case T_STRONG
  459.         AddTag("STRONG")
  460.     Case T_CITATION
  461.         AddTag("CITE")
  462.     Case T_CODE
  463.         AddTag("CODE")
  464.     Case T_SAMPLE
  465.         AddTag("SAMP")
  466.     Case T_KEYBOARD
  467.         AddTag("KBD")
  468.     Case T_VARIABLE
  469.         AddTag("VAR")
  470.     Case T_DEFINITION
  471.         AddTag("DFN")
  472.     Case T_ADDRESS
  473.         AddTag("ADDRESS")
  474.     Case T_COMMENT
  475.         AddCmt()
  476.     Case T_FONTSIZE1
  477.         AddFontSize(1)
  478.     Case T_FONTSIZE2
  479.         AddFontSize(2)
  480.     Case T_FONTSIZE3
  481.         AddFontSize(3)
  482.     Case T_FONTSIZE4
  483.         AddFontSize(4)
  484.     Case T_FONTSIZE5
  485.         AddFontSize(5)
  486.     Case T_FONTSIZE6
  487.         AddFontSize(6)
  488.     Case T_FONTSIZE7
  489.         AddFontSize(7)
  490.     Case T_FONTBASE1
  491.         AddBaseSize(1)
  492.     Case T_FONTBASE2
  493.         AddBaseSize(2)
  494.     Case T_FONTBASE3
  495.         AddBaseSize(3)
  496.     Case T_FONTBASE4
  497.         AddBaseSize(4)
  498.     Case T_FONTBASE5
  499.         AddBaseSize(5)
  500.     Case T_FONTBASE6
  501.         AddBaseSize(6)
  502.     Case T_FONTBASE7
  503.         AddBaseSize(7)
  504.     Case T_FONTCOLOR
  505.         AddFontColor()
  506.     Case T_FONTBOLD
  507.         AddTag("B")
  508.     Case T_FONTITALIC
  509.         AddTag("I")
  510.     Case T_FONTFIX
  511.         AddTag("TT")
  512.     Case T_FONTUNDER
  513.         AddTag("U")
  514.     Case T_FONTSTRIKE
  515.         AddTag("S")
  516.     Case T_FONTSUB
  517.         AddTag("SUB")
  518.     Case T_FONTSUPER
  519.         AddTag("SUP")
  520.     Case T_FONTBIG
  521.         AddTag("BIG")
  522.     Case T_FONTSMALL
  523.         AddTag("SMALL")
  524.     Case T_LIST
  525.         AddList("UL")
  526.     Case T_NUMLIST
  527.         AddList("OL")
  528.     Case T_MENULIST
  529.         AddList("MENU")
  530.     Case T_DIRLIST
  531.         AddList("DIR")
  532.     Case T_DEFLIST
  533.         AddDefList()
  534.     Case T_LISTITEM
  535.         AddTops("LI")
  536.     Case T_PARABREAK
  537.         AddEnd("BR")
  538.     Case T_PARAGRAPH
  539.         AddEnd("P")
  540.     Case T_PARAHORZ
  541.         InsertString("<HR>" + Chr(10))
  542.     Case T_LEFT
  543.         InsertString("<")
  544.     Case T_RIGHT
  545.         InsertString(">")
  546.     Case T_AMP
  547.         InsertString("&")
  548.     Case T_QUOTE
  549.         InsertString(""")
  550.     Case T_SPACE
  551.         InsertString(" ")
  552.     Case T_TRADEMARK
  553.         InsertString("®")
  554.     Case T_COPYRIGHT
  555.         InsertString("©")
  556.     Case T_TABLE
  557.         AddTable()
  558.     Case T_TABLEHEAD
  559.         AddTag("TH")
  560.     Case T_TABLEDATA
  561.         AddTag("TD")
  562.     Case T_TABLEROW
  563.         AddParaTag("TR")
  564.     Case T_CAPTION
  565.         AddParaTag("CAPTION")
  566.     Case T_FORM
  567.         AddForm()
  568.     Case T_SUBMIT
  569.         AddButton("SUBMIT")
  570.     Case T_RESET
  571.         AddButton("RESET")
  572.     Case T_TEXT
  573.         AddText("TEXT")
  574.     Case T_PASSWORD
  575.         AddText("PASSWORD")
  576.     Case T_CHECKBOX
  577.         AddCheck("CHECKBOX")
  578.     Case T_RADIO
  579.         AddCheck("RADIO")
  580.     Case T_SELECT
  581.         AddSelect()
  582.     Case T_TEXTAREA
  583.         AddTextArea()
  584.     Case T_LINKHTTP
  585.         AddRef(InputBox("Input URL", "", "http://"))
  586.     Case T_LINKFTP
  587.         AddRef(InputBox("Input URL", "", "ftp://"))
  588.     Case T_LINKFILE
  589.         AddRef(GetOpenFile("*.*"))
  590.     Case T_LINKIMAGE
  591.         AddImage()
  592.     Case T_LINKINLINE
  593.         AddInline()
  594.     Case T_MAILADDRESS
  595.         AddAddress()
  596.     Case T_HEADER
  597.         AddParaTag("HEAD")
  598.     Case T_TITLE
  599.         AddTag("TITLE")
  600.     Case T_BODY
  601.         AddParaTag("BODY")
  602.     Case T_INPUTTAG
  603.         AddTag(InputBox("Input tag", "", ""))
  604.     Case T_FRAMESET
  605.         AddParaTag("FRAMESET")
  606.     Case T_FRAME
  607.         AddFrame()
  608.     Case T_NOFRAME
  609.         AddParaTag("NOFRAME")
  610.     Case T_NETSCAPE
  611.         Command("SaveFile")
  612.         Dim strPathName$
  613.         Dim I%
  614.         Dim nC%
  615.         strPathName$ = .PathName
  616.         For I = 0 To Len(strPathName$) - 1
  617.             nC = LodB(strPathName$, I)
  618.             If nC = Asc(":") Then
  619.                 StoB(strPathName$, I, Asc("|"))
  620.             Else If nC = Asc("\") Then
  621.                 StoB(strPathName$, I, Asc("/"))
  622.             End If
  623.         Next I
  624.         OpenURL("file:///" + strPathName$)
  625.     Case T_TAGDELETE
  626.         TagDelete()
  627.     Case T_TEMPLATE
  628.         AddTemplate()
  629.     Case T_EXIT
  630.         WriteProfileString("HTML", "Address", address$, .HomePath + "DanaInet.INI")
  631.         DiscardMenu(hMenu)
  632.         Terminate()
  633.     End Select
  634. End Proc
  635.  
  636. '//////////////////////////////////////////////////////////////////
  637. ' Delete Tags
  638. Proc TagDelete()
  639.     Dim s$, t$
  640.     s$ = GetSelected()
  641.     If s$ = "" Then Return
  642.     If MsgBox("Are you sure to delete all the tags in the selection?", "", MB_YESNO) = IDNO Then
  643.         Return
  644.     End If
  645.     t$ = s$
  646.     Dim Is%, It%, nC%
  647.     Dim bInTag%
  648.     Is = 0
  649.     It = 0
  650.     While True
  651.         nC = LodB(s$, Is)
  652.         Is = Is + 1
  653.         If nC = &H00 Then
  654.             StoB(t$, It, nC)
  655.             Exit While
  656.         End If
  657.         If bInTag = True Then
  658.             If nC = &H3E Then
  659.                 bInTag = False
  660.             End If
  661.         Else
  662.             If nC = &H3C Then            '<
  663.                 bInTag = True
  664.             Else
  665.                 StoB(t$, It, nC)
  666.                 It = It + 1
  667.             End If
  668.         End If
  669.     Wend
  670.     DelSelect()
  671.     InsertString(t$)
  672. End Proc
  673.  
  674. '//////////////////////////////////////////////////////////////////
  675. ' Template
  676. Proc AddTemplate()
  677.     Dim mask$
  678.     Dim title$
  679.     mask$ = ".html"
  680.     If WIN32S Then mask$ = ".htm"
  681.     Dim n%
  682.     Dim f$
  683.     f$ = GetOpenFile("*" + mask$)
  684.     n = InStr(f$, ".")
  685.     If n Then
  686.         n = n - 1
  687.     Else
  688.         n = Len(f$)
  689.         f$ = f$ + mask$
  690.     End If
  691.     FileOpen(f$)
  692.     Dim rc%
  693.     If .TotLine > 1 Then
  694.         rc = MsgBox("It is not a new file" + Chr(10) + "Do you clear it?", "", MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2)
  695.         If rc = IDYES Then
  696.             Command("SelectAll")
  697.             DelSelect()
  698.         Else
  699.             Return
  700.         End If
  701.     End If
  702.     title$ = Left(.FileName, n)
  703.     title$ = InputBox("Input title", "", title$ + " Home Page")
  704.     address$ = InputBox("Input your E-Mail address", "", address$)
  705.     InsertString("<HTML>" + Chr(10) + "<HEAD>" + Chr(10) + "<TITLE>" + title$ + "</TITLE>" + Chr(10) + "</HEAD>" + Chr(10))
  706.     InsertString("<BODY>" + Chr(10))
  707.     InsertString("<CENTER><H2>" + title$ + "</H2></CENTER><P>" + Chr(10))
  708.     InsertString("<HR>" + Chr(10))
  709.     InsertString(Chr(10) + "<!-- Main Subject -->" + Chr(10) + "<P>" + Chr(10) + Chr(10))
  710.     InsertString("<HR>" + Chr(10))
  711.     InsertString("<ADDRESS><A HREF=" + Chr(34) + "mailto:" + address$ + Chr(34) + ">")
  712.     InsertString("<" + address$ + "></A></ADDRESS><BR>" + Chr(10))
  713.     InsertString("</BODY>" + Chr(10) + "</HTML>")
  714.     FindBack("<!-- Main Subject -->", "")
  715.     Command("CsrLeft")
  716.     Command("CsrRight")
  717. End Proc
  718.  
  719. '//////////////////////////////////////////////////////////////////
  720. ' Add Table
  721. Proc AddTable()
  722.     If .BlkDisp = False Then
  723.         InsertString("<TABLE>" + Chr(10) + Chr(10) + "</TABLE>" + Chr(10))
  724.         Return
  725.     End If
  726.     Dim bCap%
  727.     Dim bHead%
  728.     If MsgBox("Do you want to make the first line a caption?", "", MB_YESNO | MB_ICONQUESTION) = IDYES Then
  729.         bCap = True
  730.     Else
  731.         bCap = False
  732.     End If
  733.     If MsgBox("Do you want to make the first line in each text block a header?", "", MB_YESNO | MB_ICONQUESTION) = IDYES Then
  734.         bHead = True
  735.     Else
  736.         bHead = False
  737.     End If
  738.  
  739.     Silent()
  740.  
  741.     Dim nTopL%, nBotL%, nLine%, I%
  742.     nTopL = .BlkBegL
  743.     nBotL = .BlkEndL
  744.     If .BlkEndC = 1 Then nBotL = nBotL-1
  745.     JumpLine(nTopL)
  746.     GotoThere(0, 1)
  747.     InsertString("<TABLE>" + Chr(10))
  748.     nLine = nTopL + 1
  749.     nBotL = nBotL + 1
  750.     Dim hLine%, sLine$
  751.     hLine = GetCurrentLine()
  752.     If bCap = True Then
  753.         sLine$ = LoadThisLine(hLine)
  754.         sLine$ = "<CAPTION>" + sLine$ + "</CAPTION>"
  755.         Command("DeleteAfter")
  756.         InsertString(sLine$)
  757.         nLine = nLine + 1
  758.         JumpLine(nLine)
  759.         GotoThere(0, 1)
  760.     End If
  761.     Dim bInBlock%
  762.     Dim TD$
  763.     bInBlock = False
  764.     Do While nLine <= nBotL
  765.         TD$ = "TD"
  766.         If bInBlock = False Then
  767.             InsertString("<TR>" + Chr(10))
  768.             bInBlock = True
  769.             nLine = nLine + 1
  770.             nBotL = nBotL + 1
  771.             If bHead = True Then
  772.                 TD$ = "TH"
  773.             End If
  774.         End If
  775.         hLine = GetCurrentLine()
  776.         sLine$ = LoadThisLine(hLine)
  777.         If sLine$ = "" Then
  778.             sLine$ = "</TR>"
  779.             bInBlock = False
  780.         Else
  781.             sLine$ = "<" + TD$ + ">" + sLine$ + "</"+ TD$ + ">"
  782.         End If
  783.         Command("DeleteAfter")
  784.         InsertString(sLine$)
  785.         nLine = nLine + 1
  786.         JumpLine(nLine)
  787.         GotoThere(0, 1)
  788.     Loop
  789.     If bInBlock = True Then
  790.         InsertString("</TR>" + Chr(10))
  791.     End If
  792.     InsertString("</TABLE>")
  793.     NoSilent()
  794.     SelectCancel()
  795.     Refresh()
  796. End Proc
  797.  
  798. '//////////////////////////////////////////////////////////////////
  799. ' Add Form
  800. Proc AddForm()
  801.     Dim Action$
  802.     Dim Form$
  803.     Dim nTopL%, nBotL%
  804.     Silent()
  805.     If .BlkDisp = True Then
  806.         nTopL = .BlkBegL
  807.         nBotL = .BlkEndL
  808.         If .BlkEndC = 1 Then nBotL = nBotL-1
  809.     Else
  810.         nTopL = .LineNoL
  811.         nBotL = .LineNoL
  812.     End If
  813.     JumpLine(nTopL)
  814.     Command("BegLine")
  815.     Action$ = InputBox("Input action", "", "mailto:" + address$)
  816.     Form$ = "<FORM METHOD=" + Chr(34) + "POST" + Chr(34) + " "
  817.     Form$ = Form$ + "ACTION=" + Chr(34) + Action$ + Chr(34) + ">" + Chr(10)
  818.     InsertString(Form$)
  819.     nBotL = nBotL + 1
  820.     JumpLine(nBotL)
  821.     SelectCancel()
  822.     Command("InsertAft")
  823.     Form$ = "</FORM>"
  824.     InsertString(Form$)
  825.     NoSilent()
  826.     Command("MakeMid")
  827. End Proc
  828.  
  829. '//////////////////////////////////////////////////////////////////
  830. ' Add Submit/Cancel Button
  831. Proc AddButton(t$)
  832.     Dim s$
  833.     Dim v$
  834.     v$ = InputBox("Input caption", "", "")
  835.     s$ = "<INPUT TYPE=" + Chr(34) + t$ + Chr(34)
  836.     If v$ <> "" Then
  837.         s$ = s$ + " VALUE=" + Chr(34) + v$ + Chr(34)
  838.     End If
  839.     s$ = s$ + "><P>" + Chr(10)
  840.     InsertString(s$)
  841. End Proc
  842.  
  843. '//////////////////////////////////////////////////////////////////
  844. ' Add Text Box
  845. Proc AddText(t$)
  846.     Dim s$
  847.     Dim n$, v$
  848.     nNum = nNum + 1
  849.     n$ = InputBox("Input a name of the field", "", t$ + Str(nNum))
  850.     v$ = InputBox("Input initial value", "", "")
  851.     s$ = "<INPUT NAME=" + Chr(34) + n$ + Chr(34) + " TYPE=" + Chr(34) + t$ + Chr(34)
  852.     If v$ <> "" Then
  853.         s$ = s$ + " VALUE=" + Chr(34) + v$ + Chr(34)
  854.     End If
  855.     s$ = s$ + "><P>" + Chr(10)
  856.     InsertString(s$)
  857. End Proc
  858.  
  859. '//////////////////////////////////////////////////////////////////
  860. ' Add Check Box
  861. Proc AddCheck(t$)
  862.     Dim s$
  863.     Dim n$, v$
  864.     nNum = nNum + 1
  865.     n$ = InputBox("Input a name of the field", "", t$ + Str(nNum))
  866.     v$ = InputBox("Input initial value", "", "True")
  867.     s$ = "<INPUT NAME=" + Chr(34) + n$ + Chr(34) + " TYPE=" + Chr(34) + t$ + Chr(34)
  868.     If v$ <> "" Then
  869.         s$ = s$ + " VALUE=" + Chr(34) + v$ + Chr(34)
  870.     End If
  871.     s$ = s$ + ">"
  872.     InsertString(s$)
  873. End Proc
  874.  
  875. '//////////////////////////////////////////////////////////////////
  876. ' Add Text Area
  877. Proc AddTextArea()
  878.     Dim n$, s$
  879.     nNum = nNum + 1
  880.     n$ = InputBox("Input a name of the field", "", "TextArea" + Str(nNum))
  881.     s$ = "<TEXTAREA NAME=" + Chr(34) + n$ + Chr(34)
  882.     s$ = s$ + "></TEXTAREA><P>" + Chr(10)
  883.     InsertString(s$)
  884. End Proc
  885.  
  886. '//////////////////////////////////////////////////////////////////
  887. ' Add Selection Box
  888. Proc AddSelect()
  889.     Dim nTopL%, nBotL%
  890.     Silent()
  891.     If .BlkDisp = True Then
  892.         nTopL = .BlkBegL
  893.         nBotL = .BlkEndL
  894.         If .BlkEndC = 1 Then nBotL = nBotL-1
  895.     Else
  896.         nTopL = .LineNoL
  897.         nBotL = .LineNoL
  898.     End If
  899.     JumpLine(nTopL)
  900.     Command("BegLine")
  901.     Dim n$, z$
  902.     Dim Items%
  903.     nNum = nNum + 1
  904.     n$ = InputBox("Input a name of the field", "", "Select" + Str(nNum))
  905.     Items% = (nBotL-nTopL) + 1
  906.     If Items > 10 Then Items = 10
  907.     Dim s$
  908.     s$ = "<SELECT NAME=" + Chr(34) + n$ + Chr(34) + ">" + Chr(10)
  909.     InsertString(s$)
  910.     nBotL = nBotL + 1
  911.     Dim nLine%
  912.     nLine = nTopL + 1
  913.     While nLine <= nBotL
  914.         JumpLine(nLine)
  915.         Command("BegLine")
  916.         If nLine = nTopL + 1 Then
  917.             InsertString("<OPTION SELECTED>")
  918.         Else
  919.             InsertString("<OPTION>")
  920.         End If
  921.         nLine = nLine + 1
  922.     Wend
  923.     SelectCancel()
  924.     Command("InsertAft")
  925.     InsertString("</SELECT><P>")
  926.     NoSilent()
  927.     Command("MakeMid")
  928. End Proc
  929.  
  930. '//////////////////////////////////////////////////////////////////
  931. ' Add List
  932. Proc AddList(Mode$)
  933.     Silent()
  934.     AddString("<LI>")
  935.     GotoThere(.BlkBeg, 1)
  936.     InsertString("<" + Mode$ + ">" + Chr(10))
  937.     JumpLine(.BlkEndL)
  938.     Command("EndLine")
  939.     InsertString(Chr(10) + "</" + Mode$ + ">")
  940.     SelectCancel()
  941.     NoSilent()
  942.     Command("MakeMid")
  943. End Proc
  944.  
  945. '//////////////////////////////////////////////////////////////////
  946. ' Add Defined List
  947. Proc AddDefList()
  948.     Dim nTopL%, nBotL%
  949.     Silent()
  950.     If .BlkDisp = True Then
  951.         nTopL = .BlkBegL
  952.         nBotL = .BlkEndL
  953.         If .BlkEndC = 1 Then nBotL = nBotL-1
  954.     Else
  955.         nTopL = .LineNoL
  956.         nBotL = .LineNoL
  957.     End If
  958.     JumpLine(nTopL)
  959.     Command("BegLine")
  960.     InsertString("<DL>" + Chr(10))
  961.     nBotL = nBotL + 1
  962.     Dim nLine%
  963.     nLine = nTopL + 1
  964.     Dim hLine%
  965.     Dim sLine$
  966.     While nLine <= nBotL
  967.         hLine = GetThisLine(nLine)
  968.         sLine$ = LoadThisLine(hLine)
  969.         Dim nC%, nIdx
  970.         nC = Asc(Left(sLine$, 1))
  971.         If nC = &H20 Or nC = &H09 Then
  972.             sLine$ = "<DD>" + LTrim(sLine$)
  973.         Else
  974.             sLine$ = "<DT>" + sLine$
  975.         End If
  976.         SaveThisLine(hLine, sLine$)
  977.         nLine = nLine + 1
  978.     Wend
  979.     JumpLine(nBotL)
  980.     SelectCancel()
  981.     Command("InsertAft")
  982.     InsertString("</DL>")
  983.     NoSilent()
  984.     Command("MakeMid")
  985. End Proc
  986.  
  987. '//////////////////////////////////////////////////////////////////
  988. ' Add Top of Line(s)
  989. Proc AddTops(tag$)
  990.     Dim s$
  991.     s$ = "<" + tag$ + ">"
  992.     If .BlkDisp = False Then
  993.         Command("BegLine")
  994.         InsertString(s$)
  995.     Else
  996.         AddString(s$)
  997.     End If
  998. End Proc
  999.  
  1000. '//////////////////////////////////////////////////////////////////
  1001. ' Add End of Line
  1002. Proc AddEnd(tag$)
  1003.     Dim s$
  1004.     s$ = GetSelected()
  1005.     If s$ = "" Then
  1006.         Command("EndLine")
  1007.     Else
  1008.         DelSelect()
  1009.     End If
  1010.     s$ = s$ + "<" + tag$ + ">"
  1011.     InsertString(s$)
  1012. End Proc
  1013.  
  1014. '//////////////////////////////////////////////////////////////////
  1015. ' Add Front And End of Paragraph
  1016. Proc AddParaTag(tag$)
  1017.     Dim s$
  1018.     s$ = GetSelected()
  1019.     s$ = "<" + tag$ + ">" + Chr(10) + s$ + "</" + tag$ + ">" + Chr(10)
  1020.     DelSelect()
  1021.     InsertString(s$)
  1022. End Proc
  1023.  
  1024. '//////////////////////////////////////////////////////////////////
  1025. ' Add Font Size
  1026. Proc AddFontSize(size%)
  1027.     Dim s$
  1028.     s$ = GetSelected()
  1029.     s$ = "<FONT SIZE=" + Str$(size) + ">" + s$ + "</FONT>"
  1030.     DelSelect()
  1031.     InsertString(s$)
  1032. End Proc
  1033.  
  1034. Proc AddBaseSize(size%)
  1035.     Dim s$
  1036.     s$ = "<FONT SIZE=" + Str$(size) + ">" + Chr(10)
  1037.     InsertString(s$)
  1038. End Proc
  1039.  
  1040.  
  1041. '//////////////////////////////////////////////////////////////////
  1042. ' Add Font Color
  1043. Proc AddFontColor()
  1044.     Dim s$
  1045.      s$ = GetSelected()
  1046.     s$ = "<FONT" + GetColorString("COLOR") + ">" + s$ + "</FONT>"
  1047.     DelSelect()
  1048.     InsertString(s$)
  1049. End Proc
  1050.  
  1051. '//////////////////////////////////////////////////////////////////
  1052. ' Add Tag
  1053. Proc AddTag(tag$)
  1054.     Dim s$
  1055.     s$ = GetSelected()
  1056.     s$ = "<" + tag$ + ">" + s$ + "</" + tag$ + ">"
  1057.     DelSelect()
  1058.     InsertString(s$)
  1059. End Proc
  1060.  
  1061. '//////////////////////////////////////////////////////////////////
  1062. ' Add Address
  1063. Proc AddAddress()
  1064.     Dim s$
  1065.     s$ = GetSelected()
  1066.     If s$ = "" Then s$ = address$
  1067.     s$ = InputBox("Input a E-Mail address", "", s$)
  1068.     s$ = "<ADDRESS><A HREF=" + Chr(34) + "mailto:" + s$ + Chr(34) + ">" + s$ + "</A></ADDRESS>"
  1069.     DelSelect()
  1070.     InsertString(s$)
  1071. End Proc
  1072.  
  1073. '//////////////////////////////////////////////////////////////////
  1074. ' Add Inline Image
  1075. Proc AddImage()
  1076.     Dim s$
  1077.     s$ = GetOpenFile("*.gif")
  1078.     s$ = "<IMG SRC=" + Chr(34) + s$ + Chr(34) + ">"
  1079.     InsertString(s$)
  1080. End Proc
  1081.  
  1082. Proc AddInline()
  1083.     Dim s$
  1084.     s$ = InputBox("Input a source of a image", "", "")
  1085.     s$ = "<IMG SRC=" + Chr(34) + s$ + Chr(34) + ">"
  1086.     InsertString(s$)
  1087. End Proc
  1088.  
  1089. '//////////////////////////////////////////////////////////////////
  1090. ' Add Comment
  1091. Proc AddCmt()
  1092.     Dim s$
  1093.     s$ = GetSelected()
  1094.     s$ = "<!--" + s$ + "-->"
  1095.     DelSelect()
  1096.     InsertString(s$)
  1097. End Proc
  1098.  
  1099. '//////////////////////////////////////////////////////////////////
  1100. ' Add Reference Tag
  1101. Proc AddRef(ref$)
  1102.     Dim s$
  1103.     s$ = GetSelected()
  1104.     s$ = "<A HREF=" + Chr(34) + ref$ + Chr(34)+ ">" + s$ + "</A>"
  1105.     DelSelect()
  1106.     InsertString(s$)
  1107. End Proc
  1108.  
  1109. Proc AddFrame()
  1110.     Dim s$
  1111.     s$ = GetOpenFile("*.html;*.htm")
  1112.     s$ = "<FRAME SRC=" + Chr(34) + s$ + Chr(34)+ ">"
  1113.     DelSelect()
  1114.     InsertString(s$)
  1115. End Proc
  1116.  
  1117. '//////////////////////////////////////////////////////////////////
  1118. ' In tag situation
  1119.  
  1120. Const V_ALIGNLEFT   = 1
  1121. Const V_ALIGNCENTER = 2
  1122. Const V_ALIGNRIGHT  = 3
  1123. Const V_ALIGNTOP    = 4
  1124. Const V_ALIGNMIDDLE = 5
  1125. Const V_ALIGNBOTTOM = 6
  1126. Const V_ALIGNJUST   = 7
  1127. Const V_BKGNDGIF    = 8
  1128. Const V_BKGNDCOL    = 9
  1129. Const V_TEXTCOL     = 10
  1130. Const V_LINKCOL     = 11
  1131. Const V_VLINKCOL    = 12
  1132. Const V_ALINKCOL    = 13
  1133.  
  1134. Const V_WIDTH  = 101
  1135. Const V_PWIDTH = 102
  1136. Const V_SIZE   = 103
  1137. Const V_NOSHADE= 104
  1138. Const V_COLOR  = 105
  1139.  
  1140. Const V_TYPETEXT = 201
  1141. Const V_TYPEPASS = 202
  1142. Const V_TYPECHECK = 203
  1143. Const V_TYPERADIO = 204
  1144. Const V_TYPEIMAGE = 205
  1145. Const V_TYPEHIDDEN = 206
  1146. Const V_TYPESUBMIT = 207
  1147. Const V_TYPERESET = 208
  1148. Const V_NAME = 209
  1149. Const V_VALUE = 210
  1150. Const V_CHECK = 211
  1151. Const V_SIZE = 212
  1152. Const V_MAXLENGTH = 213
  1153. Const V_MULTIPLE = 214
  1154.  
  1155. Const V_ROWS = 215
  1156. Const V_COLS = 216
  1157. Const V_OFF = 217
  1158. Const V_VIRTUAL = 218
  1159. Const V_PHYSICAL = 219
  1160. Const V_SELECTED = 220
  1161.  
  1162. Const V_BORDER = 251
  1163. Const V_CELLSPACING = 252
  1164. Const V_CELLPADDING = 253
  1165. Const V_VALIGNTOP    = 254
  1166. Const V_VALIGNMIDDLE = 255
  1167. Const V_VALIGNBOTTOM = 256
  1168. Const V_NOWRAP = 257
  1169. Const V_COLSPAN = 258
  1170. Const V_ROWSPAN = 259
  1171.  
  1172. Const V_MARGINHEIGHT = 260
  1173. Const V_MARGINWIDTH = 261
  1174. Const V_SCROLLYES = 262
  1175. Const V_SCROLLNO = 263
  1176. Const V_SCROLLAUTO = 264
  1177. Const V_NORESIZE = 265
  1178.  
  1179. Const V_TYPE_DISC = 300
  1180. Const V_TYPE_CIRCLE = 301
  1181. Const V_TYPE_SQUARE = 302
  1182.  
  1183. Const V_TYPE_A = 311
  1184. Const V_TYPE_SA = 312
  1185. Const V_TYPE_I = 313
  1186. Const V_TYPE_SI = 314
  1187. Const V_TYPE_N = 315
  1188.  
  1189. Const V_VALUENUM = 316
  1190.  
  1191. Proc InTag(sCsr$)
  1192.     Dim hMenuX%, hMenuXAlign%, hMenuXAlign2%, hMenuXType%, hMenuXScroll%
  1193.     hMenuX = NewMenu()
  1194.     sCsr$ = UCase(sCsr$)
  1195.     If Left(sCsr$, 1) = "H" Then
  1196.         Dim nVal%
  1197.         nVal = Val(Mid(sCsr$, 2, 1))
  1198.         If nVal >= 1 And nVal <= 6 Then
  1199.             hMenuXAlign = AddMenuItem(hMenuX, "&Align", 0)
  1200.                 AddMenuItem(hMenuXAlign, "&Left", V_ALIGNLEFT)
  1201.                 AddMenuItem(hMenuXAlign, "&Center", V_ALIGNCENTER)
  1202.                 AddMenuItem(hMenuXAlign, "&Right", V_ALIGNRIGHT)
  1203.         Else If sCsr$ = "HR" Then
  1204.             hMenuXAlign = AddMenuItem(hMenuX, "&Align", 0)
  1205.                 AddMenuItem(hMenuXAlign, "&Left", V_ALIGNLEFT)
  1206.                 AddMenuItem(hMenuXAlign, "&Center", V_ALIGNCENTER)
  1207.                 AddMenuItem(hMenuXAlign, "&Right", V_ALIGNRIGHT)
  1208.             AddMenuItem(hMenuX, "&Width(pixel)...", V_WIDTH)
  1209.             AddMenuItem(hMenuX, "Width(&percentage)...", V_PWIDTH)
  1210.             AddMenuItem(hMenuX, "Si&ze...", V_SIZE)
  1211.             AddMenuItem(hMenuX, "&No Shade...", V_NOSHADE)
  1212.         End If
  1213.     Else
  1214.         If      sCsr$ = "DIV" Then
  1215.             hMenuXAlign = AddMenuItem(hMenuX, "&Align", 0)
  1216.                 AddMenuItem(hMenuXAlign, "&Left", V_ALIGNLEFT)
  1217.                 AddMenuItem(hMenuXAlign, "&Center", V_ALIGNCENTER)
  1218.                 AddMenuItem(hMenuXAlign, "&Right", V_ALIGNRIGHT)
  1219.                 AddMenuItem(hMenuXAlign, "&Jusify", V_ALIGNJUST)
  1220.         Else If sCsr$ = "PRE" Then
  1221.             AddMenuItem(hMenuX, "&Width...", V_WIDTH)
  1222.         Else If sCsr$ = "IMG" Then
  1223.             hMenuXAlign = AddMenuItem(hMenuX, "&Align", 0)
  1224.                 AddMenuItem(hMenuXAlign, "&Top", V_ALIGNTOP)
  1225.                 AddMenuItem(hMenuXAlign, "&Middle", V_ALIGNMIDDLE)
  1226.                 AddMenuItem(hMenuXAlign, "&Bottom", V_ALIGNBOTTOM)
  1227.                 If NETSCAPE = True Then
  1228.                     AddMenuItem(hMenuXAlign, "&Left", V_ALIGNLEFT)
  1229.                     AddMenuItem(hMenuXAlign, "&Center", V_ALIGNCENTER)
  1230.                     AddMenuItem(hMenuXAlign, "&Right", V_ALIGNRIGHT)
  1231.                 End If
  1232.         Else If sCsr$ = "BODY" Then
  1233.             AddMenuItem(hMenuX, "Background &GIF...", V_BKGNDGIF)
  1234.             AddMenuItem(hMenuX, "Background &Color...", V_BKGNDCOL)
  1235.             AddMenuItem(hMenuX, "&Text Color...", V_TEXTCOL)
  1236.             AddMenuItem(hMenuX, "&Link Color...", V_LINKCOL)
  1237.             If NETSCAPE = True Then
  1238.                 AddMenuItem(hMenuX, "&Visited Link Color...", V_VLINKCOL)
  1239.                 AddMenuItem(hMenuX, "&Active Link Color...", V_ALINKCOL)
  1240.             End If
  1241.         Else If sCsr$ = "FONT" Then
  1242.             If NETSCAPE = True Then
  1243.                 AddMenuItem(hMenuX, "&Color...", V_COLOR)
  1244.                 AddMenuItem(hMenuX, "Si&ze...", V_SIZE)
  1245.             End If
  1246.         Else If sCsr$ = "FORM" Then
  1247.         Else If sCsr$ = "INPUT" Then
  1248.             hMenuXType = AddMenuItem(hMenuX, "&Type...", 0)
  1249.                 AddMenuItem(hMenuXType, "&Text Box", V_TYPETEXT)
  1250.                 AddMenuItem(hMenuXType, "&Password", V_TYPEPASS)
  1251.                 AddMenuItem(hMenuXType, "&Check Box", V_TYPECHECK)
  1252.                 AddMenuItem(hMenuXType, "&Radio Button", V_TYPERADIO)
  1253.                 AddMenuItem(hMenuXType, "&Image", V_TYPEIMAGE)
  1254.                 AddMenuItem(hMenuXType, "&Hidden", V_TYPEHIDDEN)
  1255.                 AddMenuItem(hMenuXType, "&Submit", V_TYPESUBMIT)
  1256.                 AddMenuItem(hMenuXType, "R&eset", V_TYPERESET)
  1257.             AddMenuItem(hMenuX, "&Name...", V_NAME)
  1258.             AddMenuItem(hMenuX, "&Value...", V_VALUE)
  1259.             AddMenuItem(hMenuX, "&Check(CHECKBOX/RADIO)...", V_CHECK)
  1260.             AddMenuItem(hMenuX, "&Visible Length(TEXT/PASSWORD)...", V_SIZE)
  1261.             AddMenuItem(hMenuX, "&Max Length(TEXT/PASSWORD)...", V_MAXLENGTH)
  1262.         Else If sCsr$ = "SELECT" Then
  1263.             AddMenuItem(hMenuX, "&Name...", V_NAME)
  1264.             AddMenuItem(hMenuX, "&Visible Height...", V_SIZE)
  1265.             AddMenuItem(hMenuX, "&Multiple Select...", V_MULTIPLE)
  1266.         Else If sCsr$ = "TEXTAREA" Then
  1267.             AddMenuItem(hMenuX, "&Name...", V_NAME)
  1268.             AddMenuItem(hMenuX, "&Rows...", V_ROWS)
  1269.             AddMenuItem(hMenuX, "&Columns...", V_COLS)
  1270.             If NETSCAPE = True Then
  1271.                 hMenuXType = AddMenuItem(hMenuX, "&Word Wrap...", 0)
  1272.                     AddMenuItem(hMenuXType, "O&ff", V_OFF)
  1273.                     AddMenuItem(hMenuXType, "&Virtual", V_VIRTUAL)
  1274.                     AddMenuItem(hMenuXType, "&Physical", V_PHYSICAL)
  1275.             End If
  1276.         Else If sCsr$ = "OPTION" Then
  1277.             AddMenuItem(hMenuX, "&Selected...", V_SELECTED)
  1278.         Else If sCsr$ = "TABLE" Then
  1279.             AddMenuItem(hMenuX, "&Border...", V_BORDER)
  1280.             AddMenuItem(hMenuX, "Cell &Spacing...", V_CELLSPACING)
  1281.             AddMenuItem(hMenuX, "Cell Pa&dding...", V_CELLPADDING)
  1282.             AddMenuItem(hMenuX, "&Width(pixel)...", V_WIDTH)
  1283.             AddMenuItem(hMenuX, "Width(&percentage)...", V_PWIDTH)
  1284.         Else If sCsr$ = "TR" Or sCsr$ = "TD" Or sCsr$ = "TH" Then
  1285.             hMenuXAlign = AddMenuItem(hMenuX, "&Align", 0)
  1286.                 AddMenuItem(hMenuXAlign, "&Left", V_ALIGNLEFT)
  1287.                 AddMenuItem(hMenuXAlign, "&Center", V_ALIGNCENTER)
  1288.                 AddMenuItem(hMenuXAlign, "&Right", V_ALIGNRIGHT)
  1289.             hMenuXAlign2 = AddMenuItem(hMenuX, "&Vertical Align", 0)
  1290.                 AddMenuItem(hMenuXAlign2, "&Top", V_VALIGNTOP)
  1291.                 AddMenuItem(hMenuXAlign2, "&Middle", V_VALIGNMIDDLE)
  1292.                 AddMenuItem(hMenuXAlign2, "&Bottom", V_VALIGNBOTTOM)
  1293.             If sCsr$ = "TD" Or sCsr$ = "TH" Then
  1294.                 AddMenuItem(hMenuX, "No &Wrap...", V_NOWRAP)
  1295.                 AddMenuItem(hMenuX, "C&olumn Span...", V_COLSPAN)
  1296.                 AddMenuItem(hMenuX, "Row &Span...", V_ROWSPAN)
  1297.                 AddMenuItem(hMenuX, "&Width(pixel)...", V_WIDTH)
  1298.                 AddMenuItem(hMenuX, "Width(&percentage)...", V_PWIDTH)
  1299.             End If
  1300.         Else If sCsr$ = "CAPTION" Then
  1301.             hMenuXAlign = AddMenuItem(hMenuX, "&Align", 0)
  1302.                 AddMenuItem(hMenuXAlign, "&Top", V_ALIGNTOP)
  1303.                 AddMenuItem(hMenuXAlign, "&Bottom", V_ALIGNBOTTOM)
  1304.         Else If sCsr$ = "P" Then
  1305.             hMenuXAlign = AddMenuItem(hMenuX, "&Align", 0)
  1306.                 AddMenuItem(hMenuXAlign, "&Left", V_ALIGNLEFT)
  1307.                 AddMenuItem(hMenuXAlign, "&Center", V_ALIGNCENTER)
  1308.                 AddMenuItem(hMenuXAlign, "&Right", V_ALIGNRIGHT)
  1309.         Else If sCsr$ = "UL" Then
  1310.             hMenuXType = AddMenuItem(hMenuX, "&Type", 0)
  1311.                 AddMenuItem(hMenuXType, "&Disc", V_TYPE_DISC)
  1312.                 AddMenuItem(hMenuXType, "&Circle", V_TYPE_CIRCLE)
  1313.                 AddMenuItem(hMenuXType, "&Square", V_TYPE_SQUARE)
  1314.         Else If sCsr$ = "OL" Then
  1315.             hMenuXType = AddMenuItem(hMenuX, "&Type", 0)
  1316.                 AddMenuItem(hMenuXType, "&A", V_TYPE_A)
  1317.                 AddMenuItem(hMenuXType, "&a", V_TYPE_SA)
  1318.                 AddMenuItem(hMenuXType, "&I", V_TYPE_I)
  1319.                 AddMenuItem(hMenuXType, "&i", V_TYPE_SI)
  1320.                 AddMenuItem(hMenuXType, "&1", V_TYPE_N)
  1321.             AddMenuItem(hMenuX, "&Beginnig Number...", V_VALUENUM)
  1322.         Else If sCsr$ = "FRAME" Then
  1323.             AddMenuItem(hMenuX, "Margin Height...", V_MARGINHEIGHT)
  1324.             AddMenuItem(hMenuX, "Margin Width...", V_MARGINWIDTH)
  1325.             AddMenuItem(hMenuX, "Frame &Name...", V_NAME)
  1326.             hMenuXScroll = AddMenuItem(hMenuX, "&Scroll Bar", 0)
  1327.                 AddMenuItem(hMenuXScroll, "Yes", V_SCROLLYES)
  1328.                 AddMenuItem(hMenuXScroll, "No", V_SCROLLNO)
  1329.                 AddMenuItem(hMenuXScroll, "Auto", V_SCROLLAUTO)
  1330.             AddMenuItem(hMenuX, "N&ot Resizable...", V_NORESIZE)
  1331.         Else If sCsr$ = "FRAMESET" Then
  1332.             AddMenuItem(hMenuX, "&Row Heights...", V_ROWS)
  1333.             AddMenuItem(hMenuX, "&Column Widths...", V_COLS)
  1334.         Else If sCsr$ = "LI" Then
  1335.         End If
  1336.     End If
  1337.  
  1338.     Dim nRC%
  1339.     Dim sAdd$
  1340.     nRC = DoMenu(hMenuX)
  1341.     DiscardMenu(hMenuX)
  1342.  
  1343.     Select Case nRC
  1344.     Case -1                ' Canceled
  1345.         Return
  1346.     Case V_ALIGNLEFT
  1347.         sAdd$ = " ALIGN=LEFT"
  1348.     Case V_ALIGNCENTER
  1349.         sAdd$ = " ALIGN=CENTER"
  1350.     Case V_ALIGNRIGHT
  1351.         sAdd$ = " ALIGN=RIGHT"
  1352.     Case V_ALIGNTOP
  1353.         sAdd$ = " ALIGN=TOP"
  1354.     Case V_ALIGNMIDDLE
  1355.         sAdd$ = " ALIGN=MIDDLE"
  1356.     Case V_ALIGNBOTTOM
  1357.         sAdd$ = " ALIGN=BOTTOM"
  1358.     Case V_ALIGNJUST
  1359.         sAdd$ = " ALIGN=JUSTIFY"
  1360.     Case V_TYPE_DISC
  1361.         sAdd$ = SetType("DISC")
  1362.     Case V_TYPE_CIRCLE
  1363.         sAdd$ = SetType("CIRCLE")
  1364.     Case V_TYPE_SQUARE
  1365.         sAdd$ = SetType("SQUARE")
  1366.     Case V_TYPE_A
  1367.         sAdd$ = SetType("A")
  1368.     Case V_TYPE_SA
  1369.         sAdd$ = SetType("a")
  1370.     Case V_TYPE_I
  1371.         sAdd$ = SetType("I")
  1372.     Case V_TYPE_SI
  1373.         sAdd$ = SetType("i")
  1374.     Case V_TYPE_N
  1375.         sAdd$ = SetType("1")
  1376.     Case V_VALUENUM
  1377.         sAdd$ = GetSizeString("VALUE")
  1378.     Case V_BKGNDGIF
  1379.         sAdd$ = GetOpenFileString("*.gif", "BACKGROUND")
  1380.     Case V_BKGNDCOL
  1381.         sAdd$ = GetColorString("BGCOLOR")
  1382.     Case V_COLOR
  1383.         sAdd$ = GetColorString("COLOR")
  1384.     Case V_TEXTCOL
  1385.         sAdd$ = GetColorString("TEXT")
  1386.     Case V_LINKCOL
  1387.         sAdd$ = GetColorString("LINK")
  1388.     Case V_VLINKCOL
  1389.         sAdd$ = GetColorString("VLINK")
  1390.     Case V_ALINKCOL
  1391.         sAdd$ = GetColorString("ALINK")
  1392.     Case V_WIDTH
  1393.         sAdd$ = GetSizeString("WIDTH")
  1394.     Case V_PWIDTH
  1395.         sAdd$ = GetSizeString("WIDTH")
  1396.         If Right(sAdd$, 1) <> "=" Then sAdd$ = sAdd$ + "%"
  1397.     Case V_SIZE
  1398.         sAdd$ = GetSizeString("SIZE")
  1399.     Case V_NOSHADE
  1400.         sAdd$ = " NOSHADE"
  1401.     Case V_TYPETEXT
  1402.         sAdd$ = " TYPE=" + Chr(34) + "TEXT" + Chr(34)
  1403.     Case V_TYPEPASS
  1404.         sAdd$ = " TYPE=" + Chr(34) + "PASSWORD" + Chr(34)
  1405.     Case V_TYPECHECK
  1406.         sAdd$ = " TYPE=" + Chr(34) + "CHECKBOX" + Chr(34)
  1407.     Case V_TYPERADIO
  1408.         sAdd$ = " TYPE=" + Chr(34) + "RADIO" + Chr(34)
  1409.     Case V_TYPEIMAGE
  1410.         sAdd$ = " TYPE=" + Chr(34) + "IMAGE" + Chr(34)
  1411.     Case V_TYPEHIDDEN
  1412.         sAdd$ = " TYPE=" + Chr(34) + "HIDDEN" + Chr(34)
  1413.     Case V_TYPESUBMIT
  1414.         sAdd$ = " TYPE=" + Chr(34) + "SUBMIT" + Chr(34)
  1415.     Case V_TYPERESET
  1416.         sAdd$ = " TYPE=" + Chr(34) + "RESET" + Chr(34)
  1417.     Case V_NAME
  1418.         sAdd$ = GetNameString("NAME")
  1419.     Case V_VALUE
  1420.         sAdd$ = GetNameString("VALUE")
  1421.     Case V_CHECK
  1422.         sAdd$ = " CHECKED"
  1423.     Case V_MAXLENGTH
  1424.         sAdd$ = GetSizeString("MAXLENGTH")
  1425.     Case V_MULTIPLE
  1426.         sAdd$ = " MULTIPLE"
  1427.     Case V_ROWS
  1428.         sAdd$ = GetSizeString("ROWS")
  1429.     Case V_COLS
  1430.         sAdd$ = GetSizeString("COLS")
  1431.     Case V_OFF
  1432.         sAdd$ = " WRAP=OFF"
  1433.     Case V_VIRTUAL
  1434.         sAdd$ = " WRAP=VIRTUAL"
  1435.     Case V_PHYSICAL
  1436.         sAdd$ = " WRAP=PHYSICAL"
  1437.     Case V_SELECTED
  1438.         sAdd$ = " SELECTED"
  1439.     Case V_BORDER
  1440.         sAdd$ = " BORDER"
  1441.     Case V_CELLSPACING
  1442.         sAdd$ = GetSizeString("CELLSPACING")
  1443.     Case V_CELLPADDING
  1444.         sAdd$ = GetSizeString("CELLPADDING")
  1445.     Case V_VALIGNTOP
  1446.         sAdd$ = " VALIGN=TOP"
  1447.     Case V_VALIGNMIDDLE
  1448.         sAdd$ = " VALIGN=MIDDLE"
  1449.     Case V_VALIGNBOTTOM
  1450.         sAdd$ = " VALIGN=BOTTOM"
  1451.     Case V_NOWRAP
  1452.         sAdd$ = " NOWRAP"
  1453.     Case V_COLSPAN
  1454.         sAdd$ = GetSizeString("COLSPAN")
  1455.     Case V_ROWSPAN
  1456.         sAdd$ = GetSizeString("ROWSPAN")
  1457.     Case V_MARGINHEIGHT
  1458.         sAdd$ = GetSizeString("MARGINHEIGHT")
  1459.     Case V_MARGINWIDTH
  1460.         sAdd$ = GetSizeString("MARGINWIDTH")
  1461.     Case V_SCROLLYES
  1462.         sAdd$ = " SCROLLING=" + Chr(&H22) + "YES" + Chr(&H22)
  1463.     Case V_SCROLLNO
  1464.         sAdd$ = " SCROLLING=" + Chr(&H22) + "NO" + Chr(&H22)
  1465.     Case V_SCROLLAUTO
  1466.         sAdd$ = " SCROLLING=" + Chr(&H22) + "AUTO" + Chr(&H22)
  1467.     Case V_NORESIZE
  1468.         sAdd$ = " NORESIZE"
  1469.     End Select
  1470.  
  1471.     If sAdd$ = "" Then
  1472.         Return
  1473.     End If
  1474.  
  1475.     If Right(sAdd$, 1) = "=" Then
  1476.         If MsgBox("Are you sure to set this default?", "", MB_ICONQUESTION | MB_YESNO) = IDNO Then
  1477.             Return
  1478.         End If
  1479.     End If
  1480.  
  1481.     Dim l$
  1482.     l$ = Left(sAdd$, InStr(sAdd$, "="))
  1483.     If l$ = "" Then
  1484.         l$ = sAdd$
  1485.     End If
  1486.  
  1487.     Dim nC%
  1488.     Dim sSel$
  1489.     Silent()
  1490.     Command("SelectBegin")
  1491.     nC = GetCurrentChar()
  1492.     While nC <> Asc(">")
  1493.         Command("CsrRight")
  1494.         nC = GetCurrentChar()
  1495.     Wend
  1496.  
  1497.     sSel$ = GetSelected()
  1498.     NoSilent()
  1499.     Dim nBeg%, nEnd%
  1500.     nBeg% = InStr(sSel$, l$)
  1501.     If Right(sAdd$, 1) = "=" Then
  1502.         sAdd$ = ""
  1503.     Else If sAdd$ = l$ Then
  1504.         If MsgBox("Do you want to set this?(Yes:set / No:reset)", "", MB_YESNO | MB_ICONQUESTION) = IDNO Then
  1505.             sAdd$ = ""
  1506.         End If
  1507.     End If
  1508.     If nBeg Then
  1509.         nEnd = nBeg
  1510.         Dim sTmp$
  1511.         While True
  1512.             nEnd = nEnd + 1
  1513.             sTmp$ = Mid(sSel$, nEnd, 1)
  1514.             If sTmp$ = " " Or sTmp$ = Chr(&H09) Or sTmp$ = ">" Or sTmp$ = "" Then
  1515.                 Exit
  1516.             End If
  1517.         Wend
  1518.         sAdd$ = Left(sSel$, nBeg - 1) + sAdd$ + Mid(sSel$, nEnd, Len(sSel$))
  1519.         DelSelect()
  1520.         InsertString(sAdd$)
  1521.     Else
  1522.         SelectCancel()
  1523.         InsertString(sAdd$)
  1524.     End If
  1525.     Refresh()
  1526. End Proc
  1527.  
  1528. '/////////////////////////////////////////////////////////////////////
  1529. ' Input Library
  1530. Proc SetType(t$) As String
  1531.     Return " TYPE=" + t$
  1532. End Proc
  1533.  
  1534. Proc GetSizeString(size$) As String
  1535.     Dim z$
  1536.     z$ = InputBox("Input value", "", "")
  1537.     z$ = " " + size$ + "=" + z$
  1538.     Return z$
  1539. End Proc
  1540.  
  1541. Proc GetNameString(name$) As String
  1542.     Dim n$
  1543.     n$ = InputBox("Input string", "", "")
  1544.     If n$ <> "" Then
  1545.         n$ = " " + name$ + "=" + Chr(34) + n$ + Chr(34)
  1546.     Else
  1547.         n$ = " " + name$ + "="
  1548.     End If
  1549.     Return n$
  1550. End Proc
  1551.  
  1552. Proc GetColorString(col$) As String
  1553.     Dim c$
  1554.     Static lpCol%(16)
  1555.     Dim cc%(9)
  1556.     cc(1) = 36
  1557.     cc(2) = .hMainWnd
  1558.     cc(3) = 0
  1559.     cc(4) = 0
  1560.     cc(5) = lpCol
  1561.     cc(6) = 0
  1562.     cc(7) = 0
  1563.     cc(8) = 0
  1564.     cc(9) = 0
  1565.     If ChooseColor(cc) = True Then
  1566.         Dim r%, g%, b%
  1567.         r = cc(4) & &HFF
  1568.         g = (cc(4) >> 8) & &HFF
  1569.         b = (cc(4) >> 16) & &HFF
  1570.         c$ = Space$(10)
  1571.         wsprintf(c$, "%02X%02X%02X", r, g, b)
  1572.         c$ = InputBox("Adjust RGB value", "", c$)
  1573.         If c$ <> "" Then
  1574.             c$ = " " + col$ + "=" + Chr(34) + "#" + c$ + Chr(34)
  1575.         Else
  1576.             c$ = " " + col$ + "="
  1577.         End If
  1578.     End If
  1579.     Return c$
  1580. End Proc
  1581.  
  1582. Proc GetOpenFileString(filt$, item$)
  1583.     Dim o$
  1584.     o$ = GetOpenFile(filt$)
  1585.     o$ = " " + item$ + "=" + Chr(34) + o$ + Chr(34)
  1586.     Return o$
  1587. End Proc
  1588.