widget.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import pygame
  2. class Widget:
  3. borderTop = 1
  4. borderBottom = 2
  5. borderLeft = 4
  6. borderRight = 8
  7. def __init__(self, x=0, y=0, width=7, height=7, color=None, bg_color=None, border=0, border_color=None):
  8. self._PosX = x
  9. self._PosY = y
  10. self._Width = width
  11. self._Height = height
  12. self._Color = color
  13. self._BG_Color = bg_color
  14. self._BorderColor = border_color
  15. self._Rect = pygame.Rect(self._PosX, self._PosY, self._Width, self._Height)
  16. self._Canvas = None
  17. self._Parent = None
  18. self._Border = border
  19. def get_canvas(self):
  20. return self._Canvas
  21. def set_position(self, x, y):
  22. self._PosX = x
  23. self._PosY = y
  24. self._Rect.x = x
  25. self._Rect.y = y
  26. def set_size(self, width, height):
  27. self._Height = height
  28. self._Width = width
  29. self._Rect.height = height
  30. self._Rect.width = width
  31. def set_color(self, color):
  32. self._Color = color
  33. def set_bgcolor(self, color):
  34. self._BG_Color = color
  35. def set_parent(self, parent):
  36. self._Parent = parent
  37. def get_rect(self):
  38. return self._Rect
  39. def set_border(self, border, color):
  40. self._Border = border
  41. self._BorderColor = color
  42. def Draw(self):
  43. if self._BG_Color is not None and self._Parent is not None:
  44. pygame.draw.rect(self._Parent.get_canvas(), self._BG_Color, self._Rect)
  45. def _DrawBorder(self):
  46. if self._Border > 0:
  47. if self._Border & self.borderTop:
  48. pygame.draw.line(self._Parent.get_canvas(), self._BG_Color,
  49. (self._PosX, self._PosY), (self._PosX + self._Width, self._PosY), 1)
  50. if self._Border & self.borderLeft:
  51. pygame.draw.line(self._Parent.get_canvas(), self._BG_Color,
  52. (self._PosX, self._PosY), (self._PosX, self._PosY + self._Height), 1)
  53. if self._Border & self.borderBottom:
  54. pygame.draw.line(self._Parent.get_canvas(), self._BG_Color,
  55. (self._PosX, self._PosY + self._Height),
  56. (self._PosX + self._Width, self._PosY + self._Height), 1)
  57. if self._Border & self.borderRight:
  58. pygame.draw.line(self._Parent.get_canvas(), self._BG_Color,
  59. (self._PosX + self._Width, self._PosY),
  60. (self._PosX + self._Width, self._PosY + self._Height), +1)
  61. def handle_event(self, evt):
  62. pass
  63. def reload(self):
  64. pass