home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / Fancy_Tool1843921252005.psc / cFancyTooltips.cls < prev    next >
Text File  |  2005-01-25  |  5KB  |  188 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 = "cFancyTooltips"
  10. Attribute VB_GlobalNameSpace = True
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Option Explicit
  15.  
  16.  
  17. Enum enShowDelay
  18.    [1 second] = 1
  19.    [2 seconds] = 2
  20.    [3 seconds] = 3
  21.    [4 seconds] = 4
  22. End Enum
  23.  
  24.  
  25. Private m_tip_show_delay          As enShowDelay
  26. Private m_hide_on_mouseover       As Boolean
  27. Private btag_show_delay           As Boolean
  28. Private m_hide_tooltips           As Boolean
  29. Private m_your_form               As Form
  30. Attribute m_your_form.VB_VarHelpID = -1
  31.  
  32. Private Const m_def_tip_show_delay = 2
  33.  
  34. Event MouseDown(pallette_hwnd As Long)
  35.  
  36.  
  37. Sub add_ctrl(ctrl_hwnd As Long, pallette_ctrl As Object)
  38.   Dim u   As Long
  39.   
  40.   If m_your_form Is Nothing Then
  41.      Err.Raise 23232, , "You must set the value of "".your_form"""
  42.      Exit Sub
  43.   End If
  44.  
  45.   u = upper
  46.   
  47.   ReDim Preserve code.m_arr_ctrls(u)
  48.   ReDim Preserve code.m_arr_pallette(u)
  49.   code.m_arr_ctrls(u) = ctrl_hwnd
  50.   Set code.m_arr_pallette(u) = pallette_ctrl
  51.   SetParent pallette_ctrl.hwnd, Ftip.hwnd
  52.   
  53. End Sub
  54.  
  55. Private Function upper() As Long
  56.  
  57.   If IsArray(m_arr_ctrls) Then
  58.     upper = UBound(m_arr_ctrls) + 1
  59.   Else
  60.     upper = 0
  61.   End If
  62.   
  63. End Function
  64. '-- check to see if item is array or array is initialized
  65. Function IsArray(varArray As Variant) As Boolean
  66. Dim upper As Integer
  67. On Error Resume Next
  68.  
  69.   upper = UBound(varArray)
  70.   
  71.   If Err.Number Then
  72.      If Err.Number = 9 Then
  73.        IsArray = False
  74.      End If
  75.   Else
  76.      IsArray = True
  77.   End If
  78.  
  79. End Function
  80.  
  81.  
  82. Private Sub your_form_Unload(Cancel As Integer)
  83.  
  84.     Unload Ftip
  85.     Set Ftip = Nothing
  86.     
  87. End Sub
  88. '
  89. 'this sub can only be called from Ftip and would only
  90. 'be called because the [hide_on_mouseover] = false AND
  91. 'the user has clicked the "tooltip" (Ftip)
  92. '
  93. Friend Sub friend_mouse_down(tip_hwnd As Long)
  94.  
  95.  RaiseEvent MouseDown(tip_hwnd)
  96.  
  97. End Sub
  98.   
  99.  
  100.  
  101. Public Property Get your_form() As Object
  102.  
  103.   Set your_form = m_your_form
  104.  
  105. End Property
  106.  
  107. Public Property Set your_form(ByVal vNewValue As Object)
  108.    
  109.    On Error Resume Next
  110.     
  111.    Set m_your_form = vNewValue
  112.  
  113.    With Ftip
  114.       'show it in a manner that makes it owned by the caller
  115.       'that way this form will unload with the calling form
  116.       'and wont be left hanging in memory
  117.       .Show vbModeless, m_your_form
  118.       'keep it hidden to start
  119.       .Visible = False
  120.       Set Ftip.calling_class = Me
  121.    End With
  122.    
  123. End Property
  124. Public Property Get hide_tooltips() As Boolean
  125.    
  126.    hide_tooltips = m_hide_tooltips
  127.    
  128. End Property
  129. Public Property Let hide_tooltips(ByVal vNewValue As Boolean)
  130.  
  131.   'set the value of a tag
  132.   m_hide_tooltips = vNewValue
  133.   'the value is passed on to the public var
  134.   'in the module [code] so Ftip can read it
  135.   'and decide to show itself or not
  136.   mod_hide_tooltips = vNewValue
  137.   'this val is also passed to module var
  138.   'so ftip can read it as to whether to
  139.   'hide itself on mouseover
  140.   mod_m_hide_on_mouseover = m_hide_on_mouseover
  141.    'check to see if user specified a
  142.    'tim_show_time and tip_show_delay
  143.    'if not we will use the m_def defaults
  144.   tip_show_delay = IIf(btag_show_delay = True, m_tip_show_delay, m_def_tip_show_delay)
  145.    
  146.   
  147. End Property
  148.  
  149.  
  150. Public Property Get tip_show_delay() As enShowDelay
  151.   
  152.   tip_show_delay = m_tip_show_delay
  153.   
  154. End Property
  155. Public Property Let tip_show_delay(ByVal vNewValue As enShowDelay)
  156.   
  157.   btag_show_delay = True
  158.   m_tip_show_delay = vNewValue
  159.   'set the value in ftip [form]
  160.   Ftip.m_show_delay = vNewValue
  161.  
  162. End Property
  163. Public Property Get hide_on_mouseover() As Boolean
  164.   
  165.   hide_on_mouseover = m_hide_on_mouseover
  166.   
  167. End Property
  168. Public Property Let hide_on_mouseover(ByVal vNewValue As Boolean)
  169.   
  170.   m_hide_on_mouseover = vNewValue
  171.   
  172. End Property
  173. Function help_about() As String
  174.  
  175.  Const R = vbCrLf
  176.  
  177.  
  178.  help_about = "FancyTooltips is a way of implementing different ""pallettes""  for different controls on your form." & R & _
  179.               "a ""pallette"" being any valid container control such as a picturebox or a frame." & R & _
  180.               "You simple draw the controls/objects onto the different pallettes in any manner you choose" & R & _
  181.               "using different labels, lines, ..whatever in any manner u see appropriate." & R & _
  182.               "You simply assign the pallette object as the second parameter for the ""add_ctrl"" method" & R & _
  183.               "For example, say on your form you want a fancyTooltip for ""command1"".  You simply place (in the form_load)" & R & _
  184.               " ""fancyTooltips1.add_ctrl command1, frame1""  assuming that you want ""frame1"" to be the pallette for command1"
  185.  Debug.Print help_about
  186.  
  187. End Function
  188.