Commit | Line | Data |
---|---|---|
2e16e1ff EW |
1 | #ifndef lint |
2 | static char sccsid[] = "@(#)cmd7.c 3.1 %G%"; | |
3 | #endif | |
4 | ||
5 | #include "defs.h" | |
6 | ||
7 | /* | |
8 | * Window size. | |
9 | */ | |
10 | ||
11 | c_size(w) | |
12 | register 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 | ||
50 | sizewin(w, nrow, ncol) | |
51 | register 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 | ||
63 | iconwin(w) | |
64 | register 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 | } |