-+-+-+-+-+-+-+-+ START OF PART 203 -+-+-+-+-+-+-+-+ X bannercolourind, windowcolourind, bannercolourind,`20 X tlcolourind, brcolourind); X pos = ptk_point(0.75, 0.75); X ptk_createwindow(wsid, contentwindow, &size, &pos, "content"); X ptk_setwindowattrs(contentwindow, windowtextfont, bannertextcolourind, X bannercolourind, windowcolourind, bannercolourind,`20 X tlcolourind, brcolourind); X pos = ptk_point(0.75, 0.25); X ptk_createwindow(wsid, terminalwindow, &size, &pos, "terminal"); X ptk_setwindowattrs(terminalwindow, windowtextfont, bannertextcolourind, X bannercolourind, windowcolourind, bannercolourind,`20 X tlcolourind, brcolourind); X pos = ptk_point(0.5, 0.5); X ptk_createwindow(wsid, elementwindow, &size, &pos, "element"); X ptk_setwindowattrs(elementwindow, windowtextfont, bannertextcolourind, X bannercolourind, windowcolourind, bannercolourind,`20 X tlcolourind, brcolourind); X ptk_setwindowtype(topologywindow, PTKETOPOLOGYWINDOW); X ptk_setwindowtype(contentwindow, PTKECONTENTWINDOW);`20 X ptk_setwindowtype(terminalwindow, PTKETERMINALWINDOW);`20 X ptk_postwindow(structwindow); X ptk_postwindow(terminalwindow);`20 X ptk_postwindow(topologywindow); X ptk_postwindow(contentwindow); X X /* set up menus */ X makemenus(); X X ptk_inqmaxdevicecoords3(debugwsid, &devx, &devy, &devz); X echoarea = ptk_limit(0.0, devx * 0.5, 0.0, devy * 0.05); X setupdebugger(); X X /* make a copy of the structure network so that`20 X ** deposit doesn't affect the original. X */ X copynetwork(stid); `20 X X /* set up debugger traversal */ X initialisedebugger(stid); X X ptk_settslstart(getcopystid(stid), 0); X ptk_tsltraversenext(); X X /* interaction loop */ X debugmainloop(); X X /* tidy up before exit */ X ptk_delwindow(structwindow); X ptk_delwindow(topologywindow); X ptk_delwindow(contentwindow); X ptk_delwindow(terminalwindow); X ptk_delwindow(elementwindow); X X ptk_delstring("windowid", "dbg$structwindow"); X ptk_delstring("windowid", "dbg$topologywindow"); X ptk_delstring("windowid", "dbg$contentwindow"); X ptk_delstring("windowid", "dbg$terminalwindow"); X ptk_delstring("windowid", "dbg$elementwindow"); X X ptk_delmenu(debugmenuid); X ptk_delmenu(windowmenuid); X ptk_delmenu(topologymenuid); X ptk_delmenu(contentmenuid); X ptk_delmenu(structmenuid);`20 X ptk_delmenu(terminalmenuid); X ptk_delmenu(toptypemenuid); X ptk_delmenu(tslmenuid); X ptk_delmenu(tsl2menuid); X X ptk_delstring("menuid", "debugmenu"); X ptk_delstring("menuid", "windowmenu"); X ptk_delstring("menuid", "topologymenu"); X ptk_delstring("menuid", "contentmenu"); X ptk_delstring("menuid", "structmenu");`20 X ptk_delstring("menuid", "terminalmenu"); X ptk_delstring("menuid", "toptypemenu"); X ptk_delstring("menuid", "tslmenu"); X ptk_delstring("menuid", "tsl2menu"); X X ptk_delmenu(rot3d1); X ptk_delmenu(rot3d2); X ptk_delmenu(rot2d1); X ptk_delmenu(rot2d2); X ptk_delmenu(rot1d); X X ptk_delstring("menuid", "rotator3d1"); X ptk_delstring("menuid", "rotator3d2"); X ptk_delstring("menuid", "rotator2d1"); X ptk_delstring("menuid", "rotator2d2"); X ptk_delstring("menuid", "rotator1d"); X X ptk_deltopology(topology); X X deletecopynetwork(); X clearstructid(); X pdelstruct(elemcontent); X pdelstruct(elembuffer); X pdelstruct(structcontent); X X /* unstack TSL */ X ptk_tsltraversetoend(); X ptk_unstacktsl(); X X /* free break/trace points */ X ptr = stpoints; X while (ptr != NULL) X `7B X temp = ptr->next; X free(ptr->bkpts); X free(ptr->tcpts); X free(ptr); X ptr = temp; X `7D `20 X X /* repost all menus, windows and other structs */ X for (i = 0; i < structs.number; i++) X ppoststruct(wsid, structs.postings`5Bi`5D.id, structs.postings`5Bi`5D.pr Viority); X for (i = 0; i < pwindows.number; i++) X ptk_postwindow(pwindows.integers`5Bi`5D); X for (i = 0; i < pmenus.number; i++) X ptk_postmenu(wsid, pmenus.integers`5Bi`5D); X free(structs.postings); X free(pmenus.integers); X free(pwindows.integers); X X /* background colour */ X psetcolourrep(wsid, 0, &backrep); X X predrawallstruct(wsid, PALWAYS); X X /* restore display update state */ X psetdisplayupdatest(wsid, defmode, modmode);`20 X`7D /* ptk_debugger */ X X/*-------------------------------------------------------------------------- V*/ X X/*function:external*/ Xextern void ptk_setdebuggerattrs(C(Pint) menufont,`20 X C(Pint) windowfont, C(Pint) menucol, C(Pint) menutextcol,`20 X C(Pint) windowcol, C(Pint) bannercol, C(Pint) bannertextcol,`2 V0 X C(Pint) tlcol, C(Pint) brcol, C(Pint) arrowcol, C(Pint) arrowedgecol) XPreANSI(Pint menufont) XPreANSI(Pint windowfont) XPreANSI(Pint menucol) XPreANSI(Pint menutextcol) XPreANSI(Pint windowcol) XPreANSI(Pint bannercol) XPreANSI(Pint bannertextcol) XPreANSI(Pint tlcol) XPreANSI(Pint brcol) XPreANSI(Pint arrowcol) XPreANSI(Pint arrowedgecol) X/* X** \parambegin X** \param`7BPint`7D`7Bmenufont`7D`7Bmenu text font`7D`7BIN`7D X** \param`7BPint`7D`7Bwindowfont`7D`7Bwindow text font`7D`7BIN`7D X** \param`7BPint`7D`7Bmenucol`7D`7Bmenu colour index`7D`7BIN`7D X** \param`7BPint`7D`7Bmenutextcol`7D`7Bmenu text colour index`7D`7BIN`7D X** \param`7BPint`7D`7Bwindowcol`7D`7Bwindow interior colour index`7D`7BIN`7D X** \param`7BPint`7D`7Bbannercol`7D`7Bwindow banner colour index`7D`7BIN`7D X** \param`7BPint`7D`7Bbannertextcol`7D`7Bwindow banner text colour index`7D` V7BIN`7D X** \param`7BPint`7D`7Btlcol`7D`7Btop-left colour index`7D`7BIN`7D X** \param`7BPint`7D`7Bbrcol`7D`7Bbottom-right colour index`7D`7BIN`7D X** \param`7BPint`7D`7Barrowcol`7D`7Barrow colour index`7D`7BIN`7D X** \param`7BPint`7D`7Barrowedgecol`7D`7Barrow edge colour index`7D`7BIN`7D X** \paramend X** \blurb`7BThis function enables an application to set X** the fonts and colours of menus and windows in the PHIGS debugger.`7D X*/ X`7B X menutextfont = menufont; X windowtextfont = windowfont; X menucolourind = menucol; X windowcolourind = windowcol; X menutextcolourind = menutextcol; X bannercolourind = bannercol; X bannertextcolourind = bannertextcol; X tlcolourind = tlcol; X brcolourind = brcol; X arrowcolourind = arrowcol; X arrowedgecolourind = arrowedgecol; X`7D /* ptk_setdebuggerattrs */ X X/*-------------------------------------------------------------------------- V*/ X X/*function:external*/ Xextern void ptk_inqdebuggerattrs(C(Pint *) menufont, C(Pint *) windowfont,`2 V0 X C(Pint *) menucol, C(Pint *) menutextcol, C(Pint *) windowcol,`20 X C(Pint *) bannercol, C(Pint *) bannertextcol, C(Pint *) tlcol,`20 X C(Pint *) brcol, C(Pint *) arrowcol, C(Pint *) arrowedgecol) XPreANSI(Pint *menufont) XPreANSI(Pint *windowfont) XPreANSI(Pint *menucol) XPreANSI(Pint *menutextcol) XPreANSI(Pint *windowcol) XPreANSI(Pint *bannercol) XPreANSI(Pint *bannertextcol) XPreANSI(Pint *tlcol) XPreANSI(Pint *brcol) XPreANSI(Pint *arrowcol) XPreANSI(Pint *arrowedgecol) X/* X** \parambegin X** \param`7BPint *`7D`7Bmenufont`7D`7Bmenu text font`7D`7BIN`7D X** \param`7BPint *`7D`7Bwindowfont`7D`7Bwindow text font`7D`7BIN`7D X** \param`7BPint *`7D`7Bmenucol`7D`7Bmenu colour index`7D`7BIN`7D X** \param`7BPint *`7D`7Bmenutextcol`7D`7Bmenu text colour index`7D`7BIN`7D X** \param`7BPint *`7D`7Bwindowcol`7D`7Bwindow interior colour index`7D`7BIN` V7D X** \param`7BPint *`7D`7Bbannercol`7D`7Bwindow banner colour index`7D`7BIN`7D X** \param`7BPint *`7D`7Bbannertextcol`7D`7Bwindow banner text colour index`7 VD`7BIN`7D X** \param`7BPint *`7D`7Btlcol`7D`7Btop-left colour index`7D`7BIN`7D X** \param`7BPint *`7D`7Bbrcol`7D`7Bbottom-right colour index`7D`7BIN`7D X** \param`7BPint *`7D`7Barrowcol`7D`7Barrow colour index`7D`7BIN`7D X** \param`7BPint *`7D`7Barrowedgecol`7D`7Barrow edge colour index`7D`7BIN`7D X** \paramend X** \blurb`7BThis function may be used to obtain the text font and`20 X** colour attribute values of menus and windows used in the PHIGS debugger.` V7D X*/ X`7B X *menufont = menutextfont; X *windowfont = windowtextfont; X *menucol = menucolourind; X *windowcol = windowcolourind; X *menutextcol = menutextcolourind; X *bannercol = bannercolourind; X *bannertextcol = bannertextcolourind; X *tlcol = tlcolourind; X *brcol = brcolourind; X *arrowcol = arrowcolourind; X *arrowedgecol = arrowedgecolourind; X`7D /* ptk_inqdebuggerattrs */ X X/*-------------------------------------------------------------------------- V*/ X X/* end of dbug.c */ $ CALL UNPACK [.SOURCE.LIBRARY]DBUG.C;2 2093308 $ create 'f' X/* PHIGS enumerate typedefs */ X Xstatic Pchar *Pwsdepnames`5B`5D = X`7B X "WORKSTATION_INDEPENDENT", "WORKSTATION_DEPENDENT" X`7D; X Xstatic Pchar *Psystemstatenames`5B`5D =`20 X`7B X "PHCL", "PHOP" X`7D; X Xstatic Pchar *Pwsstatenames`5B`5D =`20 X`7B X "WSCL", "WSOP" X`7D; X Xstatic Pchar *Pstructstatenames`5B`5D = X`7B X "STCL", "STOP" X`7D; X Xstatic Pchar *Pstructstatusnames`5B`5D = X`7B X "NON_EXISTENT", "EMPTY", "NOTEMPTY" X`7D; X Xstatic Pchar *Parchivestatenames`5B`5D = X`7B X "ARCL", "AROP" X`7D; X Xstatic Pchar *Pwsclassnames`5B`5D = X`7B X "VECTOR", "RASTER", "OTHER" X`7D; X Xstatic Pchar *Pwscatnames`5B`5D = X`7B X "OUTPUT", "INPUT", "OUTIN", "MO", "MI" X`7D; X Xstatic Pchar *Pcontrolnames`5B`5D = X`7B X "CONDITIONALLY", "ALWAYS" X`7D; X Xstatic Pchar *Psimultevnames`5B`5D = X`7B X "NOMORE", "MORE" X`7D; X Xstatic Pchar *Pstructnetsrcnames`5B`5D = X`7B X "CSS", "ARCHIVE" X`7D; X Xstatic Pchar *Pdspsurfnames`5B`5D = X`7B X "EMPTY", "NOTEMPTY" X`7D; X Xstatic Pchar *Pvisualrepnames`5B`5D = X`7B X "CORRECT", "DEFERRED", "SIMULATED" X`7D; X Xstatic Pchar *Pedgefnames`5B`5D = X`7B X "OFF", "ON" X`7D; X Xstatic Pchar *Pattridnames`5B`5D = X`7B X "LINETYPE", X "LINEWIDTH_SCALE_FACTOR", X "POLYLINE_COLOUR_INDEX", X "MARKERTYPE", X "MARKERSIZE_SCALE_FACTOR", X "POLYMARKER_COLOUR_INDEX", X "TEXT_FONT", X "TEXT_PRECISION", X "CHARACTER_EXPANSION_FACTOR", X "CHARACTER_SPACING", X "TEXT_COLOUR_INDEX", X "INTERIOR_STYLE", X "INTERIOR_STYLE_INDEX", X "INTERIOR_COLOUR_INDEX", X "EDGE_FLAG", X "EDGETYPE", X "EDGEWIDTH_SCALE_FACTOR", X "EDGE_COLOUR_INDEX" X`7D; X Xstatic Pchar *Pasfnames`5B`5D = X`7B X "BUNDLED", "INDIVIDUAL" X`7D; X Xstatic Pchar *Pcoavailnames`5B`5D = X`7B X "COLOUR", "MONOCHROME" X`7D; X Xstatic Pchar *Pclipnames`5B`5D = X`7B X "CLIP", "NOCLIP" X`7D; X Xstatic Pchar *Pvprinames`5B`5D = X`7B X "HIGHER", "LOWER" X`7D; X Xstatic Pchar *Ppfcfnames`5B`5D = X`7B X "POLYLINE", "FILL_AREA", "FILL_AREA_SET" X`7D; X Xstatic Pchar *Ppathordernames`5B`5D = X`7B X "TOPFIRST", "BOTTOMFIRST" X`7D; X Xstatic Pchar *Pimodenames`5B`5D = X`7B X "REQUEST", "SAMPLE", "EVENT" X`7D; X Xstatic Pchar *Peswnames`5B`5D = X`7B X "ECHO", "NOECHO" X`7D; X Xstatic Pchar *Pistatusnames`5B`5D = X`7B X#ifdef SUN X "OK", "NONE" X#endif X#ifdef VMS X "NONE", "OK" X#endif X`7D; X Xstatic Pchar *Pchoicestatusnames`5B`5D = X`7B X#ifdef VMS X "blank", X#endif X "OK", "NOCHOICE" X`7D; X Xstatic Pchar *Pqchoicestatusnames`5B`5D = X`7B X#ifdef SUN X "OK", "NOCHOICE", "NONE" X#endif X#ifdef VMS X "NONE", "OK", "NOCHOICE" X#endif X`7D; X Xstatic Pchar *Pqpickstatusnames`5B`5D = X`7B X#ifdef SUN X "OK", "NOPICK", "NONE" X#endif X#ifdef VMS X "NONE", "OK", "NOPICK" X#endif X`7D; X Xstatic Pchar *Ppickstatusnames`5B`5D = X`7B X#ifdef VMS X "blank", X#endif X "OK", "NOPICK" X`7D; X Xstatic Pchar *Popenstructstatusnames`5B`5D = X`7B X "NONE", "OPEN" X`7D; X Xstatic Pchar *Pfclassnames`5B`5D = X`7B X "LOCATOR", "STROKE", "VALUATOR", "CHOICE", "PICK", X "STRING" X`7D; X Xstatic Pchar *Piclassnames`5B`5D = X`7B X "NONE", "LOCATOR", "STROKE", "VALUATOR", "CHOICE",`20 X "PICK", "STRING" X`7D; X Xstatic Pchar *Pprfnames`5B`5D = X`7B X "OFF", "ON" X`7D; X Xstatic Pchar *Pinqtypenames`5B`5D = X`7B X "SET", "REALIZED" X`7D; X Xstatic Pchar *Pupdatestnames`5B`5D = X`7B X "NOTPENDING", "PENDING" X`7D; X Xstatic Pchar *Pdevunitsnames`5B`5D = X`7B X "METRES", "OTHER" X`7D; X Xstatic Pchar *Pmodtypenames`5B`5D = X`7B X "IRG", "IMM", "CBS" X`7D; X Xstatic Pchar *Peltypenames`5B`5D = X`7B X "NIL", X "POLYLINE3", X "POLYLINE", X "POLYMARKER3", X "POLYMARKER", X "TEXT3", X "TEXT", X#ifdef VMS X "ANNOTATION_TEXT_FIXED3", X "ANNOTATION_TEXT_FIXED", X#endif X "ANNOTATION_TEXT_RELATIVE3", X "ANNOTATION_TEXT_RELATIVE", X "FILL_AREA3", X "FILL_AREA", X "FILL_AREA_SET3", X "FILL_AREA_SET", X "CELL_ARRAY3", X "CELL_ARRAY", X "GENERALIZED_DRAWING_PRIMITIVE3", X "GENERALIZED_DRAWING_PRIMITIVE", X "SET_POLYLINE_INDEX", X "SET_POLYMARKER_INDEX", X "SET_TEXT_INDEX", X "SET_INTERIOR_INDEX", X "SET_EDGE_INDEX", X "SET_LINETYPE", X "SET_LINEWIDTH_SCALE_FACTOR", X "SET_POLYLINE_COLOUR_INDEX", X "SET_MARKER_TYPE", X "SET_MARKER_SIZE_SCALE_FACTOR", X "SET_MARKER_COLOUR_INDEX", X "SET_TEXT_FONT", X "SET_TEXT_PRECISION", X "SET_CHARACTER_EXPANSION_FACTOR", X "SET_CHARACTER_SPACING", X "SET_TEXT_COLOUR_INDEX", X "SET_CHARACTER_HEIGHT", X "SET_CHARACTER_UP_VECTOR", X "SET_TEXT_PATH", X "SET_TEXT_ALIGNMENT", X "SET_ANNOTATION_TEXT_CHARACTER_HEIGHT", X "SET_ANNOTATION_TEXT_CHARACTER_UP_VECTOR", X "SET_ANNOTATION_TEXT_PATH", X "SET_ANNOTATION_TEXT_ALIGNMENT", X "SET_ANNOTATION_STYLE", X "SET_INTERIOR_STYLE", X "SET_INTERIOR_STYLE_INDEX", X "SET_INTERIOR_COLOUR_INDEX", X "SET_EDGE_FLAG", X "SET_EDGETYPE", X "SET_EDGEWIDTH_SCALE_FACTOR", X "SET_EDGE_COLOUR_INDEX", X "SET_PATTERN_SIZE", X "SET_PATTERN_REFERENCE_POINT_AND_VECTORS", X "SET_PATTERN_REFERENCE_POINT", X "ADD_NAMES_TO_SET", X "REMOVE_NAMES_FROM_SET", X "SET_INDIVIDUAL_ASF", X "SET_HLHSR_IDENTIFIER", X "SET_LOCAL_MODELLING_TRANSFORMATION3", X "SET_LOCAL_MODELLING_TRANSFORMATION", X "SET_GLOBAL_MODELLING_TRANSFORMATION3", X "SET_GLOBAL_MODELLING_TRANSFORMATION", X#ifdef SUN X "SET_MODELLING_CLIPPING_VOLUME3", X#endif X "SET_MODELLING_CLIPPING_VOLUME", X "SET_MODELLING_CLIPPING_INDICATOR", X "RESTORE_MODELLING_CLIPPING_VOLUME", X "SET_VIEW_INDEX", +-+-+-+-+-+-+-+- END OF PART 203 +-+-+-+-+-+-+-+-