graph.b 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. implement Graph;
  2. include "common.m";
  3. sys : Sys;
  4. drawm : Draw;
  5. dat : Dat;
  6. gui : Gui;
  7. utils : Utils;
  8. Image, Point, Rect, Font, Display : import drawm;
  9. black, white, display : import gui;
  10. error : import utils;
  11. refp : ref Point;
  12. pixarr : array of byte;
  13. init(mods : ref Dat->Mods)
  14. {
  15. sys = mods.sys;
  16. drawm = mods.draw;
  17. dat = mods.dat;
  18. gui = mods.gui;
  19. utils = mods.utils;
  20. refp = ref Point;
  21. refp.x = refp.y = 0;
  22. }
  23. charwidth(f : ref Font, c : int) : int
  24. {
  25. s : string = "z";
  26. s[0] = c;
  27. return f.width(s);
  28. }
  29. strwidth(f : ref Font, s : string) : int
  30. {
  31. return f.width(s);
  32. }
  33. balloc(r : Rect, c : Draw->Chans, col : int) : ref Image
  34. {
  35. im := display.newimage(r, c, 0, col);
  36. if (im == nil)
  37. error("failed to get new image");
  38. return im;
  39. }
  40. draw(d : ref Image, r : Rect, s : ref Image, m : ref Image, p : Point)
  41. {
  42. d.draw(r, s, m, p);
  43. }
  44. stringx(d : ref Image, p : Point, f : ref Font, s : string, c : ref Image)
  45. {
  46. d.text(p, c, (0, 0), f, s);
  47. }
  48. cursorset(p : Point)
  49. {
  50. gui->cursorset(p);
  51. }
  52. cursorswitch(c : ref Dat->Cursor)
  53. {
  54. gui->cursorswitch(c);
  55. }
  56. binit()
  57. {
  58. }
  59. bflush()
  60. {
  61. }
  62. berror(s : string)
  63. {
  64. error(s);
  65. }