-+-+-+-+-+-+-+-+ START OF PART 201 -+-+-+-+-+-+-+-+ X switch (menuitem) X `7B X case 1: /* go */`20 X ptk_unpostallmenu(debugwsid); X curmenu = 0; X do_go(); X break; X X case 2: /* step */ X do_step(); X break; X X case 3: /* step into */ X do_stepinto(); X break; X X case 4: /* examine */ X do_examine(elembuffer, 1); X break; X X case 5: /* deposit */ X if (traversalstate != PTKEDEBUGEND) X `7B X ptk_openstruct(getcopystid(currentinfo.debugstid)); X psetelemptr(currentinfo.workingelptr); X ptk_inqcurelemtype(&err, &eltype); X if (eltype != PEL_EXECUTE_STRUCTURE) X`09`7B X ptk_seteditmode(PEDIT_REPLACE); X ptk_readelem(debugwsid, &echoarea, eltype); X X ptk_closestruct(); X ptk_openstruct(elembuffer); X ptk_copyelem(getcopystid(currentinfo.debugstid),`20 X currentinfo.workingelptr); X ptk_unseteditmode(); X `7D X ptk_closestruct(); `20 X `7D X else X ptk_writelnterminal(terminalwindow, "At end of structure network."); X predrawallstruct(debugwsid, PALWAYS); X break; X X case 6: /* phinter */ X ptk_callphinter(); X break; X X case 7: /* tsl menu */`20 X ptk_setmenuposition(tslmenuid, pos); X ptk_postmenu(debugwsid, tslmenuid); X pos2 = *pos; X pos2.x += 0.1; X ptk_setmenuposition(tsl2menuid, &pos2); X ptk_postmenu(debugwsid, tsl2menuid); X predrawallstruct(debugwsid, PALWAYS); X break; X X case 8: /* restart */ X restarttraversal(); X predrawallstruct(debugwsid, PALWAYS); X break; X `7D `20 X`7D /* do_debugmenu */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void do_windowmenu(C(Pint) menuitem, C(ptkswindowoutput *) windoutput V) XPreANSI(Pint menuitem) XPreANSI(ptkswindowoutput *windoutput) X`7B X ptkboolean closed; X Ploc initloc; X Plimit echo; X Plocrec locrec; X Pqloc inputloc; X Pint err; X X if (windoutput->windowarea == PTKEWINDOWICON) X closed = TRUE; X else X closed = FALSE; X echo = ptk_limit(0.0, devx, 0.0, devy); X switch (menuitem) X `7B X case 1: /* open/close */ X if (closed) X ptk_openwindow(windoutput->windowid); X else X ptk_closewindow(windoutput->windowid); X break; X X case 2: /* move */ X `7B X initloc.view_index = 0; X if (closed) X ptk_inqiconposition(windoutput->windowid, &initloc.position, &err) V; X else X ptk_inqwindowposition(windoutput->windowid, &initloc.position,`20 X &err); X pinitloc(debugwsid, 1, &initloc, 1, &echo, &locrec); X psetlocmode(debugwsid, 1, PREQUEST, PES_ECHO); X preqloc(debugwsid, 1, &inputloc); X if (inputloc.status == PSTAT_OK) X if (closed) X ptk_seticonposition(windoutput->windowid,`20 X &inputloc.loc.position); X else X ptk_setwindowposition(windoutput->windowid,`20 X &inputloc.loc.position); X `7D X break; X X case 3: /* resize */ X `7B X Pfloat width, height; X Ppoint size; X X initloc.view_index = 0; X if (closed) X ptk_inqiconposition(windoutput->windowid, &initloc.position, &err) V; X else X ptk_inqwindowposition(windoutput->windowid, &initloc.position,`20 X &err); X#ifdef SUN X locrec.ulocpet5_datarec.ln_bundl.type = PLN_SOLID; X locrec.ulocpet5_datarec.ln_bundl.width = 1.0; X locrec.ulocpet5_datarec.ln_bundl.colour = 1; X pinitloc(debugwsid, 1, &initloc, -5, &echo, &locrec); X#endif X#ifdef VMS X locrec.locpet5_datarec.pfcf = PPF_POLYLINE; X locrec.locpet5_datarec.attr.ln.type = PINDIVIDUAL; X locrec.locpet5_datarec.attr.ln.width = PINDIVIDUAL; X locrec.locpet5_datarec.attr.ln.colour = PINDIVIDUAL; X locrec.locpet5_datarec.attr.ln.bundl.type = PLN_SOLID; X locrec.locpet5_datarec.attr.ln.bundl.width = 1.0; X locrec.locpet5_datarec.attr.ln.bundl.colour = 1; X pinitloc(debugwsid, 1, &initloc, 5, &echo, &locrec); X#endif X psetlocmode(debugwsid, 1, PREQUEST, PES_ECHO); X preqloc(debugwsid, 1, &inputloc); X if (inputloc.status == PSTAT_OK) X`09`7B X width = MAX(initloc.position.x, inputloc.loc.position.x) - X MIN(initloc.position.x, inputloc.loc.position.x); X height = MAX(initloc.position.y, inputloc.loc.position.y) - X MIN(initloc.position.y, inputloc.loc.position.y); X width *= 2.0; X height *= 2.0; X size = ptk_point(width, height); X if (closed) X ptk_seticonsize(windoutput->windowid, &size); X else X ptk_setwindowsize(windoutput->windowid, &size); X `7D X pinitloc(debugwsid, 1, &initloc, 1, &echo, &locrec); X `7D `20 X break; X X case 4: /* front */ X ptk_frontwindow(windoutput->windowid); X break; X X case 5: /* back */ X ptk_backwindow(windoutput->windowid); X break; X `7D `20 X ptk_unpostmenu(debugwsid, windowmenuid); X predrawallstruct(debugwsid, PALWAYS); X`7D /* do_windowmenu */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void do_topologymenu(C(Pint) menuitem, C(Ppoint *) pos) XPreANSI(Pint menuitem) XPreANSI(Ppoint *pos) X`7B X Ppickrec pickrec; X Plocrec locrec; X FILE *fileptr; X Pchar filename`5B80`5D; X Pint namelen; X X switch (menuitem) X `7B X case 1: /* type */ X ptk_setmenuposition(toptypemenuid, pos); X ptk_postmenu(debugwsid, toptypemenuid); X break; X X case 2: /* view */ X ptk_unpostmenu(debugwsid, topologymenuid); X do_topologyview(); X curmenu = 0; X break; X X case 3: /* tidy single */ X#ifdef VMS X pickrec.pickpet1_datarec.aperature = 0.01; X#endif X ptk_setwindowtraninputpri(topologywindow, 0, PHIGHER); X ptk_tidytopology(debugwsid, topology, PTKESINGLE, 1, 1, &pickrec,`20 X 1, 1, &locrec);`20 X ptk_setwindowtraninputpri(topologywindow, 0, PLOWER); X ptk_unpostmenu(debugwsid, topologymenuid); X curmenu = 0; X break; X X case 4: /* tidy group */ X#ifdef VMS X pickrec.pickpet1_datarec.aperature = 0.01; X#endif X ptk_setwindowtraninputpri(topologywindow, 0, PHIGHER); X ptk_tidytopology(debugwsid, topology, PTKEGROUP, 1, 1, &pickrec,`20 X 1, 1, &locrec);`20 X ptk_setwindowtraninputpri(topologywindow, 0, PLOWER); X ptk_unpostmenu(debugwsid, topologymenuid); X curmenu = 0; X break; X X case 5: /* store */ X ptk_readstring(debugwsid, "", "Input filename >", &echoarea, X 80, filename, &namelen); X if ((fileptr = fopen(filename, "w+")) != NULL) X `7B X rewind(fileptr); X ptk_storetopologylayout(fileptr, topology); X fclose(fileptr); X ptk_printfterminal(terminalwindow, "topology layout stored in %s.\n" V, filename); X `7D X break; X X case 6: /* restore */ X ptk_readstring(debugwsid, "", "Input filename >", &echoarea, X 80, filename, &namelen); X if ((fileptr = fopen(filename, "r")) != NULL) X `7B X rewind(fileptr); X ptk_restoretopologylayout(fileptr, topology); X fclose(fileptr); X ptk_printfterminal(terminalwindow, "topology layout restored from %s V.\n", filename); X `7D X break; X `7D X predrawallstruct(debugwsid, PALWAYS); `20 X`7D /* do_topologymenu */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void do_contentmenu(C(Pint) menuitem) XPreANSI(Pint menuitem) X`7B X Pint stid, elemptr; X`20 X switch (menuitem) X `7B X case 1: /* set break */ X do_pickelem(&stid, &elemptr); X if (elemptr != -1) X do_setbreakpoint(stid, elemptr); X ptk_unpostmenu(debugwsid, contentmenuid); X break; X X case 2: /* set trace */ X do_pickelem(&stid, &elemptr); X if (elemptr != -1) X do_settracepoint(stid, elemptr); X ptk_unpostmenu(debugwsid, contentmenuid); X break; X X case 3: /* cancel break */ X do_pickelem(&stid, &elemptr); X if (elemptr != -1) X do_cancelbreakpoint(stid, elemptr); X ptk_unpostmenu(debugwsid, contentmenuid); X break; X X case 4: /* cancel trace */ X do_pickelem(&stid, &elemptr); X if (elemptr != -1) X do_canceltracepoint(stid, elemptr); X ptk_unpostmenu(debugwsid, contentmenuid); X break; X X case 5: /* scroll */ X ptk_unpostmenu(debugwsid, contentmenuid); X do_scrollcontent(); X break; X `7D X predrawallstruct(debugwsid, PALWAYS); `20 X`7D /* do_contentmenu */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void do_structmenu(C(Pint) menuitem, C(Pint) windowid) XPreANSI(Pint menuitem) XPreANSI(Pint windowid) X`7B X Pintlst stlist; X X ptk_unpostmenu(debugwsid, structmenuid); X switch (menuitem) X `7B X case 1: /* camera */ X camerainterface(windowid); X break; X X case 2: /* reset */ X ptk_resetcamera(windowid); X stlist.number = 1; X if (windowid == structwindow) X stlist.integers = &debugrootstid; X else X stlist.integers = &elemcontent; X ptk_setcameraworld(windowid, &stlist); X break; X `7D `20 X predrawallstruct(debugwsid, PALWAYS); X`7D /* do_structmenu */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void do_terminalmenu(C(Pint) menuitem) XPreANSI(Pint menuitem) X`7B X ptk_unpostmenu(debugwsid, terminalmenuid); X switch (menuitem) X `7B X case 1: /* scroll */ X do_scrollterminal(); X break; X X case 2: /* clear */ X ptk_clearterminal(terminalwindow); X break; X `7D `20 X predrawallstruct(debugwsid, PALWAYS); X`7D /* do_terminalmenu */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void do_toptypemenu(C(Pint) menuitem) XPreANSI(Pint menuitem) X`7B X switch (menuitem) X `7B X case 1: /* box */ X ptk_settopologytype(topology, PTKEBOXTOPOLOGY); X break; X X case 2: /* structure */ X ptk_settopologytype(topology, PTKESTRUCTTOPOLOGY); X break; X X case 3: /* structure network */ X ptk_settopologytype(topology, PTKESTRUCTNETTOPOLOGY); X break; X `7D X ptk_unpostmenu(debugwsid, toptypemenuid); `20 X predrawallstruct(debugwsid, PALWAYS); X`7D /* do_toptypemenu */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void do_tslmenu(C(Pint) menuitem) XPreANSI(Pint menuitem) X`7B X Pint ind, colour, style, type, styleind, font, totsize, i; X Pedgef flag; X Ptxprec prec; X Ptxpath path; X Ptxalign align; X Ppoint charup; X Pfloat exp, spacing, size; X Pmatrix3 global, local; X Pintlst nameset; X Pint pickid, hlhsrid, viewindex; X Pattrid attrid; X Pasf asf; X Plimit3 bbox; X X switch (menuitem) X `7B X case 1: /* line */ X ptk_inqtslline(&ind, &type, &size, &colour); X ptk_printfterminal(terminalwindow, "line index = %d\n", ind); X ptk_printfterminal(terminalwindow, "line type = %d\n", type); X ptk_printfterminal(terminalwindow, "linewidth = %f\n", size); X ptk_printfterminal(terminalwindow, "line colour = %d\n", colour); X break; X X case 2: /* marker */ X ptk_inqtslmarker(&ind, &type, &size, &colour); X ptk_printfterminal(terminalwindow, "marker index = %d\n", ind); X ptk_printfterminal(terminalwindow, "marker type = %d\n", type); X ptk_printfterminal(terminalwindow, "marker size = %f\n", size); X ptk_printfterminal(terminalwindow, "marker colour = %d\n", colour); X break; X X case 3: /* interior */ X ptk_inqtslinterior(&ind, &style, &styleind, &colour); X ptk_printfterminal(terminalwindow, "interior index = %d\n", ind); X ptk_printfterminal(terminalwindow, "interior style = %d\n", style); X ptk_printfterminal(terminalwindow, "interior style index = %d\n", styl Veind); X ptk_printfterminal(terminalwindow, "interior colour = %d\n", colour); X break; X X case 4: /* edge */ X ptk_inqtsledge(&ind, &flag, &type, &size, &colour); X ptk_printfterminal(terminalwindow, "edge index = %d\n", ind); X ptk_printfterminal(terminalwindow, "edge flag = %d\n", style); X ptk_printfterminal(terminalwindow, "edge type = %d\n", type); X ptk_printfterminal(terminalwindow, "edgewidth = %f\n", size); X ptk_printfterminal(terminalwindow, "edge colour = %d\n", colour); X break; X X case 5: /* text */ X ptk_inqtsltext(&ind, &font, &prec, &path, &align, &colour); X ptk_printfterminal(terminalwindow, "text index = %d\n", ind); X ptk_printfterminal(terminalwindow, "text font = %d\n", font); X ptk_printfterminal(terminalwindow, "text precision = %d\n", prec); X ptk_printfterminal(terminalwindow, "text path = %d\n", path); X ptk_printfterminal(terminalwindow, "text alignment, hor = %d\n", align V.hor); X ptk_printfterminal(terminalwindow, "text alignment, ver = %d\n", align V.ver); X ptk_printfterminal(terminalwindow, "text colour = %d\n", colour); X break; X X case 6: /* annotext */ X ptk_inqtslannotext(&style, &size, &charup, &align, &path); X ptk_printfterminal(terminalwindow, "anno text style = %d\n", style); X ptk_printfterminal(terminalwindow, "anno text height= %f\n", size); X ptk_printfterminal(terminalwindow, "anno text char up = %f %f\n",`20 X charup.x, charup.y); X ptk_printfterminal(terminalwindow, "anno text alignment, hor = %d\n", V align.hor); X ptk_printfterminal(terminalwindow, "anno text alignment, ver = %d\n", V align.ver); X ptk_printfterminal(terminalwindow, "anno text path = %d\n", path); X break; X X case 7: /* char */ X ptk_inqtslchar(&exp, &spacing, &size, &charup); +-+-+-+-+-+-+-+- END OF PART 201 +-+-+-+-+-+-+-+-