date and time created 85/03/01 17:49:15 by edward
authorEdward Wang <edward@ucbvax.Berkeley.EDU>
Sat, 2 Mar 1985 09:49:15 +0000 (01:49 -0800)
committerEdward Wang <edward@ucbvax.Berkeley.EDU>
Sat, 2 Mar 1985 09:49:15 +0000 (01:49 -0800)
SCCS-vsn: usr.bin/window/cmd7.c 3.1

usr/src/usr.bin/window/cmd7.c [new file with mode: 0644]

diff --git a/usr/src/usr.bin/window/cmd7.c b/usr/src/usr.bin/window/cmd7.c
new file mode 100644 (file)
index 0000000..8fd15df
--- /dev/null
@@ -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();
+}