Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Module AnimationManager
- Interface IAnimatable
- Property IsAnimating As Boolean
- Sub Animate()
- End Interface
- Private WithEvents animTimer As New Timer
- Private animControls As New List(Of Control)
- Private childControls As New List(Of Control)
- Public Property Interval As Integer
- Get
- Return animTimer.Interval
- End Get
- Set(value As Integer)
- animTimer.Interval = If(value >= 10, value, 10)
- End Set
- End Property
- Sub New()
- Interval = 20
- animTimer.Enabled = True
- End Sub
- Private Sub animTimer_Tick(sender As Object, e As EventArgs) Handles animTimer.Tick
- For Each animCtrl As IAnimatable In animControls
- If animCtrl.IsAnimating Then animCtrl.Animate()
- Next
- End Sub
- Public Sub Add(ByVal animCtrl As Control)
- If TypeOf animCtrl Is IAnimatable AndAlso Not animControls.Contains(animCtrl) Then
- animControls.Add(animCtrl)
- End If
- End Sub
- Public Sub AddAllFromContainer(ByVal container As ContainerControl)
- childControls.Clear()
- For Each animCtrl As Control In GetAllChildren(container)
- Add(animCtrl)
- Next
- End Sub
- Public Sub AddRange(ByVal animCtrls As Control())
- For Each animCtrl As Control In animCtrls
- Add(animCtrl)
- Next
- End Sub
- Public Sub Clear()
- animControls.Clear()
- End Sub
- Public Sub Remove(ByVal animCtrl As Control)
- If animControls.Contains(animCtrl) Then animControls.Remove(animCtrl)
- End Sub
- Public Sub RemoveAllFromContainer(container As ContainerControl)
- childControls.Clear()
- For Each animCtrl As Control In GetAllChildren(container)
- Remove(animCtrl)
- Next
- End Sub
- Public Sub RemoveRange(ByVal animates As IAnimatable())
- For Each animCtrl As Control In animates
- Remove(animCtrl)
- Next
- End Sub
- Private Function GetAllChildren(control As Control) As Control()
- For Each ctrl As Control In control.Controls
- GetAllChildren(ctrl)
- childControls.Add(ctrl)
- Next
- Return childControls.ToArray()
- End Function
- End Module
Advertisement
Add Comment
Please, Sign In to add comment