From 2e16e1ffd2714b2a3a61f9f807507b40fff7b405 Mon Sep 17 00:00:00 2001 From: Edward Wang Date: Sat, 2 Mar 1985 01:49:15 -0800 Subject: [PATCH 1/1] date and time created 85/03/01 17:49:15 by edward SCCS-vsn: usr.bin/window/cmd7.c 3.1 --- usr/src/usr.bin/window/cmd7.c | 76 +++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 usr/src/usr.bin/window/cmd7.c diff --git a/usr/src/usr.bin/window/cmd7.c b/usr/src/usr.bin/window/cmd7.c new file mode 100644 index 0000000000..8fd15dff24 --- /dev/null +++ b/usr/src/usr.bin/window/cmd7.c @@ -0,0 +1,76 @@ +#ifndef lint +static char sccsid[] = "@(#)cmd7.c 3.1 %G%"; +#endif + +#include "defs.h" + +/* + * Window size. + */ + +c_size(w) +register struct ww *w; +{ + int col, row; + + if (!terse) + wwputs("New window size (lower right corner): ", cmdwin); + col = MIN(w->ww_w.r, wwncol) - 1; + row = MIN(w->ww_w.b, wwnrow) - 1; + wwadd(boxwin, framewin->ww_back); + for (;;) { + wwbox(boxwin, w->ww_w.t - 1, w->ww_w.l - 1, + row - w->ww_w.t + 3, col - w->ww_w.l + 3); + wwsetcursor(row, col); + while (wwpeekc() < 0) + wwiomux(); + switch (getpos(&row, &col, w->ww_w.t, w->ww_w.l, + wwnrow - 1, wwncol - 1)) { + case 3: + wwunbox(boxwin); + wwdelete(boxwin); + return; + case 2: + wwunbox(boxwin); + break; + case 1: + wwunbox(boxwin); + case 0: + continue; + } + break; + } + wwdelete(boxwin); + if (!terse) + wwputc('\n', cmdwin); + wwcurtowin(cmdwin); + sizewin(w, row - w->ww_w.t + 1, col - w->ww_w.l + 1); +} + +sizewin(w, nrow, ncol) +register struct ww *w; +{ + struct ww *back = w->ww_back; + + w->ww_alt.nr = w->ww_w.nr; + w->ww_alt.nc = w->ww_w.nc; + wwdelete(w); + wwsize(w, nrow, ncol); + wwadd(w, back); + reframe(); +} + +iconwin(w) +register struct ww *w; +{ + struct ww_dim new; + struct ww *back = w->ww_back; + + new = w->ww_alt; + w->ww_alt = w->ww_w; + wwdelete(w); + wwsize(w, new.nr, new.nc); + wwmove(w, new.t, new.l); + wwadd(w, back); + reframe(); +} -- 2.20.1