0Hawk0

Animation Manager

Jan 20th, 2016
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.29 KB | None | 0 0
  1. Module AnimationManager
  2.  
  3.     Interface IAnimatable
  4.         Property IsAnimating As Boolean
  5.         Sub Animate()
  6.     End Interface
  7.  
  8.     Private WithEvents animTimer As New Timer
  9.     Private animControls As New List(Of Control)
  10.     Private childControls As New List(Of Control)
  11.  
  12.     Public Property Interval As Integer
  13.         Get
  14.             Return animTimer.Interval
  15.         End Get
  16.         Set(value As Integer)
  17.             animTimer.Interval = If(value >= 10, value, 10)
  18.         End Set
  19.     End Property
  20.  
  21.     Sub New()
  22.         Interval = 20
  23.         animTimer.Enabled = True
  24.     End Sub
  25.  
  26.     Private Sub animTimer_Tick(sender As Object, e As EventArgs) Handles animTimer.Tick
  27.         For Each animCtrl As IAnimatable In animControls
  28.             If animCtrl.IsAnimating Then animCtrl.Animate()
  29.         Next
  30.     End Sub
  31.  
  32.     Public Sub Add(ByVal animCtrl As Control)
  33.         If TypeOf animCtrl Is IAnimatable AndAlso Not animControls.Contains(animCtrl) Then
  34.             animControls.Add(animCtrl)
  35.         End If
  36.     End Sub
  37.  
  38.     Public Sub AddAllFromContainer(ByVal container As ContainerControl)
  39.         childControls.Clear()
  40.         For Each animCtrl As Control In GetAllChildren(container)
  41.             Add(animCtrl)
  42.         Next
  43.     End Sub
  44.  
  45.     Public Sub AddRange(ByVal animCtrls As Control())
  46.         For Each animCtrl As Control In animCtrls
  47.             Add(animCtrl)
  48.         Next
  49.     End Sub
  50.  
  51.     Public Sub Clear()
  52.         animControls.Clear()
  53.     End Sub
  54.  
  55.     Public Sub Remove(ByVal animCtrl As Control)
  56.         If animControls.Contains(animCtrl) Then animControls.Remove(animCtrl)
  57.     End Sub
  58.  
  59.     Public Sub RemoveAllFromContainer(container As ContainerControl)
  60.         childControls.Clear()
  61.         For Each animCtrl As Control In GetAllChildren(container)
  62.             Remove(animCtrl)
  63.         Next
  64.     End Sub
  65.  
  66.     Public Sub RemoveRange(ByVal animates As IAnimatable())
  67.         For Each animCtrl As Control In animates
  68.             Remove(animCtrl)
  69.         Next
  70.     End Sub
  71.  
  72.     Private Function GetAllChildren(control As Control) As Control()
  73.         For Each ctrl As Control In control.Controls
  74.             GetAllChildren(ctrl)
  75.             childControls.Add(ctrl)
  76.         Next
  77.         Return childControls.ToArray()
  78.     End Function
  79.  
  80. End Module
Advertisement
Add Comment
Please, Sign In to add comment