// pagecom.sr get "BRAVO1.DF"; get "ST.DF"; get "MSG.DF"; get "DISPLAY.DF"; get "ALTOFILESYS.D"; get "FONT.DF"; get "VM.DF"; get "COM.DF"; get "HARDCOPY.DF"; // Incoming Procedures external [ errhlt DefaultHo mapcp CpParseDocProf CpFormatPage ult umin setupdate invalidatewindow // getfontc errhlta SplitWw updatewindow underline setsel umax SetRegionSys updatedisplay ]; // Incoming Statics external [ mpWwWwd vfDiablomode rgmaccp vcplast // mpfunmagi // mpfunfddfaulted mpfnof vmapstatus parsacred macww rgyfirst vxleftmargstd dcpendofdoc ]; // Outgoing Procedures external [ PageCom; ]; // Outgoing Statics // external // Local Statics // static // Local Manifests // manifest // P A G E C O M let PageCom(cf) = valof [ let sel = cf>>CF.sel let doc = sel>>SEL.doc let wwSel = sel>>SEL.ww let wwgroup = (mpWwWwd ! wwSel)>>WWD.wwgroup let wwUpper = wwgroup + 1 let wwdUpper = mpWwWwd ! wwUpper if wwdUpper>>WWD.wwgroup ne wwgroup then errhlt("wwg") let wwLower = wwUpper + 1 let wwdLower = mpWwWwd ! wwLower let ymlt = vfDiablomode ? pttodmlt, pttoemlt let ydiv = vfDiablomode ? pttoddiv, pttoediv let ho = vec lnho let cpFDisplUpper = sel>>SEL.cpfirst SetRegionSys(risyscom, 167) let fColumnBound = false vmapstatus = statusblind mapcp(doc, 0, parneeded) test parsacred>>PAR.control ifso [ let tcp = CpParseDocProf(ho, doc, 0) if tcp eq cpnil then resultis abmsg cpFDisplUpper = umax(tcp, cpFDisplUpper) ] ifnot DefaultHo(ho) if ho>>HO.ccol ne 1 then [ SetRegionSys(risyscom, 220) ho>>HO.ccol = 1 fColumnBound = true ] updatedisplay() let cpMac = rgmaccp ! doc let cpFDisplLower = nil let cpFirstSel = CpFormatPage(wwSel, cpFDisplUpper, modehc, ho, 0, 0, 0, ymlt, ydiv, lv cpFDisplLower) if cpFirstSel eq cpnil-1 then resultis abmsg // format(wwSel, cpFirstSel, modehc) underline(0, sel) // should be uloff but no room for df sel>>SEL.ww = wwLower setsel(sel, cpFirstSel, (ult(cpFirstSel, cpMac-dcpendofdoc) ? vcplast, cpMac-1)) let fGetfonts = false // let xdUd = RoundRatio(vxleftmargstd, vmagLook, 3200) wwdUpper>>WWD.cpFDispl = cpFDisplUpper; test wwdUpper>>WWD.fHd ifso setupdate(wwUpper) ifnot [ // wwdUpper>>WWD.mag = vmagLook; // wwdUpper>>WWD.xdUd = xdUd; wwdUpper>>WWD.fHd = true; // setmag(wwUpper); invalidatewindow(wwUpper); fGetfonts = true ] test wwdLower>>WWD.wwgroup ne wwgroup % wwLower eq macww ifso [ let ydTop = rgyfirst ! wwUpper let ydBottom = rgyfirst ! wwLower let ydSplit = (ydTop + ydBottom) rshift 1 let wgd = vec lwgd wgd>>WGDTABLE.cww = 1 wgd>>WGDTABLE.ydFirst ^ 1 = ydSplit wgd>>WGDTABLE.dyd ^ 1 = ydBottom - ydSplit wgd>>WGDTABLE.doc ^ 1 = doc wgd>>WGDTABLE.cpFDispl ^ 1 = cpFDisplLower wgd>>WGDTABLE.bonw ^ 1 = 0 wgd>>WGDTABLE.fHd ^ 1 = true wgd>>WGDTABLE.xdUd ^ 1 = vxleftmargstd rshift 5 wgd>>WGDTABLE.mag ^ 1 = 100 fGetfonts = true SplitWw(ydSplit, wgd, wwLower+1) wwdLower = mpWwWwd ! wwLower wwdLower>>WWD.wwgroup = wwgroup ] ifnot [ wwdLower>>WWD.cpFDispl = cpFDisplLower; test wwdLower>>WWD.fHd ifso setupdate(wwLower) ifnot [ // wwdLower>>WWD.mag = vmagLook; // wwdLower>>WWD.xdUd = xdUd; wwdLower>>WWD.fHd = true; // setmag(wwLower); invalidatewindow(wwLower); fGetfonts = true ] ] // if fGetfonts then // [ // for fun = 0 to maxfun-1 do // if (mpfunmagi ! fun ne -1) & // (mpfunfddfaulted ! fun ne -1) then // getfontc(fun); // if mpfnof ! fnfontw eq -1 then // errhlta(206); // ] // "Last command was . . . " SetRegionSys(risyspast, 25, (fColumnBound ? 220, 167)) resultis abmsg; ]