cClosedPages.cls
上传用户:davilee3
上传日期:2015-04-22
资源大小:986k
文件大小:5k
源码类别:

浏览器

开发平台:

Visual Basic

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "cClosedPages"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. '关闭的页面
  15. Option Explicit
  16. 'Private Type mTypPage
  17. '    Title As String
  18. '    Url As String
  19. 'End Type
  20. Private mPage() As UrlSimpleInfo
  21. Private mPageCnt&
  22. 'Public Event eAdd(nTitle As String, nUrl As String)
  23. Public Event eChange()
  24. Private Const mMaxMenuItem As Long = 20
  25. Private Const mMaxItem As Long = 50
  26. Private Sub Class_Initialize()
  27. mPageCnt = 0
  28. ReDim mPage(0 To mPageCnt)
  29. End Sub
  30. Public Sub Add(nTitle$, nUrl$, Optional canEvent As Boolean = True)
  31. Dim i&
  32. Dim repeatIndex&
  33. Dim tMenuCnt&
  34. 'Dim tDMnu As ClsSMenu, tcnt&
  35. nTitle = Trim(nTitle)
  36. nUrl = LCase(Trim(nUrl))
  37. repeatIndex = 0
  38. For i = mPageCnt To 1 Step -1
  39.     If nTitle = mPage(i).Title And nUrl = mPage(i).Url Then
  40.         repeatIndex = i
  41.         Exit For
  42.     End If
  43. Next i
  44. If repeatIndex > 0 Then
  45.     For i = repeatIndex To mPageCnt - 1
  46.         mPage(i) = mPage(i + 1)
  47.     Next i
  48.     mPage(mPageCnt).Title = nTitle
  49.     mPage(mPageCnt).Url = nUrl
  50. Else
  51.     If mPageCnt < mMaxItem Then
  52.         mPageCnt = mPageCnt + 1
  53.         ReDim Preserve mPage(0 To mPageCnt)
  54.         mPage(mPageCnt).Title = nTitle
  55.         mPage(mPageCnt).Url = nUrl
  56.     Else
  57.         For i = 1 To mPageCnt - 1
  58.             mPage(i) = mPage(i + 1)
  59.         Next i
  60.         mPage(mPageCnt).Title = nTitle
  61.         mPage(mPageCnt).Url = nUrl
  62.     End If
  63. End If
  64. If mPageCnt > mMaxMenuItem Then
  65.     tMenuCnt = mMaxMenuItem
  66. Else
  67.     tMenuCnt = mPageCnt
  68. End If
  69. 'tcnt = SMenus.Count
  70. 'For i = tcnt To 1 Step -1
  71. '    If SMenus(i).Tag = "rcl" Then
  72. '        SMenus.Remove i
  73. '    End If
  74. 'Next i
  75. '
  76. 'With pMnu_Reopen
  77. '    .ClearItems
  78. '    For i = mPageCnt To mPageCnt - tMenuCnt + 1 Step -1
  79. '        .Add mPage(i).Title, , i
  80. '        RstMenu pMnu_Reopen.hwnd, i, , 2, 0, "rcl"
  81. '    Next i
  82. '    .Add "", pmsSeparator
  83. '    .Add "更多", pmsDisabled Or pmsString
  84. 'End With
  85. 'tcnt = SMenus.Count
  86. 'For i = tcnt To 1 Step -1
  87. '    If SMenus(i).Tag = "rcl" Then
  88. '        SMenus.Remove i
  89. '    End If
  90. 'Next i
  91. gODrawMenu.RemoveMulODMenu "rcl"
  92. 'Dim tmnu As Menu
  93. 'With gMainForm
  94. '    .mnuRecent_ClosePage(0).Visible = True
  95. '    For Each tmnu In .mnuRecent_ClosePage
  96. '        If tmnu.index <> 0 Then
  97. '            Unload tmnu
  98. '        End If
  99. '    Next tmnu
  100. '
  101. '    For i = mPageCnt To mPageCnt - tMenuCnt + 1 Step -1
  102. '        Load .mnuRecent_ClosePage(mPageCnt - i + 1)
  103. '        With .mnuRecent_ClosePage(mPageCnt - i + 1)
  104. '            .Caption = Mid2(mPage(i).Title, , 30, "...")
  105. '            .Tag = mPage(i).Url
  106. '            .Enabled = True
  107. '        End With
  108. '        'RstMenu .hMnuReopen, mPageCnt - i + 1, , ImgK_Icon_Url, , , , "rcl"
  109. '    Next i
  110. '    If tMenuCnt > 0 Then
  111. '        .mnuRecent_ClosePage(0).Visible = False
  112. '    End If
  113. '
  114. 'End With
  115. pMnu_Reopen.ClearItems
  116.     For i = mPageCnt To mPageCnt - tMenuCnt + 1 Step -1
  117.         pMnu_Reopen.Add Mid2(mPage(i).Title, , 30, "..."), , i + IdOffset_Reopen
  118.         
  119.         gODrawMenu.RstMenu pMnu_Reopen.hWnd, mPageCnt - i, , ImgIx_Icon_Url, , , , "rcl"
  120.     Next i
  121.     If tMenuCnt > 0 Then
  122.     Else
  123.         pMnu_Reopen.Add "(空)", pmsString Or pmsDisabled
  124.     End If
  125.     
  126.     pMnu_Reopen.Add "", pmsSeparator
  127.     pMnu_Reopen.Add "更多", , IDM_Main_Favorite_Reopen_More
  128. RaiseEvent eChange
  129. 'If canEvent Then
  130. '    RaiseEvent eAdd(nTitle, nUrl)
  131. 'End If
  132. End Sub
  133. Public Property Get Count() As Long
  134. Count = mPageCnt
  135. End Property
  136. Public Sub Remove(index&)
  137. RaiseEvent eChange
  138. 'Dim i&
  139. 'If index <= mPageCnt Then
  140. '    For i = index To mPageCnt - 1
  141. '        mPage(i) = mPage(i + 1)
  142. '    Next i
  143. '    mPageCnt = mPageCnt - 1
  144. 'End If
  145. End Sub
  146. Public Sub Clear()
  147. mPageCnt = 0
  148. ReDim mPage(0 To mPageCnt)
  149. RaiseEvent eChange
  150. End Sub
  151. Public Sub SetAllPage(nTitle() As String, nUrl() As String, nCount&)
  152. Dim i&
  153. mPageCnt = nCount
  154. ReDim mPage(0 To mPageCnt)
  155. For i = 1 To mPageCnt
  156.     mPage(i).Title = nTitle(i)
  157.     mPage(i).Url = nUrl(i)
  158. Next i
  159. End Sub
  160. Public Function GetUrl(index&) As String
  161. If index > 0 And index <= mPageCnt Then
  162.     GetUrl = mPage(index).Url
  163. Else
  164.     GetUrl = ""
  165. End If
  166. End Function
  167. Public Function GetTitle(index&) As String
  168. If index > 0 And index <= mPageCnt Then
  169.     GetTitle = mPage(index).Title
  170. Else
  171.     GetTitle = ""
  172. End If
  173. End Function
  174. Public Function GetLastUrl() As String
  175. GetLastUrl = GetUrl(mPageCnt)
  176. End Function
  177. Public Sub Item(index&, nTitle$, nUrl$)
  178. nTitle = mPage(index).Title
  179. nUrl = mPage(index).Url
  180. End Sub
  181. '获取关闭页面信息
  182. Public Sub GetClosePages(nUrls() As String, nTitles() As String, nCount As Long)
  183. Dim i&
  184. nCount = mPageCnt
  185. ReDim nUrls(0 To mPageCnt)
  186. ReDim nTitles(0 To mPageCnt)
  187. For i = 1 To mPageCnt
  188.     nUrls(i) = mPage(i).Url
  189.     nTitles(i) = mPage(i).Title
  190. Next i
  191. End Sub