info_page_list_item.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. from label import Label
  4. from skin_manager import MySkinManager
  5. class InfoPageListItem(object):
  6. _PosX = 0
  7. _PosY = 0
  8. _Width = 0
  9. _Height = 30
  10. _Labels = {}
  11. _Icons = {}
  12. _Fonts = {}
  13. _LinkObj = None
  14. _ReadOnly = False
  15. def __init__(self):
  16. self._Labels = {}
  17. self._Icons = {}
  18. self._Fonts = {}
  19. def SetSmallText(self,text):
  20. l = Label()
  21. l._PosX = 40
  22. l.SetCanvasHWND(self._Parent._CanvasHWND)
  23. l.Init(text,self._Fonts["small"])
  24. self._Labels["Small"] = l
  25. def Init(self,text):
  26. #self._Fonts["normal"] = fonts["veramono12"]
  27. l = Label()
  28. l._PosX = 10
  29. l.SetCanvasHWND(self._Parent._CanvasHWND)
  30. l.Init(text,self._Fonts["normal"])
  31. self._Labels["Text"] = l
  32. def Draw(self):
  33. if self._ReadOnly == True:
  34. self._Labels["Text"].SetColor(MySkinManager.GiveColor("ReadOnlyText"))
  35. else:
  36. self._Labels["Text"].SetColor(MySkinManager.GiveColor("Text"))
  37. self._Labels["Text"]._PosX = self._Labels["Text"]._PosX + self._PosX
  38. self._Labels["Text"]._PosY = self._PosY + (self._Height - self._Labels["Text"]._Height)/2
  39. self._Labels["Text"].Draw()
  40. self._Labels["Text"]._PosX = self._Labels["Text"]._PosX - self._PosX
  41. if "Small" in self._Labels:
  42. self._Labels["Small"]._PosX = self._Width - self._Labels["Small"]._Width-5
  43. self._Labels["Small"]._PosY = self._PosY + (self._Height - self._Labels["Small"]._Height)/2
  44. self._Labels["Small"].Draw()
  45. pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1)