home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 6_2008-2009.ISO / data / zips / Payroll_sy211924732008.psc / Controls / ctrl_PullDownMenu.ctl < prev    next >
Text File  |  2008-03-18  |  6KB  |  200 lines

  1. VERSION 5.00
  2. Begin VB.UserControl ctrl_PullDownMenu 
  3.    ClientHeight    =   360
  4.    ClientLeft      =   0
  5.    ClientTop       =   0
  6.    ClientWidth     =   2430
  7.    ScaleHeight     =   360
  8.    ScaleWidth      =   2430
  9.    Begin VB.Line lin_Line 
  10.       Visible         =   0   'False
  11.       X1              =   2040
  12.       X2              =   3240
  13.       Y1              =   360
  14.       Y2              =   360
  15.    End
  16.    Begin VB.Shape shp_MouseMove 
  17.       Height          =   255
  18.       Left            =   1320
  19.       Top             =   0
  20.       Visible         =   0   'False
  21.       Width           =   855
  22.    End
  23.    Begin VB.Label lbl_Item 
  24.       Alignment       =   2  'Center
  25.       BackStyle       =   0  'Transparent
  26.       Caption         =   "Item"
  27.       ForeColor       =   &H00000000&
  28.       Height          =   195
  29.       Index           =   0
  30.       Left            =   240
  31.       TabIndex        =   0
  32.       Top             =   0
  33.       Visible         =   0   'False
  34.       Width           =   300
  35.    End
  36.    Begin VB.Shape shp_Border 
  37.       BackColor       =   &H00FFFFFF&
  38.       BorderColor     =   &H00FFFFFF&
  39.       BorderStyle     =   0  'Transparent
  40.       FillColor       =   &H00FFFFFF&
  41.       Height          =   495
  42.       Left            =   0
  43.       Top             =   0
  44.       Width           =   1215
  45.    End
  46. End
  47. Attribute VB_Name = "ctrl_PullDownMenu"
  48. Attribute VB_GlobalNameSpace = False
  49. Attribute VB_Creatable = True
  50. Attribute VB_PredeclaredId = False
  51. Attribute VB_Exposed = False
  52. Option Explicit
  53.  
  54. Const DefForeColor = 0
  55. Const DefBackColor = 0
  56. Const DefHideBorder = 0
  57.  
  58. Dim v_oForeColor As OLE_COLOR
  59. Dim v_oBackColor As OLE_COLOR
  60. Dim v_bHideBorder As Boolean
  61. Dim v_iItemCount As Integer
  62.  
  63. Public pSelectionLeft, pSelectionBottom As Integer
  64.  
  65. Event Click(Index As Integer)
  66. Event MouseMove(Index As Integer, Button As Integer, Shift As Integer, x As Single, Y As Single)
  67.  
  68. Private Sub lbl_Item_Click(Index As Integer)
  69.     RaiseEvent Click(Index)
  70. End Sub
  71.  
  72. Private Sub lbl_Item_MouseMove(Index As Integer, Button As Integer, Shift As Integer, x As Single, Y As Single)
  73.     With UserControl
  74.         RaiseEvent MouseMove(Index, Button, Shift, x, Y)
  75.         .shp_MouseMove.Left = .lbl_Item(Index).Left - 15
  76.         .shp_MouseMove.Width = .lbl_Item(Index).Width + 30
  77.         .shp_MouseMove.Visible = True
  78.         
  79.         pSelectionLeft = .shp_MouseMove.Left
  80.         pSelectionBottom = .shp_MouseMove.Top + .shp_MouseMove.Height
  81.     End With
  82. End Sub
  83.  
  84. Private Sub UserControl_Initialize()
  85.     With UserControl
  86.         .shp_Border.Width = .Width
  87.         .shp_Border.Height = 360
  88.         .lin_Line.x1 = 0
  89.         .lin_Line.y1 = .Height - 15
  90.         .lin_Line.x2 = .Width
  91.         .lin_Line.y2 = .lin_Line.y1
  92.         .lbl_Item(0).Left = -260
  93.         
  94.         .shp_MouseMove.Top = 45
  95.         .shp_MouseMove.Height = 260
  96.     End With
  97. End Sub
  98.  
  99. Private Sub UserControl_Resize()
  100.     Call UserControl_Initialize
  101. End Sub
  102.  
  103. Public Sub AddItem(m_Item As String)
  104.     With UserControl
  105.         v_iItemCount = v_iItemCount + 1
  106.         Load .lbl_Item(v_iItemCount)
  107.         .lbl_Item(v_iItemCount).Caption = m_Item
  108.         .lbl_Item(v_iItemCount).ForeColor = .shp_Border.BorderColor
  109.         .lbl_Item(v_iItemCount).Width = TextWidth(m_Item) + 150
  110.         .lbl_Item(v_iItemCount).Left = .lbl_Item(v_iItemCount - 1).Left + .lbl_Item(v_iItemCount - 1).Width + 75
  111.         .lbl_Item(v_iItemCount).Top = 75
  112.         .lbl_Item(v_iItemCount).Visible = True
  113.     End With
  114. End Sub
  115.  
  116. Public Sub Refresh()
  117.     Dim v_iLoop As Integer
  118.  
  119.     UserControl.BackColor = BackColor
  120.     For v_iLoop = 1 To v_iItemCount
  121.         UserControl.lbl_Item(v_iLoop).ForeColor = ForeColor
  122.     Next v_iLoop
  123.     UserControl.shp_Border.BorderColor = ForeColor
  124.     UserControl.shp_MouseMove.BorderColor = ForeColor
  125.     UserControl.lin_Line.BorderColor = ForeColor
  126. End Sub
  127.  
  128. Private Sub UnloadItems()
  129.     Dim v_iLoop As Integer
  130.     
  131.     For v_iLoop = 1 To v_iItemCount - 1
  132.         Unload UserControl.lbl_Item(v_iLoop)
  133.     Next v_iLoop
  134. End Sub
  135.  
  136. Public Property Get ForeColor() As OLE_COLOR
  137. Attribute ForeColor.VB_Description = "Returns/sets the foreground color used to display text and graphics in an object."
  138.     ForeColor = v_oForeColor
  139. End Property
  140.  
  141. Public Property Let ForeColor(ByVal m_ForeColor As OLE_COLOR)
  142.     v_oForeColor = m_ForeColor
  143.     PropertyChanged "ForeColor"
  144. End Property
  145.  
  146. Public Property Get BackColor() As OLE_COLOR
  147. Attribute BackColor.VB_Description = "Returns/sets the background color used to display text and graphics in an object."
  148.     BackColor = v_oBackColor
  149. End Property
  150.  
  151. Public Property Let BackColor(ByVal m_BackColor As OLE_COLOR)
  152.     v_oBackColor = m_BackColor
  153.     PropertyChanged "BackColor"
  154. End Property
  155.  
  156. Public Property Get HideBorder() As Boolean
  157.     HideBorder = v_bHideBorder
  158. End Property
  159.  
  160. Public Property Let HideBorder(ByVal m_HideBorder As Boolean)
  161.     v_bHideBorder = m_HideBorder
  162.     PropertyChanged "HideBorder"
  163. End Property
  164.  
  165. Private Sub UserControl_InitProperties()
  166.     v_oForeColor = DefForeColor
  167.     v_oBackColor = DefBackColor
  168.     v_bHideBorder = DefHideBorder
  169. End Sub
  170.  
  171. Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  172.     v_oForeColor = PropBag.ReadProperty("ForeColor", DefForeColor)
  173.     UserControl.shp_Border.BorderColor = v_oForeColor
  174.     UserControl.shp_MouseMove.BorderColor = v_oForeColor
  175.     UserControl.lin_Line.BorderColor = v_oForeColor
  176.     
  177.     v_oBackColor = PropBag.ReadProperty("BackColor", DefBackColor)
  178.     UserControl.BackColor = v_oBackColor
  179.     
  180.     v_bHideBorder = PropBag.ReadProperty("HideBorder", DefHideBorder)
  181.     If v_bHideBorder = True Then
  182.         UserControl.shp_Border.Visible = False
  183.         UserControl.lin_Line.Visible = True
  184.     Else
  185.         UserControl.shp_Border.Visible = True
  186.         UserControl.lin_Line.Visible = False
  187.     End If
  188. End Sub
  189.  
  190. Private Sub UserControl_Terminate()
  191.     Call UnloadItems
  192. End Sub
  193.  
  194. Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
  195.     Call PropBag.WriteProperty("ForeColor", v_oForeColor, DefForeColor)
  196.     Call PropBag.WriteProperty("BackColor", v_oBackColor, DefBackColor)
  197.     Call PropBag.WriteProperty("HideBorder", v_bHideBorder, DefHideBorder)
  198. End Sub
  199.  
  200.