1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
use ui;
use core:geometry;
use core:io;
use progvis:net;
use graphics;
class List extends Window {
private ListPainter painter;
init() {
init();
painter(painter);
}
Bool onClick(Bool down, Point pt, MouseButton button) : override {
if (down & button == MouseButton:left) {
painter.onClick(pt);
}
true;
}
Bool onMouseVScroll(Point at, Int delta) : override {
painter.onVScroll(at, delta);
true;
}
}
class ListPainter extends ui:Painter {
private Size size;
private Size viewport;
init() {
init();
bgColor = Color(0.8, 0.8, 0.8);
}
Bool render(Size me, Graphics g) : override {
Bool repaint = false;
// size = me;
// tabs.render(me, g);
// viewport = Size(me.w, me.h - tabs.height);
// if (table) {
// g.transform = translate(Point(0, tabs.height - scroll));
// Rect view(Point(0, scroll), viewport);
// g.push(view);
// // Scroll bar.
// Float scrollWidth = 12;
// {
// Float viewHeight = view.size.h - 6;
// Float tableHeight = table.height;
// Float scaledSize = (viewHeight / tableHeight).min(1);
// Float scaledOffset = scroll / tableHeight;
// Size sz(scrollWidth - 6, scaledSize * viewHeight);
// Point origin(view.p1.x - scrollWidth + 3, scaledOffset * viewHeight);
// origin += Point(0, scroll + 3); // To compensate for the transform. 3 is half the border around it.
// g.fill(Rect(origin, sz), Size(3), scrollBrush);
// }
// // Table.
// view.p1.x -= scrollWidth;
// repaint |= table.render(view, g);
// g.pop();
// } else {
// g.draw(loading, tableText, me / 2 - loading.size / 2);
// }
repaint;
}
void onClick(Point pt) {}
void onVScroll(Point pt, Int delta) {}
}
|