dividers.m 593 B

123456789101112131415161718192021222324252627282930313233
  1. Dividers: module {
  2. init: fn();
  3. Divider: adt {
  4. new: fn(win: ref Tk->Toplevel, w: string, wl: list of string, dir: int): (ref Divider, chan of string);
  5. event: fn(d: self ref Divider, e: string);
  6. # private from here.
  7. win: ref Tk->Toplevel;
  8. w: string;
  9. state: ref DState;
  10. dir: int; # NS or EW
  11. widgets: array of ref DWidget;
  12. canvsize: Draw->Point;
  13. };
  14. EW, NS: con iota;
  15. PATH: con "/dis/lib/dividers.dis";
  16. # private from here
  17. DWidget: adt {
  18. w: string;
  19. r: Draw->Rect;
  20. size: Draw->Point;
  21. };
  22. DState: adt {
  23. dragdiv: int;
  24. dy: int;
  25. maxy, miny: int;
  26. };
  27. };