/* * Routine to top a window and then make the right redraws happen */ void wm_mktop(WORD w_handle) { GRECT t, p; if ( w_handle != gl_wtop ) { ob_order(gl_wtree, w_handle, NIL); w_getsize(WS_PREV, w_handle, &p); w_getsize(WS_CURR, w_handle, &t); draw_change(w_handle, &t); w_setsize(WS_PREV, w_handle, &p); } }
/* * Opens or closes a window. */ void wm_opcl(WORD wh, GRECT *pt, WORD isadd) { GRECT t; rc_copy(pt, &t); wm_update(TRUE); if (isadd) { D.w_win[wh].w_flags |= VF_INTREE; w_obadd(&W_TREE[ROOT], ROOT, wh); } else { ob_delete(gl_wtree, wh); D.w_win[wh].w_flags &= ~VF_INTREE; } draw_change(wh, &t); if (isadd) w_setsize(WS_PREV, wh, pt); wm_update(FALSE); }
void Circle::print() { if(info!=-1) draw_change(); }
void Triangle::print() { if(info!=-1) draw_change(); }
void wm_set(WORD w_handle, WORD w_field, WORD *pinwds) { WORD which, liketop, i; register WORD wbar; WORD osl, osz, nsl, nsz; GRECT t; WINDOW *pwin; osl = osz = nsl = nsz = 0; which = -1; /* grab the window sync */ wm_update(TRUE); pwin = &D.w_win[w_handle]; wbar = wm_gsizes(w_field, &osl, &osz); if (wbar) { pinwds[0] = max(-1, pinwds[0]); pinwds[0] = min(1000, pinwds[0]); } liketop = ( ( w_handle == gl_wtop ) || ( pwin->w_flags & VF_SUBWIN ) ); switch(w_field) { case WF_NAME: which = W_NAME; break; case WF_INFO: which = W_INFO; break; case WF_SIZTOP: ob_order(gl_wtree, w_handle, NIL); /* fall thru */ case WF_CXYWH: draw_change(w_handle, (GRECT *)&pinwds[0]); break; case WF_TOP: if (w_handle != gl_wtop) { for(i=W_TREE[ROOT].ob_head; i>ROOT; i=W_TREE[i].ob_next) { if ( (i != w_handle) && (D.w_win[i].w_owner == rlr) && (D.w_win[i].w_flags & VF_SUBWIN) && (pwin->w_flags & VF_SUBWIN) ) wm_mktop(i); } wm_mktop(w_handle); } break; case WF_NEWDESK: pwin->w_owner = rlr; desk_tree[rlr->p_pid] = gl_newdesk = *(LONG *) &pinwds[0]; desk_root[rlr->p_pid] = gl_newroot = pinwds[2]; break; case WF_HSLSIZ: pwin->w_hslsiz = pinwds[0]; break; case WF_VSLSIZ: pwin->w_vslsiz = pinwds[0]; break; case WF_HSLIDE: pwin->w_hslide = pinwds[0]; break; case WF_VSLIDE: pwin->w_vslide = pinwds[0]; break; case WF_TATTRB: if (pinwds[0] & WA_SUBWIN) pwin->w_flags |= VF_SUBWIN; else pwin->w_flags &= ~VF_SUBWIN; if (pinwds[0] & WA_KEEPWIN) pwin->w_flags |= VF_KEEPWIN; else pwin->w_flags &= ~VF_KEEPWIN; break; } if ( (wbar) && (liketop) ) { w_bldactive(w_handle); wm_gsizes(w_field, &nsl, &nsz); if ( (osl != nsl) || (osz != nsz) || (pwin->w_flags & VF_SUBWIN) ) { w_getsize(WS_TRUE, w_handle, &t); do_walk(w_handle, gl_awind, wbar + 3, MAX_DEPTH, &t); } } if (which != -1) w_strchg(w_handle, which, *(LONG *)pinwds); /* give up the sync */ wm_update(FALSE); }