#include #ifdef OLD_STYLE int ktShLs(kmFgPxM, e2Bgdy) KMqG0XxB_ kmFgPxM; EVENTPTR e2Bgdy; #else int ktShLs(KMqG0XxB_ kmFgPxM, EVENTPTR e2Bgdy) #endif { UCHAR att; UCHAR b1CYO0[8]; int type; int dlImK; int osAkY5; int osAVYu; int c1OkY5; int c1OVYu; int rnK3bk; int rnK3Mk; int rnK3bn; int rnK3Mn; int row_org; int col_org; int czhkLuFUQ0; int czhVLuFUQ0; int czhkOuFUQ0; int czhVOuFUQ0; int oiG3S1hcX = FALSE; int oiG3WxSML; int oiG3bk; int oiG3Mk; int oiG3bxTY; int oiG3MxIY; #if SCO_UNIX | ISC_UNIX int qiVmO1; #endif int dvKX; int ty, tj; int ajQbYwhKWkB; int cxmsg = XGv8GOu; ULONG uwA3Pu8O = 0L; UINT flags; UCHAR *shSXukRNX; IFORMPTR imJi; OBJECTPTR oiGi; WINDOWPTR i3Ki; ISRPTR izOi; OBJECTPTR parentp; OBJECTPTR listp; OBJECTPTR oiG3ZjFZ; IFIELDPTR imIWZ; EVENT e2Bgd; e2Bgd.type = AC_KEYPRESS; imJi = kmFgPxM->imJi; i3Ki = imJi->wnp; if (!(oiGi = imJi->cobjp)) { ajQbYwhKWkB = AC_BEEP; kmFgPxM->ayDu = BPNOACTION; goto EUl; } if (imJi->security < SGiI_Ni_tUk8) { ajQbYwhKWkB = AC_BEEP; uwA3Pu8O = UWl3HV0z; cxmsg = XGvH_aqD1Sm_z; kmFgPxM->ayDu = BPNOACTION; goto EUl; } type = oiGi->type; parentp = oiGi->parentp; row_org = i3Ki->row_org; col_org = i3Ki->col_org; ty = i3Ki->r; tj = i3Ki->c; oiG3bk = oiGi->rb; oiG3Mk = oiGi->cb; flags = oiGi->flags; if (flags & DISP_MULT_IMAGES) { izOi = (ISRPTR) parentp->datap; oiG3bxTY = izOi->vis_rowq; } else oiG3bxTY = oiGi->re - oiG3bk + 1; oiG3MxIY = oiGi->ce - oiG3Mk + 1; #if SCO_UNIX | ISC_UNIX if (_wnmemmap) { if (type == OBJ_BOX) qiVmO1 = (oiG3bxTY + oiG3MxIY) * 4; else qiVmO1 = oiG3bxTY * oiG3MxIY * 2; if (!(shSXukRNX = (UCHAR *) mem_get(qiVmO1))) goto EUl; } else shSXukRNX = b1CYO0; #else shSXukRNX = b1CYO0; #endif i3Ki->r = oiG3bk; i3Ki->c = oiG3Mk; oiG3ewIQVr(oiGi); czhkLuFUQ0 = kmFgPxM->czhkLuFUQ0; czhVLuFUQ0 = kmFgPxM->czhVLuFUQ0; czhkOuFUQ0 = kmFgPxM->czhkOuFUQ0; czhVOuFUQ0 = kmFgPxM->czhVOuFUQ0; if (flags & DISP_MULT_IMAGES) { kmFgPxM->czhkLuFUQ0 = oiG3bk; kmFgPxM->czhVLuFUQ0 = izOi->vis_cb; kmFgPxM->czhkOuFUQ0 = oiG3bk; kmFgPxM->czhVOuFUQ0 = izOi->vis_cb + izOi->vis_colq - oiG3MxIY; } else { kmFgPxM->czhkOuFUQ0 = kmFgPxM->czhkOuFUQ0 - oiG3bxTY + 1; kmFgPxM->czhVOuFUQ0 = kmFgPxM->czhVOuFUQ0 - oiG3MxIY + 1; } if (type == OBJ_RGN) { #if SCO_UNIX | ISC_UNIX if (_wnmemmap) att = LREGION; else { if (oiG3bxTY > 1 && oiG3MxIY > 1) oiGi->bdr_type = IIlKubt6; att = (UCHAR) (_p_YQ.hpDaVrDPb ? LOBJECTA : LREGION); } #else if (oiG3bxTY > 1 && oiG3MxIY > 1) oiGi->bdr_type = IIlKubt6; att = (_p_YQ.hpDaVrDPb ? LOBJECTA : LREGION); #endif } else #if SCO_UNIX | ISC_UNIX if (_wnmemmap) att = (UCHAR) (_p_YQ.hpDaVrDPb ? LOBJECTA : oiGi->att); else #endif att = USE_BLK_GRAPH; imJi->cobjp = (OBJECTPTR) NULLP; imJi->caction = AGuHFNwu2; imJi->cxmsg = XGuHFNwu2; _zBmurEMTw(XGuHFNwu2); kmFgPxM->ayDu = FThKzPq76; kmFgPxM->ayDv = 0; kmFgPxM->ayDw = 0; kmFgPxM->ayDx = 0; kmFgPxM->ayDy = 0; kmFgPxM->uwA3Pu8O = UWl30Vzx8HqGD | UWl3CL0 | UWl3CV0z | UWl3HV0z; csr_hide(); _frz_csr = TRUE; uwA3clOMMu(kmFgPxM); _tLWK2Q(oiGi, imJi); _v9cu3M(oiG3bk, oiG3Mk, att, shSXukRNX, oiGi, imJi); oiG3S1hcX = TRUE; oiG3WxSML = FALSE; dvKX = FALSE; while (!dvKX) { if (oiG3WxSML) { sw_opt(WNECHO, OFF, i3Ki); _v9cumK(oiGi->rb, oiGi->cb, shSXukRNX, oiGi, imJi); _v9cuvS(c1OkY5 - osAkY5, c1OVYu - osAVYu, oiGi); _v9cu3M(oiGi->rb, oiGi->cb, att, shSXukRNX, oiGi, imJi); sw_opt(WNECHO, ON, i3Ki); wn_updrgn(rnK3bk, rnK3Mk, rnK3bn, rnK3Mn, i3Ki); oiG3WxSML = FALSE; } kmFgPxM->uwA3Pu8O &= ~(UWl3xbz84 | UWl3xdz7uQ | UWl3yR087Ir); kmFgPxM->uwA3Pu8O |= UWl3CXj2; imJi->cobjp = oiGi; uwA3clOMMu(kmFgPxM); imJi->cobjp = (OBJECTPTR) NULLP; osAkY5 = i3Ki->r; osAVYu = i3Ki->c; e2Bgd.wmsg = (USHORT) ki(); et_proc(&e2Bgd, _sKXNtBgbiI, (PTR) kmFgPxM); if (imJi->cxmsg != XGuHFNwu2) { imJi->cxmsg = XGuHFNwu2; kmFgPxM->uwA3Pu8O |= UWl3HV0z; _zBmurEMTw(XGuHFNwu2); } c1OkY5 = i3Ki->r; c1OVYu = i3Ki->c; switch (kmFgPxM->ajQbYwhKWkB) { case AC_BEEP: beep_vv(_beeps[kmFgPxM->ayDu].duration, _beeps[kmFgPxM->ayDu].pitch); break; case AC_UP: case AC_DOWN: if (dlImK = c1OkY5 - osAkY5) { if (dlImK > 0) { rnK3bk = oiGi->rb; rnK3bn = rnK3bk + oiG3bxTY + dlImK - 1; } else { rnK3bk = oiGi->rb + dlImK; rnK3bn = oiGi->rb + oiG3bxTY - 1;; } rnK3Mk = oiGi->cb; rnK3Mn = oiGi->ce; oiG3WxSML = TRUE; } break; case AC_RIGHT: case AC_LEFT: if (dlImK = c1OVYu - osAVYu) { if (dlImK > 0) { rnK3Mk = oiGi->cb; rnK3Mn = oiGi->ce + dlImK; } else { rnK3Mk = oiGi->cb + dlImK; rnK3Mn = oiGi->ce; } rnK3bk = oiGi->rb; rnK3bn = rnK3bk + oiG3bxTY - 1; oiG3WxSML = TRUE; } break; case AC_EXIT: if (oiG3YtQWLyLi(oiGi->rb, oiGi->cb, oiGi, &parentp, imJi)) { ajQbYwhKWkB = AC_EXIT; dvKX = TRUE; #if SCO_UNIX | ISC_UNIX if (!_wnmemmap) #endif _v9cumK(oiGi->rb, oiGi->cb, shSXukRNX, oiGi, imJi); imJi->flags |= IFMALTERED; uwA3Pu8O = UWl3yR087Ir | UWl3CV0z | UWl3HV0z | UWl3CL0 | UWl3COu6tTm | UWl3xbz84; if (oiGi->parentp = parentp) listp = parentp->sub_listp; else listp = imJi->listp; } else { beep_vv(_beeps[BPNOACTION].duration, _beeps[BPNOACTION].pitch); imJi->cxmsg = XGvHyaw87Ir; _zBmurEMTw(XGvHyaw87Ir); kmFgPxM->uwA3Pu8O |= UWl3HV0z; } break; case AC_QUIT: dvKX = TRUE; ajQbYwhKWkB = AC_QUIT; _v9cumK(oiGi->rb, oiGi->cb, shSXukRNX, oiGi, imJi); oiG3S1hcX = FALSE; _v9cuvS(oiG3bk - oiGi->rb, oiG3Mk - oiGi->cb, oiGi); i3Ki->r = ty; i3Ki->c = tj; if (wn_adj(i3Ki) || i3Ki->row_org != row_org || i3Ki->col_org != col_org) uwA3Pu8O = UWl30V46 | UWl3CV0z | UWl3HV0z | UWl3CL0 | UWl3yR087Ir | UWl3xbz84; else uwA3Pu8O = UWl3CV0z | UWl3HV0z | UWl3CL0 | UWl3xbz84 | UWl3yR087Ir; i3Ki->row_org = row_org; i3Ki->col_org = col_org; listp = (parentp) ? parentp->sub_listp : imJi->listp; break; } if ((oiGi->flags & PAIRED_TEXT_FIELD) && (oiGi->type == OBJ_MEMO || oiGi->type == OBJ_FIELD)) { imIWZ = (IFIELDPTR)oiGi->datap; if (imIWZ->fld_type != F_PUSH && imIWZ->fld_type != F_MENU) { if (oiG3ZjFZ = _mFgNIMIQy(OBJ_TEXT, oiGi, imJi->listp)); { if (imIWZ->selcharpos != NOSELECT) v_chattrow(oiG3ZjFZ->rb, oiG3ZjFZ->cb + (int)imIWZ->selcharpos, 0, imIWZ->selchar_att, 1, ATT, imJi->wnp); } } } } _frz_csr = FALSE; if (type == OBJ_RGN) { oiGi->bdr_type = 0; _tLWK2Q(oiGi, imJi); } kmFgPxM->czhkLuFUQ0 = czhkLuFUQ0; kmFgPxM->czhVLuFUQ0 = czhVLuFUQ0; kmFgPxM->czhkOuFUQ0 = czhkOuFUQ0; kmFgPxM->czhVOuFUQ0 = czhVOuFUQ0; oiG3VrKS(oiGi, listp); imJi->cobjp = oiGi; #if SCO_UNIX | ISC_UNIX if (_wnmemmap) mem_free(shSXukRNX); #endif EUl: if (VV_ERR) { cxmsg = eyO3XxQQN5(imJi); uwA3Pu8O |= UWl3HV0z; ajQbYwhKWkB = AC_CONTINUE; } if (!_wn_csr(i3Ki)) uwA3Pu8O |= UWl3xbz01Kl88; imJi->caction = AGvH8N; imJi->cxmsg = (short) cxmsg; kmFgPxM->ajQbYwhKWkB = ajQbYwhKWkB; kmFgPxM->uwA3Pu8O = uwA3Pu8O; _jPkRrALMu = FALSE; return(1); }