date and time created 85/03/01 17:49:15 by edward
[unix-history] / usr / src / usr.bin / window / cmd7.c
CommitLineData
2e16e1ff
EW
1#ifndef lint
2static char sccsid[] = "@(#)cmd7.c 3.1 %G%";
3#endif
4
5#include "defs.h"
6
7/*
8 * Window size.
9 */
10
11c_size(w)
12register struct ww *w;
13{
14 int col, row;
15
16 if (!terse)
17 wwputs("New window size (lower right corner): ", cmdwin);
18 col = MIN(w->ww_w.r, wwncol) - 1;
19 row = MIN(w->ww_w.b, wwnrow) - 1;
20 wwadd(boxwin, framewin->ww_back);
21 for (;;) {
22 wwbox(boxwin, w->ww_w.t - 1, w->ww_w.l - 1,
23 row - w->ww_w.t + 3, col - w->ww_w.l + 3);
24 wwsetcursor(row, col);
25 while (wwpeekc() < 0)
26 wwiomux();
27 switch (getpos(&row, &col, w->ww_w.t, w->ww_w.l,
28 wwnrow - 1, wwncol - 1)) {
29 case 3:
30 wwunbox(boxwin);
31 wwdelete(boxwin);
32 return;
33 case 2:
34 wwunbox(boxwin);
35 break;
36 case 1:
37 wwunbox(boxwin);
38 case 0:
39 continue;
40 }
41 break;
42 }
43 wwdelete(boxwin);
44 if (!terse)
45 wwputc('\n', cmdwin);
46 wwcurtowin(cmdwin);
47 sizewin(w, row - w->ww_w.t + 1, col - w->ww_w.l + 1);
48}
49
50sizewin(w, nrow, ncol)
51register struct ww *w;
52{
53 struct ww *back = w->ww_back;
54
55 w->ww_alt.nr = w->ww_w.nr;
56 w->ww_alt.nc = w->ww_w.nc;
57 wwdelete(w);
58 wwsize(w, nrow, ncol);
59 wwadd(w, back);
60 reframe();
61}
62
63iconwin(w)
64register struct ww *w;
65{
66 struct ww_dim new;
67 struct ww *back = w->ww_back;
68
69 new = w->ww_alt;
70 w->ww_alt = w->ww_w;
71 wwdelete(w);
72 wwsize(w, new.nr, new.nc);
73 wwmove(w, new.t, new.l);
74 wwadd(w, back);
75 reframe();
76}