static char *sccsid
= "@(#)wwframe.c 2.1 83/07/30";
char noleft
, noright
, notop
, nobot
;
char ulc
, top
, urc
, left
, right
, llc
, bottom
, lrc
;
w
->ww_w
= w
->ww_i
= w
->ww_o
;
if (w
->ww_o
.col
+ w
->ww_o
.ncol
== wwncol
) {
} else if (wwcheckframe(LEFT, w->ww_o.col + w->ww_o.ncol - 1,
w->ww_o.row, w->ww_o.row + w->ww_o.nrow - 1, wwhead)) {
} else if (wwcheckframe(LEFT, w->ww_o.col + w->ww_o.ncol,
w->ww_o.row, w->ww_o.row + w->ww_o.nrow - 1, wwhead)) {
if (w
->ww_o
.row
+ w
->ww_o
.nrow
== wwnrow
) {
} else if (wwcheckframe(TOP
, w
->ww_o
.row
+ w
->ww_o
.nrow
- 1,
w
->ww_o
.col
, w
->ww_o
.col
+ w
->ww_o
.ncol
- 1, wwhead
)) {
} else if (wwcheckframe(TOP, w->ww_o.row + w->ww_o.nrow,
w->ww_o.col, w->ww_o.col + w->ww_o.ncol - 1, wwhead)) {
if (oldsize
.nrow
!= w
->ww_w
.nrow
|| oldsize
.ncol
!= w
->ww_w
.ncol
) {
bstart
= w
->ww_win
->w_bstart
;
if (Wsize(w
->ww_win
, w
->ww_w
.ncol
, w
->ww_w
.nrow
) != 0) {
wwprintf(w
, "wwframe: Wsize(%d, %d) failed.\r\n",
w
->ww_w
.ncol
, w
->ww_w
.nrow
);
w
->ww_win
->w_bstart
= bstart
;
Wsetmargins(w
->ww_win
, noleft
? 0 : 1, notop
? 0 : 1,
w
->ww_i
.ncol
, w
->ww_i
.nrow
);
/* scroll to the old position */
Wgetframe(&ulc
, &top
, &urc
, &left
, &right
, &llc
, &bottom
, &lrc
);
Wauxcursor(w
->ww_win
, 0, 0);
Waputc(top
, 0, w
->ww_win
);
Waputc(ulc
, 0, w
->ww_win
);
for (i
= w
->ww_o
.ncol
- 2; i
> 0; i
--)
Waputc(top
, 0, w
->ww_win
);
Waputc(top
, 0, w
->ww_win
);
Waputc(urc
, 0, w
->ww_win
);
Wauxcursor(w
->ww_win
, w
->ww_o
.nrow
- 1, 0);
Waputc(bottom
, 0, w
->ww_win
);
Waputc(llc
, 0, w
->ww_win
);
for (i
= w
->ww_o
.ncol
- 2; i
> 0; i
--)
Waputc(bottom
, 0, w
->ww_win
);
Waputc(bottom
, 0, w
->ww_win
);
Waputc(lrc
, 0, w
->ww_win
);
Wauxcursor(w
->ww_win
, 0, 0);
Waputc(left
, 0, w
->ww_win
);
Waputc(ulc
, 0, w
->ww_win
);
for (i
= 1; i
< w
->ww_o
.nrow
- 1; i
++) {
Wauxcursor(w
->ww_win
, i
, 0);
Waputc(left
, 0, w
->ww_win
);
Wauxcursor(w
->ww_win
, w
->ww_o
.nrow
- 1, 0);
Waputc(left
, 0, w
->ww_win
);
Waputc(llc
, 0, w
->ww_win
);
Wauxcursor(w
->ww_win
, 0, w
->ww_o
.ncol
- 1);
Waputc(right
, 0, w
->ww_win
);
Waputc(urc
, 0, w
->ww_win
);
for (i
= 1; i
< w
->ww_o
.nrow
- 1; i
++) {
Wauxcursor(w
->ww_win
, i
, w
->ww_o
.ncol
- 1);
Waputc(left
, 0, w
->ww_win
);
Wauxcursor(w
->ww_win
, w
->ww_o
.nrow
- 1, w
->ww_o
.ncol
- 1);
Waputc(right
, 0, w
->ww_win
);
Waputc(lrc
, 0, w
->ww_win
);
wwcheckframe(flag
, x
, a
, b
, w
)
for (; w
; w
= w
->ww_next
) {
bb
= w
->ww_o
.col
+ w
->ww_o
.ncol
- 1;
xx
= w
->ww_o
.row
+ w
->ww_o
.nrow
- 1;
bb
= w
->ww_o
.col
+ w
->ww_o
.ncol
- 1;
bb
= w
->ww_o
.row
+ w
->ww_o
.nrow
- 1;
xx
= w
->ww_o
.col
+ w
->ww_o
.ncol
- 1;
bb
= w
->ww_o
.row
+ w
->ww_o
.nrow
- 1;
if (xx
!= x
|| aa
> b
|| bb
< a
)
return wwcheckframe(flag
, x
, a
, aa
, w
->ww_next
)
&& wwcheckframe(flag
, x
, bb
, b
, w
->ww_next
);
char hasbot
, hastop
, hasright
, hasleft
;
hastop
= w
->ww_o
.row
< w
->ww_i
.row
;
hasbot
= w
->ww_o
.row
+ w
->ww_o
.nrow
> w
->ww_i
.row
+ w
->ww_i
.nrow
;
hasleft
= w
->ww_o
.col
< w
->ww_i
.col
;
hasright
= w
->ww_o
.col
+ w
->ww_o
.ncol
> w
->ww_i
.col
+ w
->ww_i
.ncol
;
Wauxcursor(w
->ww_win
, 0, 0);
for (i
= 0; i
< w
->ww_o
.ncol
; i
++)
Waputc(' ', WBUF
, w
->ww_win
);
Wauxcursor(w
->ww_win
, w
->ww_o
.nrow
- 1, 0);
for (i
= 0; i
< w
->ww_o
.ncol
; i
++)
Waputc(' ', WBUF
, w
->ww_win
);
for (i
= 0; i
< w
->ww_o
.nrow
; i
++) {
Wauxcursor(w
->ww_win
, i
, 0);
Waputc(' ', WBUF
, w
->ww_win
);
for (i
= 0; i
< w
->ww_o
.nrow
; i
++) {
Wauxcursor(w
->ww_win
, i
, w
->ww_o
.ncol
- 1);
Waputc(' ', WBUF
, w
->ww_win
);
w
->ww_i
.row
= w
->ww_o
.row
;
w
->ww_i
.nrow
= w
->ww_o
.nrow
;
w
->ww_i
.col
= w
->ww_o
.col
;
w
->ww_i
.ncol
= w
->ww_o
.ncol
;
Wsetmargins(w
->ww_win
, 0, 0, w
->ww_o
.ncol
, w
->ww_o
.nrow
);