home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / HTML_Viewe1791769102004.psc / HtmlPhase / Form1.frm (.txt)
Encoding:
Visual Basic Form  |  2001-09-10  |  11.8 KB  |  353 lines

  1. VERSION 5.00
  2. Begin VB.Form Form1 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "Form1"
  5.    ClientHeight    =   7350
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   10590
  9.    LinkTopic       =   "Form1"
  10.    MaxButton       =   0   'False
  11.    MinButton       =   0   'False
  12.    ScaleHeight     =   490
  13.    ScaleMode       =   3  'Pixel
  14.    ScaleWidth      =   706
  15.    ShowInTaskbar   =   0   'False
  16.    StartUpPosition =   2  'CenterScreen
  17.    Begin VB.CommandButton Command2 
  18.       Caption         =   "Exit"
  19.       Height          =   330
  20.       Left            =   8325
  21.       TabIndex        =   8
  22.       Top             =   6885
  23.       Width           =   1080
  24.    End
  25.    Begin VB.CommandButton cmdCodeView 
  26.       Caption         =   "View Code"
  27.       Height          =   330
  28.       Left            =   7125
  29.       TabIndex        =   7
  30.       Top             =   6900
  31.       Width           =   1080
  32.    End
  33.    Begin VB.TextBox txtCode 
  34.       BeginProperty Font 
  35.          Name            =   "Lucida Console"
  36.          Size            =   9.75
  37.          Charset         =   0
  38.          Weight          =   400
  39.          Underline       =   0   'False
  40.          Italic          =   0   'False
  41.          Strikethrough   =   0   'False
  42.       EndProperty
  43.       Height          =   810
  44.       Left            =   0
  45.       MultiLine       =   -1  'True
  46.       ScrollBars      =   3  'Both
  47.       TabIndex        =   6
  48.       Top             =   0
  49.       Width           =   1605
  50.    End
  51.    Begin VB.TextBox Text1 
  52.       Height          =   300
  53.       Left            =   585
  54.       TabIndex        =   5
  55.       Top             =   6915
  56.       Width           =   5655
  57.    End
  58.    Begin VB.PictureBox PicImg 
  59.       AutoRedraw      =   -1  'True
  60.       AutoSize        =   -1  'True
  61.       BackColor       =   &H00FFFFFF&
  62.       BorderStyle     =   0  'None
  63.       Height          =   495
  64.       Left            =   9015
  65.       ScaleHeight     =   33
  66.       ScaleMode       =   3  'Pixel
  67.       ScaleWidth      =   47
  68.       TabIndex        =   3
  69.       Top             =   7560
  70.       Visible         =   0   'False
  71.       Width           =   705
  72.    End
  73.    Begin VB.PictureBox PicTile 
  74.       AutoRedraw      =   -1  'True
  75.       AutoSize        =   -1  'True
  76.       BackColor       =   &H00FFFFFF&
  77.       BorderStyle     =   0  'None
  78.       Height          =   495
  79.       Left            =   9585
  80.       ScaleHeight     =   33
  81.       ScaleMode       =   3  'Pixel
  82.       ScaleWidth      =   47
  83.       TabIndex        =   2
  84.       Top             =   60
  85.       Visible         =   0   'False
  86.       Width           =   705
  87.    End
  88.    Begin VB.CommandButton Command1 
  89.       Caption         =   "GO"
  90.       Height          =   330
  91.       Left            =   6360
  92.       TabIndex        =   1
  93.       Top             =   6915
  94.       Width           =   645
  95.    End
  96.    Begin VB.PictureBox RenderDC 
  97.       AutoRedraw      =   -1  'True
  98.       Height          =   6795
  99.       Left            =   0
  100.       ScaleHeight     =   449
  101.       ScaleMode       =   3  'Pixel
  102.       ScaleWidth      =   701
  103.       TabIndex        =   0
  104.       Top             =   0
  105.       Width           =   10575
  106.    End
  107.    Begin VB.Label Label1 
  108.       AutoSize        =   -1  'True
  109.       Caption         =   "Page:"
  110.       Height          =   195
  111.       Left            =   60
  112.       TabIndex        =   4
  113.       Top             =   6945
  114.       Width           =   420
  115.    End
  116. Attribute VB_Name = "Form1"
  117. Attribute VB_GlobalNameSpace = False
  118. Attribute VB_Creatable = False
  119. Attribute VB_PredeclaredId = True
  120. Attribute VB_Exposed = False
  121. Private Type HtmlBody
  122.     BodyBackColor As Long
  123.     BodyTextColor As Long
  124.     BkGoundImg As String
  125.     tMarginSize As Integer
  126. End Type
  127. Dim FileName As String
  128. Dim Htm_Body As HtmlBody
  129. Dim nRefreshTime As Integer
  130. Private Sub HtmlDocLoadPage(FileName As String)
  131. Dim HtmData As String
  132.     If FindFile(FileName) = False Then Exit Sub
  133.     HtmData = OpenFile(FileName)
  134.     txtCode.Text = HtmData
  135.     PhaseBody HtmData ' Get the main body data
  136.     SetupHtmlDOC RenderDC, Htm_Body.tMarginSize
  137.     SetTitle Form1, PhasePageTitle(HtmData)
  138.     PhaseHtml HtmData, RenderDC
  139. End Sub
  140. Private Sub TileBkImage()
  141. Dim i As Long, J As Long
  142.     PicTile.Picture = LoadPicture(Htm_Body.BkGoundImg)
  143.     For i = 0 To (RenderDC.ScaleWidth / PicTile.Width)
  144.         For J = 0 To (RenderDC.ScaleHeight / PicTile.Height)
  145.         BitBlt RenderDC.hDC, PicTile.Width * i, PicTile.Height * J, PicTile.Width, PicTile.Height, PicTile.hDC, 0, 0, vbSrcCopy
  146.         Next
  147.     Next
  148.     RenderDC.Refresh
  149.     i = 0
  150.     J = 0
  151. End Sub
  152. Sub GetImgProp(lzText As String)
  153. Dim lFilename As String
  154. Dim mHeight As Integer, mWidth As Integer
  155.     lFilename = FixPath(StripHomePath(FileName)) & FixWebSlash(RemoveJunk(GetTagData1(lzText, "src=", Chr(34))))
  156.     mHeight = Val(RemoveJunk(GetTagData1(lzText, "height=", Chr(34))))
  157.     mWidth = Val(RemoveJunk(GetTagData1(lzText, "width=", Chr(34))))
  158.     If Not FindFile(lFilename) Then Exit Sub
  159.     PicImg.Picture = LoadPicture(lFilename)
  160.     AddImage RenderDC, PicImg, mWidth, mHeight
  161. End Sub
  162. Private Sub PhaseHtml(lzStr As String, PicDc As PictureBox)
  163. Dim StrB As String, TheTag As String, sHtml As String, NextTag As String
  164. Dim ipos As Long, lPos As Long, nPos As Long
  165. Dim CanRefresh As Boolean, nPageToLoad As String
  166.     StrB = lzStr
  167.     StrB = Replace(StrB, vbCrLf, "")
  168.     lPos = 1
  169.     Do
  170.         DoEvents
  171.         ipos = InStr(lPos, StrB, "<", vbBinaryCompare)
  172.         If ipos = 0 Then Exit Do
  173.         
  174.         sHtml = LTrim(RemoveJunk(Mid(StrB, lPos + 1, ipos - lPos))) ' Html Text
  175.         
  176.         If Len(sHtml) > 0 Then
  177.             DisplayText FormatSpecialTags(sHtml), PicDc
  178.         End If
  179.         lPos = InStr(ipos, StrB, ">", vbBinaryCompare)
  180.         If lPos = 0 Then Exit Do
  181.         
  182.         TheTag = LCase(Mid(StrB, ipos, lPos - ipos + 1))
  183.         
  184.         Select Case TheTag
  185.             Case "<br>", "<p>", "</p>"
  186.                 AddNewLine PicDc
  187.             Case "<hr>"
  188.                 AddNewLine PicDc
  189.                 AddHozLine PicDc
  190.             Case "<b>"
  191.                 FormatTextStyle PicDc, mBold, True
  192.             Case "</b>"
  193.                 FormatTextStyle PicDc, mBold, False
  194.             Case "<i>"
  195.                 FormatTextStyle PicDc, mItalic, True
  196.             Case "</i>"
  197.                 FormatTextStyle PicDc, mItalic, False
  198.             Case "<u>"
  199.                 FormatTextStyle PicDc, mUnderline, True
  200.             Case "</u>"
  201.                 FormatTextStyle PicDc, mUnderline, False
  202.             Case "</div>"
  203.                 tHtmlDoc.AlignOption = mleft
  204.         End Select
  205.         
  206.         nPos = InStr(1, TheTag, Chr(32), vbBinaryCompare)
  207.         
  208.         If nPos > 0 Then
  209.             NextTag = Trim(Mid(TheTag, 1, nPos))
  210.             
  211.             Select Case NextTag
  212.                 Case "<font"
  213.                     PhaseFonts TheTag
  214.                 Case "<img"
  215.                     GetImgProp TheTag
  216.                 Case "<meta"
  217.                     Select Case LCase(RemoveJunk(GetTagData1(TheTag, "http-equiv=", Chr(34))))
  218.                         Case "refresh"
  219.                             CanRefresh = True
  220.                             nRefreshTime = Val(RemoveJunk(GetTagData1(TheTag, "content=", Chr(34))))
  221.                             FileName = FixPath(CurDir(FileName)) & RemoveJunk(GetTagData1(TheTag, "URL=", Chr(34)))
  222.                         Case Else
  223.                             CanRefresh = False
  224.                     End Select
  225.                     
  226.                 Case "<div"
  227.                     Select Case LCase(RemoveJunk(GetTagData1(TheTag, "align=", Chr(34))))
  228.                         Case "left"
  229.                             tHtmlDoc.AlignOption = mleft
  230.                         Case "center"
  231.                             tHtmlDoc.AlignOption = mCenter
  232.                         Case "right"
  233.                             tHtmlDoc.AlignOption = mRight
  234.                     End Select
  235.             End Select
  236.         End If
  237.     Loop
  238.     nPos = 0
  239.     NextTag = ""
  240.     StrB = ""
  241.     sHtml = ""
  242.     If CanRefresh Then
  243.         Sleep RefreshInterval * nRefreshTime
  244.         HtmlDocLoadPage FileName
  245.     End If
  246.                         
  247. End Sub
  248. Sub PhaseBody(lzText As String)
  249. Dim lPos As Long, hpos As Long
  250. Dim sBody As String, sTemp As String, StrA As String, sPath As String
  251. Dim UseBackGoundImg As Boolean
  252.     sBody = lzText
  253.     sBody = Replace(sBody, "<body", "<BODY")
  254.     sBody = Replace(sBody, "<font", "<FONT")
  255.     lPos = InStr(1, sBody, "<BODY", vbTextCompare)
  256.     hpos = InStr(lPos + 1, sBody, ">", vbBinaryCompare)
  257.     If (lPos > 0) And (hpos > 0) Then
  258.         sTemp = Mid(sBody, lPos + 5, hpos - lPos - 4)
  259.         ' phase out the rest of the body and get background and text color properties
  260.         StrA = RemoveJunk(GetTagData1(sTemp, "bgcolor=", Chr(34))) ' Get page bk colour
  261.         Htm_Body.BodyBackColor = HexToLong(StrA) ' Convert hex color to rgb and store it
  262.         StrA = ""
  263.         
  264.         StrA = RemoveJunk(GetTagData1(sTemp, "text=", Chr(34))) ' extract text color
  265.         Htm_Body.BodyTextColor = HexToLong(StrA) ' Convert hex color to rgb and store it
  266.         StrA = ""
  267.         
  268.         StrA = RemoveJunk(GetTagData1(sTemp, "leftmargin=", Chr(34)))
  269.         Htm_Body.tMarginSize = Val(StrA)
  270.         StrA = ""
  271.         
  272.         StrA = RemoveJunk(GetTagData1(sTemp, "background=", Chr(34))) ' Get the bk image
  273.         
  274.         If Len(StrA) = 0 Then
  275.             UseBackGoundImg = False
  276.         End If
  277.         
  278.         Htm_Body.BkGoundImg = FixPath(StripHomePath(FileName)) & FixWebSlash(StrA)
  279.         If Len(StrA) = 0 Or (FindFile(Htm_Body.BkGoundImg) = False) Then
  280.             UseBackGoundImg = False
  281.         Else
  282.             UseBackGoundImg = True
  283.         End If
  284.         
  285.         lPos = 0
  286.         hpos = 0
  287.         sTemp = ""
  288.         sPath = ""
  289.         sBody = ""
  290.     End If
  291.     If UseBackGoundImg Then
  292.         TileBkImage
  293.     Else
  294.         RenderDC.BackColor = Htm_Body.BodyBackColor
  295.     End If
  296.     XPos = Htm_Body.tMarginSize
  297.     RenderDC.ForeColor = Htm_Body.BodyTextColor
  298.     ipos = 0
  299.     hpos = 0
  300.     sTemp = ""
  301.     StrA = ""
  302.     sPath = ""
  303.     sBody = ""
  304. End Sub
  305. Function PhasePageTitle(lzData As String) As String
  306. Dim ipos As Integer
  307. Dim lPos As Integer
  308. Dim StrTemp As String
  309.     ipos = InStr(1, lzData, "<title>", vbTextCompare)
  310.     lPos = InStr(ipos + 1, lzData, "</title>", vbTextCompare)
  311.     If (ipos > 0) And (lPos > 0) Then
  312.         StrTemp = Mid(lzData, ipos, lPos - 7)
  313.         lzData = Replace(lzData, StrTemp, "")
  314.         PhasePageTitle = GetTagData1(StrTemp, "<title>", "</title>")
  315.     End If
  316.     ipos = 0
  317.     lPos = 0
  318.     StrTemp = ""
  319. End Function
  320. Private Sub cmdCodeView_Click()
  321. Dim ViewCode As Boolean
  322. Dim sData As String
  323.     ViewCode = Not ViewCode
  324.     If cmdCodeView.Caption = "View Code" Then
  325.         cmdCodeView.Caption = "Hide Code"
  326.         ViewCode = True
  327.     Else
  328.         cmdCodeView.Caption = "View Code"
  329.         ViewCode = False
  330.     End If
  331.     RenderDC.Visible = Not ViewCode
  332.     txtCode.Visible = ViewCode
  333.     sData = txtCode.Text
  334.     PhaseBody sData ' Get the main body data
  335.     SetupHtmlDOC RenderDC, Htm_Body.tMarginSize
  336.     SetTitle Form1, PhasePageTitle(sData)
  337.     PhaseHtml sData, RenderDC
  338. End Sub
  339. Private Sub Command1_Click()
  340.     FileName = Text1
  341.     HtmlDocLoadPage Text1.Text
  342. End Sub
  343. Private Sub Command2_Click()
  344.     End
  345. End Sub
  346. Private Sub Form_Load()
  347. Dim i As Integer
  348.     Text1.Text = App.Path & "\index.html"
  349.     txtCode.Width = (RenderDC.Width - txtCode.Left)
  350.     txtCode.Height = (RenderDC.Height - txtCode.Top)
  351.     txtCode.Visible = False
  352. End Sub
  353.