Changed fit backup busy animation
This commit is contained in:
76
gui/utils/animUtils.py
Normal file
76
gui/utils/animUtils.py
Normal file
@@ -0,0 +1,76 @@
|
||||
import wx
|
||||
import gui.utils.colorUtils as colorUtils
|
||||
|
||||
class LoadAnimation(wx.Window):
|
||||
def __init__ (self, parent, id = wx.ID_ANY, label = "", pos = wx.DefaultPosition, size = wx.DefaultSize, style = 0):
|
||||
wx.Window.__init__(self, parent, id, pos = pos, size = size, style = style)
|
||||
|
||||
self.label = label
|
||||
|
||||
self.animTimerId = wx.NewId()
|
||||
self.animTimer = wx.Timer(self, self.animTimerId)
|
||||
self.animTimerPeriod = 50
|
||||
|
||||
self.animCount = 0
|
||||
self.animDir = 1
|
||||
self.bars = 10
|
||||
self.padding = 2
|
||||
|
||||
|
||||
self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
|
||||
self.Bind(wx.EVT_TIMER, self.OnTimer)
|
||||
self.Bind(wx.EVT_PAINT, self.OnPaint)
|
||||
|
||||
self.animTimer.Start(self.animTimerPeriod)
|
||||
|
||||
def OnTimer(self, event):
|
||||
self.animCount += self.animDir
|
||||
|
||||
if self.animCount >= self.bars:
|
||||
self.animCount = self.bars - 1
|
||||
self.animDir = -1
|
||||
|
||||
if self.animCount < 0:
|
||||
self.animCount = 0
|
||||
self.animDir = 1
|
||||
|
||||
self.Refresh()
|
||||
|
||||
def OnEraseBackground(self, event):
|
||||
pass
|
||||
|
||||
def OnPaint(self, event):
|
||||
rect = self.GetClientRect()
|
||||
dc = wx.BufferedPaintDC(self)
|
||||
windowColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)
|
||||
dc.SetBackground(wx.Brush(windowColor))
|
||||
dc.Clear()
|
||||
|
||||
barColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOWTEXT)
|
||||
shadeColor = colorUtils.GetSuitableColor(barColor, 0.75)
|
||||
|
||||
barWidth = (rect.width) / self.bars
|
||||
barHeight = rect.height - self.padding * 2
|
||||
|
||||
x = self.padding
|
||||
|
||||
for bar in xrange(self.bars):
|
||||
if bar != self.animCount:
|
||||
dc.SetPen(wx.Pen(shadeColor))
|
||||
dc.SetBrush(wx.Brush(shadeColor))
|
||||
bh = barHeight
|
||||
y = self.padding
|
||||
else:
|
||||
barColor = colorUtils.GetSuitableColor(barColor,float(self.animCount/2)/10)
|
||||
dc.SetPen(wx.Pen(barColor))
|
||||
dc.SetBrush(wx.Brush(barColor))
|
||||
bh = rect.height
|
||||
y = 0
|
||||
|
||||
dc.DrawRectangle(x, y, barWidth, bh)
|
||||
x += barWidth
|
||||
|
||||
textColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOWTEXT)
|
||||
dc.SetTextForeground(textColor)
|
||||
dc.DrawLabel(self.label,rect,wx.ALIGN_CENTER)
|
||||
|
||||
Reference in New Issue
Block a user