+class InfoBox(wx.Panel):\r
+ def __init__(self, parent):\r
+ super(InfoBox, self).__init__(parent)\r
+ self.SetBackgroundColour('#FFFF80')\r
+ \r
+ self.sizer = wx.GridBagSizer(5, 5)\r
+ self.SetSizer(self.sizer)\r
+ \r
+ self.attentionBitmap = toolbarUtil.getBitmapImage('attention.png')\r
+ self.errorBitmap = toolbarUtil.getBitmapImage('error.png')\r
+ self.readyBitmap = toolbarUtil.getBitmapImage('ready.png')\r
+ self.busyBitmap = [toolbarUtil.getBitmapImage('busy-0.png'), toolbarUtil.getBitmapImage('busy-1.png'), toolbarUtil.getBitmapImage('busy-2.png'), toolbarUtil.getBitmapImage('busy-3.png')]\r
+ \r
+ self.bitmap = wx.StaticBitmap(self, -1, wx.EmptyBitmapRGBA(24, 24, red=255, green=255, blue=255, alpha=1))\r
+ self.text = wx.StaticText(self, -1, '')\r
+ self.sizer.Add(self.bitmap, pos=(0,0), flag=wx.ALL, border=5)\r
+ self.sizer.Add(self.text, pos=(0,1), flag=wx.TOP|wx.BOTTOM|wx.ALIGN_CENTER_VERTICAL, border=5)\r
+ \r
+ self.busyState = None\r
+ self.timer = wx.Timer(self)\r
+ self.Bind(wx.EVT_TIMER, self.doBusyUpdate, self.timer)\r
+ self.timer.Start(100)\r
+\r
+ def SetInfo(self, info):\r
+ self.SetBackgroundColour('#FFFF80')\r
+ self.text.SetLabel(info)\r
+ self.Refresh()\r
+\r
+ def SetError(self, info):\r
+ self.SetBackgroundColour('#FF8080')\r
+ self.text.SetLabel(info)\r
+ self.SetErrorIndicator()\r
+ self.Refresh()\r
+ \r
+ def SetAttention(self, info):\r
+ self.SetBackgroundColour('#FFFF80')\r
+ self.text.SetLabel(info)\r
+ self.SetAttentionIndicator()\r
+ self.Refresh()\r
+ \r
+ def SetBusyIndicator(self):\r
+ self.busyState = 0\r
+ self.bitmap.SetBitmap(self.busyBitmap[self.busyState])\r
+ \r
+ def doBusyUpdate(self, e):\r
+ if self.busyState == None:\r
+ return\r
+ self.busyState += 1\r
+ if self.busyState >= len(self.busyBitmap):\r
+ self.busyState = 0\r
+ self.bitmap.SetBitmap(self.busyBitmap[self.busyState])\r
+ \r
+ def SetReadyIndicator(self):\r
+ self.busyState = None\r
+ self.bitmap.SetBitmap(self.readyBitmap)\r
+ \r
+ def SetErrorIndicator(self):\r
+ self.busyState = None\r
+ self.bitmap.SetBitmap(self.errorBitmap)\r
+ \r
+ def SetAttentionIndicator(self):\r
+ self.busyState = None\r
+ self.bitmap.SetBitmap(self.attentionBitmap)\r
+\r