home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / CODE_UPLOAD3740332000.psc / CMenu.cls next >
Encoding:
Visual Basic class definition  |  2000-02-18  |  5.8 KB  |  214 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 = "CMenu"
  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 = "Top_Level" ,"Yes"
  16. Option Explicit
  17.  
  18. #Const DEBUG_MODE = False
  19.  
  20. Private m_strCaption As String
  21. Private m_strKey As String
  22. Private m_strParentKey As String
  23. Private m_blnEnabled As Boolean
  24. Private m_strTag As String
  25. Private m_hMenu As Long
  26. Private m_hPopupMenu As Long
  27. Private m_lngItemID As Long
  28. Private m_lngIndex As Long
  29. Private m_blnChecked As Boolean
  30. Private m_lngChildCount As Long
  31. Private m_blnPopupMenu As Boolean
  32. Private m_objMenuItem As Menu
  33.  
  34. Private Sub Class_Initialize()
  35.     m_strCaption = ""
  36.     m_strKey = ""
  37.     m_strParentKey = ""
  38.     m_strTag = ""
  39.     m_hMenu = 0
  40.     m_hPopupMenu = 0
  41.     m_lngItemID = 0
  42.     m_lngIndex = 0
  43.     m_blnEnabled = True
  44.     m_blnChecked = False
  45.     m_blnPopupMenu = False
  46. End Sub
  47. Private Sub Class_Terminate()
  48.     Set m_objMenuItem = Nothing
  49. End Sub
  50.  
  51. Public Property Get Caption() As String
  52.     Caption = m_strCaption
  53. End Property
  54. Public Property Let Caption(ByVal vData As String)
  55.     m_strCaption = vData
  56.     
  57.     If IsMenu(m_hMenu) Then
  58.         Dim lRet As Long
  59.         If m_hPopupMenu Then
  60.             lRet = ModifyMenu(m_hMenu, m_hPopupMenu, MF_POPUP, m_hPopupMenu, _
  61.                                                         vData)
  62.         Else
  63.             If vData = "-" Then
  64.                 lRet = ModifyMenu(m_hMenu, m_lngItemID, _
  65.                         MF_SEPARATOR Or MF_BYCOMMAND, 0&, 0&)
  66.             Else
  67.                 lRet = ModifyMenu(m_hMenu, m_lngItemID, MF_BYCOMMAND, _
  68.                                                         m_lngItemID, vData)
  69.             End If
  70.         End If
  71. #If DEBUG_MODE Then
  72.         If (lRet = 0) Then
  73.             MsgBox "CMenu_Caption(Let) - Failed to ModifyMenu"
  74.         End If
  75. #End If
  76.     End If
  77. End Property
  78.  
  79. Public Property Get Key() As String
  80.     Key = m_strKey
  81. End Property
  82. Friend Property Let Key(ByVal vData As String)
  83.     m_strKey = vData
  84. End Property
  85.  
  86. Public Property Get ParentKey() As String
  87.     ParentKey = m_strParentKey
  88. End Property
  89. Friend Property Let ParentKey(ByVal vData As String)
  90.     m_strParentKey = vData
  91. End Property
  92.  
  93. Public Property Get Tag() As String
  94.     Tag = m_strTag
  95. End Property
  96. Public Property Let Tag(ByVal vData As String)
  97.     m_strTag = vData
  98. End Property
  99.  
  100. Public Property Get IsPopup() As Boolean
  101.     IsPopup = m_blnPopupMenu
  102. End Property
  103. Friend Property Let IsPopupMenu(ByVal vNewValue As Boolean)
  104.     m_blnPopupMenu = vNewValue
  105. End Property
  106.  
  107. Friend Property Get hMenu() As Long
  108.     hMenu = m_hMenu
  109. End Property
  110. Friend Property Let hMenu(ByVal vNewValue As Long)
  111.     m_hMenu = vNewValue
  112. End Property
  113.  
  114. Friend Property Get hPopupMenu() As Long
  115.     hPopupMenu = m_hPopupMenu
  116. End Property
  117. Friend Property Let hPopupMenu(ByVal vNewValue As Long)
  118.     m_hPopupMenu = vNewValue
  119. End Property
  120.  
  121. Friend Property Get ItemID() As Long
  122.     ItemID = m_lngItemID
  123. End Property
  124. Friend Property Let ItemID(ByVal vNewValue As Long)
  125.     m_lngItemID = vNewValue
  126. End Property
  127.  
  128. Friend Property Get Index() As Long
  129.     Index = m_lngIndex
  130. End Property
  131. Friend Property Let Index(ByVal vNewValue As Long)
  132.     m_lngIndex = vNewValue
  133. End Property
  134.  
  135. Public Property Get Checked() As Boolean
  136.     Checked = m_blnChecked
  137. End Property
  138. Public Property Let Checked(ByVal vData As Boolean)
  139.         
  140.     m_blnChecked = False
  141.     If m_blnPopupMenu Then Exit Property
  142.     If (IsMenu(m_hMenu) = 0) Then Exit Property
  143.     If Caption = "-" Then Exit Property
  144.     m_blnChecked = vData
  145.     
  146.     Dim lngRet As Long
  147.     If vData Then
  148.         lngRet = CheckMenuItem(m_hMenu, m_lngItemID, _
  149.                                 MF_BYCOMMAND Or MF_CHECKED)
  150.     Else
  151.         lngRet = CheckMenuItem(m_hMenu, m_lngItemID, _
  152.                                 MF_BYCOMMAND Or MF_UNCHECKED)
  153.     End If
  154. #If DEBUG_MODE Then
  155.     If (lngRet = -1) Then
  156.         MsgBox "CMenu_Checked(Let) - Failed to CheckMenuItem"
  157.     End If
  158. #End If
  159. End Property
  160.  
  161. Public Property Get Enabled() As Boolean
  162.     Enabled = m_blnEnabled
  163. End Property
  164. Public Property Let Enabled(ByVal vData As Boolean)
  165.     m_blnEnabled = vData
  166.     If (IsMenu(m_hMenu) = 0) Then Exit Property
  167.     If Caption = "-" Then Exit Property
  168.     
  169.     Dim lngRet As Long
  170.     If m_hPopupMenu Then
  171.         If vData Then
  172.             lngRet = EnableMenuItem(m_hMenu, m_hPopupMenu, _
  173.                                     MF_ENABLED)
  174.         Else
  175.             lngRet = EnableMenuItem(m_hMenu, m_hPopupMenu, _
  176.                                     MF_GRAYED)
  177.         End If
  178.     Else
  179.         If vData Then
  180.             lngRet = EnableMenuItem(m_hMenu, m_lngItemID, _
  181.                                     MF_BYCOMMAND Or MF_ENABLED)
  182.         Else
  183.             lngRet = EnableMenuItem(m_hMenu, m_lngItemID, _
  184.                                     MF_BYCOMMAND Or MF_GRAYED)
  185.         End If
  186.     End If
  187.     
  188. #If DEBUG_MODE Then
  189.     If (lngRet = -1) Then
  190.         MsgBox "CMenu_Enabled(Let) - Failed to EnableMenuItem"
  191.     End If
  192. #End If
  193. End Property
  194.  
  195. Public Property Get ChildCount() As Long
  196.     If (hPopupMenu <> 0) Then
  197.         ChildCount = m_lngChildCount
  198.     Else
  199.         ' Err.Raise ???
  200.     End If
  201. End Property
  202.  
  203. Friend Property Let ChildCount(ByVal vNewValue As Long)
  204.     m_lngChildCount = vNewValue
  205. End Property
  206.  
  207. Friend Property Get MenuItem() As Menu
  208.     Set MenuItem = m_objMenuItem
  209. End Property
  210. Friend Property Set MenuItem(NewValue As Menu)
  211.     Set m_objMenuItem = NewValue
  212. End Property
  213.  
  214.