home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 4_2005-2006.ISO / data / Zips / Add_In_for1979733122006.psc / MainEOMClass.cls < prev    next >
Text File  |  2006-03-12  |  12KB  |  354 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 = "MainEOMClass"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = True
  14. Attribute VB_Description = "VBgamer.com Tabbed Source Viewer"
  15. Option Explicit
  16.  
  17. 'Public WithEvents PrjHandler  As VBProjectsEvents          'projects event handler
  18. Public WithEvents CmpHandler  As VBComponentsEvents        'components event handler
  19. Attribute CmpHandler.VB_VarHelpID = -1
  20. 'Public WithEvents CtlHandler  As VBControlsEvents          'controls event handler
  21. 'Public WithEvents FCHandler As FileControlEvents
  22.  
  23. Public WithEvents MenuHandlerLeft As CommandBarEvents
  24. Attribute MenuHandlerLeft.VB_VarHelpID = -1
  25. Public WithEvents MenuHandlerRight As CommandBarEvents
  26. Attribute MenuHandlerRight.VB_VarHelpID = -1
  27.  
  28. Dim EvtHandlers As Collection
  29.  
  30.  
  31. Implements IDTExtensibility
  32.  
  33.  
  34. Const guidMYTOOL$ = "{4A204572-6963-2043-6F6C-656D616E2031}"
  35.  
  36.  
  37. Private Function GetProjectOfComponent(ByRef vbc As VBIDE.VBComponent) As VBIDE.VBProject
  38.     Dim p As VBProject
  39.     Dim c As VBComponent
  40.     Set GetProjectOfComponent = Nothing
  41.     For Each p In gVBE.VBProjects
  42.         For Each c In p.VBComponents
  43.             If c Is vbc Then
  44.                 Set GetProjectOfComponent = p
  45.                 Exit Function
  46.             End If
  47.         Next
  48.     Next
  49. End Function
  50.  
  51. Private Sub CmpHandler_ItemActivated(ByVal VBComponent As VBIDE.VBComponent)
  52. '    Debug.Print "CmpHandler", "Activated"
  53. End Sub
  54. Private Sub CmpHandler_ItemAdded(ByVal VBComponent As VBIDE.VBComponent)
  55. '
  56.     'For Each p In gVBE.VBProjects
  57.     '    For Each c In p.VBComponents
  58.     Dim p As VBProject
  59.     Set p = GetProjectOfComponent(VBComponent)
  60.     If Not Nothing Is p Then
  61.         AddButton p, VBComponent
  62.     End If
  63. End Sub
  64. Private Sub CmpHandler_ItemReloaded(ByVal VBComponent As VBIDE.VBComponent)
  65. '
  66. End Sub
  67. Private Sub CmpHandler_ItemRemoved(ByVal VBComponent As VBIDE.VBComponent)
  68.     Debug.Print "CmpHandler", "Removed"
  69.     Debug.Print "Is removed ", VBComponent.Name
  70.  '   vbcomponent.
  71.  
  72.     Dim ocbcTemp As Office.CommandBarControl
  73.     Dim s As String
  74.     Dim p As VBProject
  75.     
  76.     Set p = GetProjectOfComponent(VBComponent)
  77.     If Not Nothing Is p Then
  78.         s = p.Name & "." & VBComponent.Name
  79.         For Each ocbcTemp In gVBE.CommandBars("VBgamer").Controls
  80.             If ocbcTemp.OnAction = s Then ocbcTemp.Delete: Exit For
  81.         Next
  82.     End If
  83.  
  84.        
  85. End Sub
  86. Private Sub CmpHandler_ItemRenamed(ByVal VBComponent As VBIDE.VBComponent, ByVal OldName As String)
  87.     RefreshToolbar
  88. End Sub
  89. Private Sub CmpHandler_ItemSelected(ByVal VBComponent As VBIDE.VBComponent)
  90. '    Debug.Print "CMPHandler", "Item Selected"
  91. End Sub
  92.  
  93.  
  94.  
  95. Private Sub IDTExtensibility_OnAddInsUpdate(custom() As Variant)
  96. '' Comment to prevent procedure from being
  97. '' deleted on compilation.
  98. End Sub
  99.  
  100. Private Sub IDTExtensibility_OnConnection(ByVal VBInst As Object, ByVal ConnectMode As VBIDE.vbext_ConnectMode, ByVal AddInInst As VBIDE.AddIn, custom() As Variant)
  101. '
  102. 'MsgBox "Add-in is now connected"
  103.  
  104. Set gVBE = VBInst
  105. Set EvtHandlers = New Collection
  106.  
  107. 'Dim docTabOrderObject As Object  'user doc instance
  108. ' The guidMYTOOL$ constant is the unique registry
  109. ' identifier for your add-in.
  110.  
  111.  
  112.  'gVBInstance.Windows.CreateToolWindow(gVBInstance.Addins(1), "TabOrder.docTabOrder", LoadResString(10), guidMYTOOL$, gdocTabOrder)
  113.  
  114. '/////////////////////////////////////
  115. 'Set gWindow = gVBE.Windows.CreateToolWindow(gVBE.Addins("VBgamerSourceBin.MainEOMClass"), "VBgamerSourceBin.udSourceControl", "Source Control", guidMYTOOL$, gDocWindow)
  116. '    gWindow.Visible = True
  117. '//////////////////////
  118.   
  119.  
  120. 'Set gWindow = gVBE.Windows.CreateToolWindow(gVBE.Addins("VBgamerSourceBin.udSourceControl"), "TabOrder.docTabOrder", _
  121. LoadResString(10), guidMYTOOL$, docTabOrderObject)
  122.  
  123. '    Set Me.PrjHandler = gVBE.Events.VBProjectsEvents
  124.     Set Me.CmpHandler = gVBE.Events.VBComponentsEvents(Nothing)
  125.     
  126.  
  127.     RefreshToolbar
  128.     
  129.  
  130.  
  131. 'Set Me.MenuHandler = gVBE.Events.CommandBarEvents(cb)
  132. Exit Sub
  133. errConnection:
  134. Debug.Print "Error", Err.Number, Err.Description
  135. Err.Clear
  136. Resume Next
  137.     
  138. End Sub
  139.  
  140. Private Sub RefreshToolbar()
  141. On Error Resume Next
  142.  
  143. Dim cb As CommandBar
  144. Set cb = gVBE.CommandBars("VBgamer")
  145.  
  146. If Err.Number <> 0 Then
  147.     Set cb = gVBE.CommandBars.Add("VBgamer", 1, , True)
  148. End If
  149.  
  150. On Error GoTo 0
  151.  
  152. cb.Visible = True
  153.     
  154. Dim ocbcTemp As Office.CommandBarControl
  155. For Each ocbcTemp In gVBE.CommandBars("VBgamer").Controls
  156.     ocbcTemp.Delete
  157. Next
  158.     
  159.  
  160.  
  161. Set EvtHandlers = Nothing 'easy way to clear a collection.
  162. Set EvtHandlers = New Collection
  163.  
  164.  
  165. Dim mcbMenuCommandBar         As Office.CommandBarControl  'command bar object
  166.  
  167.  
  168. AddControlButtons
  169.  
  170.     Dim p As VBProject
  171.     Dim c As VBComponent
  172.     Dim ct As VBControl
  173.  
  174. '    Dim cp As CodePane
  175. '    Dim sc As String
  176. '    Dim sp As String
  177. '    Dim L As Long
  178. Dim m As Member
  179.     For Each p In gVBE.VBProjects
  180.         For Each c In p.VBComponents
  181.             'c.CodeModule.CodePane.Show
  182.                 
  183.             AddButton p, c
  184.             
  185.         Next
  186.     Next
  187.  
  188. End Sub
  189.  
  190. Public Sub AddControlButtons()
  191.     Dim oPic As StdPicture
  192.     Dim prp As Property
  193.     Dim mcls As MyCommandEventHandler
  194.     
  195.     
  196.     gCountControlButtons = 2  'increase this number if you want to add other buttons.
  197.  
  198.     Set oPic = LoadResPicture(110, vbResBitmap) 'unknown
  199.     Set mcbMenuCommandBar = gVBE.CommandBars("VBgamer").Controls.Add(1)
  200.     mcbMenuCommandBar.Caption = "Scroll Left"
  201.     mcbMenuCommandBar.BeginGroup = False
  202.     mcbMenuCommandBar.Style = msoButtonIcon
  203.     mcbMenuCommandBar.ToolTipText = "Scroll Left"
  204.     CopyBitmapAsButtonFace oPic, &HFF
  205.     mcbMenuCommandBar.PasteFace
  206.     Set MenuHandlerLeft = gVBE.Events.CommandBarEvents(mcbMenuCommandBar)
  207.  
  208.     Set oPic = LoadResPicture(111, vbResBitmap) 'unknown
  209.     Set mcbMenuCommandBar = gVBE.CommandBars("VBgamer").Controls.Add(1)
  210.     mcbMenuCommandBar.Caption = "Scroll Right"
  211.     mcbMenuCommandBar.BeginGroup = False
  212.     mcbMenuCommandBar.Style = msoButtonIcon
  213.     mcbMenuCommandBar.ToolTipText = "Scroll Right"
  214.     CopyBitmapAsButtonFace oPic, &HFF
  215.     mcbMenuCommandBar.PasteFace
  216.     Set MenuHandlerRight = gVBE.Events.CommandBarEvents(mcbMenuCommandBar)
  217. End Sub
  218.  
  219. Private Sub AddButton(ByRef p As VBProject, ByRef c As VBComponent)
  220.  
  221.     Dim blnSkip As Boolean
  222.     Dim oPic As StdPicture
  223.     Dim prp As Property
  224.     Dim mcls As MyCommandEventHandler
  225.     
  226.             Select Case c.Type
  227.                 Case vbext_ComponentType.vbext_ct_ActiveXDesigner
  228.                     Set oPic = LoadResPicture(109, vbResBitmap) 'unknown
  229.                 Case vbext_ComponentType.vbext_ct_ClassModule
  230.                     Set oPic = LoadResPicture(101, vbResBitmap)
  231.                 Case vbext_ComponentType.vbext_ct_DocObject
  232.                     Set oPic = LoadResPicture(108, vbResBitmap)
  233.                 Case vbext_ComponentType.vbext_ct_MSForm
  234.                     Set oPic = LoadResPicture(109, vbResBitmap) 'unknown
  235.                 Case vbext_ComponentType.vbext_ct_PropPage
  236.                     Set oPic = LoadResPicture(106, vbResBitmap)
  237.                 Case vbext_ComponentType.vbext_ct_RelatedDocument   'nothing
  238.                     blnSkip = True
  239.                 Case vbext_ComponentType.vbext_ct_ResFile           'nothing.
  240.                     blnSkip = True
  241.                 Case vbext_ComponentType.vbext_ct_StdModule
  242.                     Set oPic = LoadResPicture(105, vbResBitmap)
  243.                 Case vbext_ComponentType.vbext_ct_UserControl
  244.                     Set oPic = LoadResPicture(107, vbResBitmap)
  245.                 Case vbext_ComponentType.vbext_ct_VBForm
  246.                     Set prp = c.Properties("MDIChild")
  247.                     If prp.Value = True Then
  248.                         Set oPic = LoadResPicture(103, vbResBitmap)
  249.                     Else 'normal form.
  250.                         Set oPic = LoadResPicture(102, vbResBitmap)
  251.                     End If
  252.                 Case vbext_ComponentType.vbext_ct_VBMDIForm
  253.                     Set oPic = LoadResPicture(104, vbResBitmap)
  254.                 Case Else
  255.                     blnSkip = True
  256.             End Select
  257.             
  258.  
  259.             If blnSkip = False Then
  260.                 Set mcbMenuCommandBar = gVBE.CommandBars("VBgamer").Controls.Add(1)
  261.                 mcbMenuCommandBar.Caption = c.Name
  262.                 mcbMenuCommandBar.BeginGroup = True
  263.                 mcbMenuCommandBar.Style = msoButtonCaption Or msoButtonIcon
  264.                 mcbMenuCommandBar.OnAction = p.Name & "." & c.Name
  265.                 mcbMenuCommandBar.ToolTipText = p.Name & "." & c.Name
  266.                 'Set MnuEvt = New CommandBarEvents
  267.                 CopyBitmapAsButtonFace oPic, &HFF
  268.                 ' Paste the icon on the button.
  269.                 mcbMenuCommandBar.PasteFace
  270.                 Set mcls = New MyCommandEventHandler
  271.                 Set mcls.MenuHandler = gVBE.Events.CommandBarEvents(mcbMenuCommandBar)
  272.                 EvtHandlers.Add mcls
  273.             End If
  274.  
  275. End Sub
  276.  
  277.  
  278. Private Sub IDTExtensibility_OnDisconnection(ByVal RemoveMode As VBIDE.vbext_DisconnectMode, custom() As Variant)
  279.  
  280. On Error Resume Next
  281. gVBE.CommandBars("VBgamer").Delete
  282. Set EvtHandlers = Nothing
  283.  
  284. Set gVBE = Nothing  'must be last line
  285.  
  286. 'MsgBox "Add-in is now disconnected"
  287. End Sub
  288.  
  289. Private Sub IDTExtensibility_OnStartupComplete(custom() As Variant)
  290. '' Comment to prevent procedure from being
  291. '' deleted on compilation.
  292. End Sub
  293.  
  294. Private Sub MenuHandlerLeft_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean)
  295.     'shift visible buttons left
  296.     Dim ocbcTemp As Office.CommandBarControl
  297.     Dim s As String
  298.     Dim p As VBProject
  299.     Dim buttonCount As Long
  300.     Dim ndx As Long
  301.         
  302.     gButtonVisibleIndex = gButtonVisibleIndex - 1
  303.     buttonCount = gVBE.CommandBars("VBgamer").Controls.Count '- gCountControlButtons
  304.     If gButtonVisibleIndex > buttonCount Then gButtonVisibleIndex = gCountControlButtons
  305.     If gButtonVisibleIndex < gCountControlButtons Then gButtonVisibleIndex = gCountControlButtons
  306.         
  307.         
  308.     For ndx = gCountControlButtons + 1 To gButtonVisibleIndex
  309.         gVBE.CommandBars("VBgamer").Controls(ndx).Visible = False
  310.     Next
  311.     For ndx = gButtonVisibleIndex + 1 To buttonCount
  312.         gVBE.CommandBars("VBgamer").Controls(ndx).Visible = True
  313.     Next
  314.  
  315. End Sub
  316.  
  317. Private Sub MenuHandlerRight_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean)
  318.     'shift visible buttons right
  319.     'shift visible buttons left
  320.     Dim ocbcTemp As Office.CommandBarControl
  321.     Dim s As String
  322.     Dim p As VBProject
  323.     Dim buttonCount As Long
  324.     Dim ndx As Long
  325.     
  326.     If gButtonVisibleIndex < gCountControlButtons Then gButtonVisibleIndex = gCountControlButtons
  327.     gButtonVisibleIndex = gButtonVisibleIndex + 1
  328.     buttonCount = gVBE.CommandBars("VBgamer").Controls.Count '- gCountControlButtons
  329.     If gButtonVisibleIndex >= buttonCount Then gButtonVisibleIndex = buttonCount - 1
  330.         
  331.  
  332.     For ndx = gCountControlButtons + 1 To gButtonVisibleIndex
  333.         gVBE.CommandBars("VBgamer").Controls(ndx).Visible = False
  334.     Next
  335.     For ndx = gButtonVisibleIndex + 1 To buttonCount
  336.         gVBE.CommandBars("VBgamer").Controls(ndx).Visible = True
  337.     Next
  338. End Sub
  339. '
  340. 'Private Sub PrjHandler_ItemActivated(ByVal VBProject As VBIDE.VBProject)
  341. '    Debug.Print "PrjHandler", "Item Activated"
  342. 'End Sub
  343. 'Private Sub PrjHandler_ItemAdded(ByVal VBProject As VBIDE.VBProject)
  344. '    Debug.Print "PrjHandler", "Item Added"
  345. 'End Sub
  346. '
  347. 'Private Sub PrjHandler_ItemRemoved(ByVal VBProject As VBIDE.VBProject)
  348. '    Debug.Print "PrjHandler", "Item Removed"
  349. 'End Sub
  350. '
  351. 'Private Sub PrjHandler_ItemRenamed(ByVal VBProject As VBIDE.VBProject, ByVal OldName As String)
  352. '    Debug.Print "PrjHandler", "Item Renamed"
  353. 'End Sub
  354.