Advertisement
Guest User

Untitled

a guest
May 31st, 2020
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. struct Window {
  2. private Framebuffer* fb;
  3. private size_t startX;
  4. private size_t startY;
  5. private size_t _length;
  6. private size_t _height;
  7. private uint* _canvas;
  8.  
  9. @property size_t length() { return _length; }
  10. @property size_t height() { return _height; }
  11. @property uint* canvas() { return _canvas; }
  12.  
  13. this(Framebuffer* f, size_t sx, size_t sy, size_t l, size_t h) {
  14. fb = f;
  15. startX = sx;
  16. startY = sy;
  17. _length = l;
  18. _height = h;
  19. _canvas = newArray!(uint)(length * height);
  20. }
  21.  
  22. ~this() {
  23. if (_canvas != null) {
  24. delArray(_canvas);
  25. }
  26. }
  27.  
  28. void draw() {
  29. // Title bar.
  30. auto barStartY = startY - fontHeight;
  31. foreach (x; 0.._length) {
  32. foreach (y; 0..fontHeight) {
  33. fb.putPixel(startX + x, barStartY + y, windowBorder);
  34. }
  35. }
  36. plotString(fb, startX, barStartY, "Window", 0xFFFFFF);
  37.  
  38. // Contents.
  39. foreach (x; 0.._length) {
  40. foreach (y; 0.._height) {
  41. fb.putPixel(startX + x, startY + y, canvas[x + length * y]);
  42. }
  43. }
  44. }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement