#include "dat.h" #include "fn.h" int pagemarker(char *buf, int nbuf, int first, int shown, int total) { if(nbuf <= 0) return 0; buf[0] = 0; if(total <= Maxdisp || shown <= 0) return 0; return snprint(buf, nbuf, "%d-%d/%d", first + 1, first + shown, total); } void popupposition(Caret *caret, int pointerx, int pointery, int screenw, int screenh, int w, int h, int *x, int *y) { vlong below, px, py, xmax, ymax; if(caret->valid){ px = caret->x; below = (vlong)caret->y + max(caret->h, 0); if(below >= 0 && below + h <= screenh) py = below; else py = (vlong)caret->y - h; }else{ px = (vlong)pointerx + 10; py = (vlong)pointery + 10; } xmax = max((vlong)screenw - w, 0); ymax = max((vlong)screenh - h, 0); *x = max(0, min(px, xmax)); *y = max(0, min(py, ymax)); }