home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / VBLayers2_1719603132004.psc / clsLayerItemsOld.cls < prev    next >
Text File  |  2004-02-23  |  9KB  |  255 lines

  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 = "clsLayerItemsOld"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = False
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = True
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Collection" ,"clsLayerItems"
  16. Attribute VB_Ext_KEY = "Member0" ,"clsLayerItems"
  17. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  18. '**********************************************************************************************************************'
  19. '*'
  20. '*' Module    : LayerItems
  21. '*'
  22. '*'
  23. '*' Author    : Joseph M. Ferris <jferris@desertdocs.com>
  24. '*'
  25. '*' Date      : 02.23.2004
  26. '*'
  27. '*' Depends   :
  28. '*'
  29. '*' Purpose   :
  30. '*'
  31. '*' Notes     :
  32. '*'
  33. '**********************************************************************************************************************'
  34. Option Explicit
  35.  
  36. '**********************************************************************************************************************'
  37. '*'
  38. '*' Private Constant Declarations
  39. '*'
  40. '**********************************************************************************************************************'
  41. Private Const ERR_INVALIDLAYERWINDOW    As Long = vbObjectError + 22001
  42.  
  43. '**********************************************************************************************************************'
  44. '*'
  45. '*' Private Member Declarations
  46. '*'
  47. '**********************************************************************************************************************'
  48. Private m_colLayerStack                 As Collection
  49. Private m_objUserControl                As Object
  50.  
  51. '**********************************************************************************************************************'
  52. '*'
  53. '*' Property  : Count (Read-Only)
  54. '*'
  55. '*'
  56. '*' Date      : 02.23.2004
  57. '*'
  58. '*' Purpose   : Return a count of the individual LayerItems that are currently in the LayerItems collection.
  59. '*'
  60. '*' Input     : None.
  61. '*'
  62. '*' Output    : Count (Long)
  63. '*'
  64. '**********************************************************************************************************************'
  65. Public Property Get Count() As Long
  66.     Count = m_colLayerStack.Count
  67. End Property
  68.  
  69. '**********************************************************************************************************************'
  70. '*'
  71. '*' Procedure : Item (Read-Only)
  72. '*'
  73. '*'
  74. '*' Date      : 02.23.2004
  75. '*'
  76. '*' Purpose   : Provides a redirection to the individual LayerItem.  Variant declaration allows for retrieval either
  77. '*'             via Key or via Index.
  78. '*'
  79. '*' Input     : vntIndexKey (Variant)
  80. '*'
  81. '*' Output    : Item (LayerItem)
  82. '*'
  83. '**********************************************************************************************************************'
  84. Public Property Get Item(vntIndexKey As Variant) As LayerItem
  85.   Set Item = m_colLayerStack(vntIndexKey)
  86. End Property
  87.  
  88. '**********************************************************************************************************************'
  89. '*'
  90. '*' Procedure : NewEnum (Read-Only, Hidden)
  91. '*'
  92. '*'
  93. '*' Date      : 02.23.2004
  94. '*'
  95. '*' Purpose   : Allows For...Each syntax to be utilized through the IUnknown interface.
  96. '*'
  97. '*' Input     : None
  98. '*'
  99. '*' Output    : NewEnum (IUnknown)
  100. '*'
  101. '**********************************************************************************************************************'
  102. Public Property Get NewEnum() As IUnknown
  103. Attribute NewEnum.VB_UserMemId = -5
  104. Attribute NewEnum.VB_MemberFlags = "40"
  105.     Set NewEnum = m_colLayerStack.[_NewEnum]
  106. End Property
  107.  
  108. '**********************************************************************************************************************'
  109. '*'
  110. '*' Procedure : Add
  111. '*'
  112. '*'
  113. '*' Date      : 02.23.2004
  114. '*'
  115. '*' Purpose   : Adds a new LayerItem to the LayerItems collection.
  116. '*'
  117. '*' Input     : In Flux.  ;-)
  118. '*'
  119. '*' Output    : LayerItem
  120. '*'
  121. '**********************************************************************************************************************'
  122. Public Function Add(Caption As String, Optional Key As String, Optional Picture As StdPicture, _
  123.        Optional LayerEditable As Boolean = False, Optional LayerViewable As Boolean = False, _
  124.        Optional Tag As String = vbNullString) As clsLayerItem
  125.  
  126. Dim objNewMember                        As clsLayerItem
  127.     
  128.     '*' Instanciate the new class member.  Even though the variable is only scoped for this function, it is stored
  129.     '*' in a collection with member level scope.  It will exist for the lifetime of the class.
  130.     '*'
  131.     Set objNewMember = New clsLayerItem
  132.  
  133.     '*' Set any Layer Properties directly to the LayerItem. as needed.  Note that the ID is set last.  This way, any
  134.     '*' callback events will not be fired from the LayerItem class, since it requires the internal ID as a
  135.     '*' 'finalization' of the intial assignments.
  136.     '*'
  137.     With objNewMember
  138.         .Key = Key
  139.         .Caption = Caption
  140.         .LayerEditable = LayerEditable
  141.         .LayerViewable = LayerViewable
  142.         Set .LayerWindowCtl = m_objUserControl
  143.         Set .Picture = Picture
  144.         .Tag = Tag
  145.         .id = CreateGUID
  146.     End With
  147.     
  148.     '*' Check to see if a key has been provided by the user.
  149.     '*'
  150.     If Len(Key) = 0 Then
  151.         m_colLayerStack.Add objNewMember
  152.     Else
  153.         m_colLayerStack.Add objNewMember, Key
  154.     End If
  155.  
  156.     '*' Signal the event to the parent.
  157.     '*'
  158.     m_objUserControl.EventCallback objNewMember, "Add"
  159.     
  160.     '*' Return the newly created LayerItem and destroy the local reference.
  161.     '*'
  162.     Set Add = objNewMember
  163.     Set objNewMember = Nothing
  164.  
  165. End Function
  166.  
  167. '**********************************************************************************************************************'
  168. '*'
  169. '*' Procedure : Initialize
  170. '*'
  171. '*'
  172. '*' Date      : 02.23.2004
  173. '*'
  174. '*' Purpose   : Attach an instance of the LayerWindow to the class for forward population to the LayerItem to implement
  175. '*'             a quasi-callback ability so that multiple control items can "raise" the same "events".
  176. '*'
  177. '*' Input     : LayerWindowCtl (Object)
  178. '*'
  179. '*' Output    : None
  180. '*'
  181. '**********************************************************************************************************************'
  182. Public Sub Initialize(LayerWindowCtl As Object)
  183.  
  184.     '*' Make sure that a proper VBLayerWindow Object is passed.
  185.     '*'
  186.     If Not TypeName(LayerWindowCtl) = "VBLayerWindow" Then
  187.     
  188.         '*' Raise an error for an improper control type.
  189.         '*'
  190.         Err.Raise ERR_INVALIDLAYERWINDOW, "Initialize()"
  191.     
  192.     End If
  193.         
  194.     '*' Store the reference to the object for a quasi-callback interface.
  195.     '*'
  196.     Set m_objUserControl = LayerWindowCtl
  197.     
  198. End Sub
  199.  
  200. '**********************************************************************************************************************'
  201. '*'
  202. '*' Procedure : Remove
  203. '*'
  204. '*'
  205. '*' Date      : 02.23.2004
  206. '*'
  207. '*' Purpose   : Remove an item from the stack with either the Key or the Index.
  208. '*'
  209. '*' Input     : vntIndexKey (Variant)
  210. '*'
  211. '*' Output    : None
  212. '*'
  213. '**********************************************************************************************************************'
  214. Public Sub Remove(vntIndexKey As Variant)
  215.     m_colLayerStack.Remove vntIndexKey
  216. End Sub
  217.  
  218. '**********************************************************************************************************************'
  219. '*'
  220. '*' Procedure : Class_Initialize
  221. '*'
  222. '*'
  223. '*' Date      : 02.23.2004
  224. '*'
  225. '*' Purpose   : Initialize the collection that is used to hold the LayerItems.
  226. '*'
  227. '*' Input     : None.
  228. '*'
  229. '*' Output    : None.
  230. '*'
  231. '**********************************************************************************************************************'
  232. Private Sub Class_Initialize()
  233.     Set m_colLayerStack = New Collection
  234. End Sub
  235.  
  236. '**********************************************************************************************************************'
  237. '*'
  238. '*' Procedure : Class_Terminate
  239. '*'
  240. '*'
  241. '*' Date      : 02.23.2004
  242. '*'
  243. '*' Purpose   : Destroy the collection that is used to hold the LayerItems
  244. '*'
  245. '*' Input     : None.
  246. '*'
  247. '*' Output    : None.
  248. '*'
  249. '**********************************************************************************************************************'
  250. Private Sub Class_Terminate()
  251.     Set m_colLayerStack = Nothing
  252. End Sub
  253.  
  254.  
  255.