Windows: Improve Animator
This commit is contained in:
@@ -1,51 +1,63 @@
|
||||
Imports System.Drawing
|
||||
Imports System.Windows.Forms
|
||||
|
||||
Public Class Animator
|
||||
Public Const DEFAULT_FONT_OPACITY = 0.5
|
||||
Public Const DEFAULT_FORM_SIZE = 30
|
||||
Public Const DEFAULT_FORM_FADE_SPEED = 10
|
||||
Public Const DEFAULT_FORM_FADE_INTERVAL = 250
|
||||
Private Const DEFAULT_POPUP_OPACITY = 0.5
|
||||
Private Const DEFAULT_POPUP_SIZE = 30
|
||||
Private Const DEFAULT_POPUP_FADE_SPEED = 10
|
||||
Private Const DEFAULT_POPUP_FADE_INTERVAL = 250
|
||||
|
||||
Public Property FormSize As Integer
|
||||
Public Property FadeInterval As Integer
|
||||
Public Property FadeSpeed As Integer
|
||||
Public Property FormOpacity As Double
|
||||
Public Property FormColor As Color
|
||||
''' <summary>
|
||||
''' Time the popup stays visible between the animations
|
||||
''' </summary>
|
||||
Public Property AnimationInterval As Integer
|
||||
''' <summary>
|
||||
''' Basevalue for calculating the time the popup takes to animate
|
||||
''' </summary>
|
||||
Public Property AnimationSpeed As Integer
|
||||
''' <summary>
|
||||
''' Opacity the popup animates to (From 0.0 to .., back to 0.0)
|
||||
''' </summary>
|
||||
Public Property PopupOpacity As Double
|
||||
''' <summary>
|
||||
''' Color of the popup
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property PopupColor As Color
|
||||
''' <summary>
|
||||
''' Size of the popup in width and height
|
||||
''' </summary>
|
||||
Public Property PopupSize As Size
|
||||
|
||||
Public Sub New()
|
||||
_FormSize = DEFAULT_FORM_SIZE
|
||||
_FadeSpeed = DEFAULT_FORM_FADE_SPEED
|
||||
_FadeInterval = DEFAULT_FORM_FADE_INTERVAL
|
||||
_FormOpacity = DEFAULT_FONT_OPACITY
|
||||
_FormColor = Color.FromArgb(255, 214, 49)
|
||||
_PopupSize = New Size(DEFAULT_POPUP_SIZE, DEFAULT_POPUP_SIZE)
|
||||
_AnimationSpeed = DEFAULT_POPUP_FADE_SPEED
|
||||
_AnimationInterval = DEFAULT_POPUP_FADE_INTERVAL
|
||||
_PopupOpacity = DEFAULT_POPUP_OPACITY
|
||||
_PopupColor = Color.FromArgb(255, 214, 49)
|
||||
End Sub
|
||||
|
||||
Public Sub Highlight(Position As Point)
|
||||
Dim oForm = GetPopup(Position)
|
||||
Dim oForm = GetPopup(Position, PopupSize)
|
||||
oForm.Show()
|
||||
FadeIn(oForm, _FormOpacity, _FadeSpeed / 2)
|
||||
Dim oTimer As New Timer With {.Interval = _FadeInterval}
|
||||
AddHandler oTimer.Tick, Sub()
|
||||
FadeOut(oForm, _FadeSpeed * 2)
|
||||
oTimer.Stop()
|
||||
End Sub
|
||||
oTimer.Start()
|
||||
FadeIn(oForm, _PopupOpacity, _AnimationSpeed / 2)
|
||||
Task.Delay(_AnimationInterval)
|
||||
FadeOut(oForm, _AnimationSpeed * 2)
|
||||
End Sub
|
||||
|
||||
Private Function GetPopup(CursorPosition As Point) As frmPopup
|
||||
Dim oFormLocation = New Point(CursorPosition.X - (_FormSize / 2), CursorPosition.Y - (_FormSize / 2))
|
||||
Dim oFormSize = New Size(_FormSize, _FormSize)
|
||||
Private Function GetPopup(CursorPosition As Point, PopupSize As Size) As frmPopup
|
||||
Dim oFormLocation = New Point(
|
||||
CursorPosition.X - (PopupSize.Width / 2),
|
||||
CursorPosition.Y - (PopupSize.Height / 2))
|
||||
|
||||
Return New frmPopup() With {
|
||||
.Location = oFormLocation,
|
||||
.StartPosition = FormStartPosition.Manual,
|
||||
.Size = oFormSize,
|
||||
.MaximumSize = oFormSize,
|
||||
.MinimumSize = oFormSize,
|
||||
.Size = PopupSize,
|
||||
.MaximumSize = PopupSize,
|
||||
.MinimumSize = PopupSize,
|
||||
.Opacity = 0,
|
||||
.ShowInTaskbar = False,
|
||||
.BackColor = _FormColor
|
||||
.BackColor = _PopupColor
|
||||
}
|
||||
End Function
|
||||
|
||||
@@ -53,7 +65,6 @@ Public Class Animator
|
||||
While o.Opacity < finalOpacity
|
||||
Await Task.Delay(interval)
|
||||
o.Opacity += 0.05
|
||||
Debug.WriteLine("Fading in, Opacity: " & o.Opacity)
|
||||
End While
|
||||
|
||||
o.Opacity = finalOpacity
|
||||
@@ -63,10 +74,8 @@ Public Class Animator
|
||||
While o.Opacity > 0.0
|
||||
Await Task.Delay(interval)
|
||||
o.Opacity -= 0.05
|
||||
Debug.WriteLine("Fading out, Opacity: " & o.Opacity)
|
||||
End While
|
||||
|
||||
o.Opacity = 0
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user