int textresize(Text *t, Rectangle r, int keepextra) { int odx; if(Dy(r) <= 0) r.max.y = r.min.y; else if(!keepextra) r.max.y -= Dy(r)%t->fr.font->height; odx = Dx(t->all); t->all = r; t->scrollr = r; t->scrollr.max.x = r.min.x+Scrollwid; t->lastsr = nullrect; r.min.x += Scrollwid+Scrollgap; frclear(&t->fr, 0); textredraw(t, r, t->fr.font, t->fr.b, odx); if(keepextra && t->fr.r.max.y < t->all.max.y && !t->fr.noredraw){ /* draw background in bottom fringe of window */ r.min.x -= Scrollgap; r.min.y = t->fr.r.max.y; r.max.y = t->all.max.y; draw(screen, r, t->fr.cols[BACK], nil, ZP); } return t->all.max.y; }
void textinit(Text *t, Image *b, Rectangle r, Font *f, Image *cols[NCOL]) { t->all = r; t->scrollr = r; t->scrollr.max.x = r.min.x+Scrollsize; t->lastsr = ZR; r.min.x += Scrollsize+Scrollgap; t->rs.nr = 0; memmove(t->Frame.cols, cols, sizeof t->Frame.cols); textredraw(t, r, f, b); }
void textinit(Text *t, File *f, Rectangle r, Reffont *rf, Image *cols[NCOL]) { t->file = f; t->all = r; t->scrollr = r; t->scrollr.max.x = r.min.x+Scrollwid; t->lastsr = nullrect; r.min.x += Scrollwid+Scrollgap; t->eq0 = ~0; t->ncache = 0; t->reffont = rf; t->tabstop = maxtab; memmove(t->Frame.cols, cols, sizeof t->Frame.cols); textredraw(t, r, rf->f, screen, -1); }
int textresize(Text *t, Rectangle r) { int odx; if(Dy(r) > 0) r.max.y -= Dy(r)%t->font->height; else r.max.y = r.min.y; odx = Dx(t->all); t->all = r; t->scrollr = r; t->scrollr.max.x = r.min.x+Scrollwid; t->lastsr = nullrect; r.min.x += Scrollwid+Scrollgap; frclear(t, 0); textredraw(t, r, t->font, t->b, odx); return r.max.y; }
int textresize(Text *t, Image *b, Rectangle r) { if(Dy(r) > 0) r.max.y -= Dy(r)%t->font->height; else r.max.y = r.min.y; t->all = r; t->scrollr = r; t->scrollr.max.x = r.min.x+Scrollsize; t->lastsr = ZR; r.min.x += Scrollsize+Scrollgap; frclear(t, 0); textredraw(t, r, t->font, b); if(t->what == Textarea) textscrdraw(t); return r.max.y; }