Index: trunk/doc/conf/tree/editor.html =================================================================== --- trunk/doc/conf/tree/editor.html (revision 11028) +++ trunk/doc/conf/tree/editor.html (revision 11029) @@ -35,6 +35,7 @@ only_names boolean 0 lock down everything else but text so only text objects can be moved or selected thin_draw boolean 0 if set, objects on the screen are drawn as outlines (lines are drawn as center-lines). This lets you see line endpoints hidden under pins, for example. thin_draw_poly boolean 0 if set, polygons on the screen are drawn as outlines. + wireframe_draw boolean 0 if set, lines and arcs on the screen are drawn as outlines. local_ref boolean 0 use local reference for moves, by setting the mark at the beginning of each move. check_planes boolean 0 when set, only polygons and their clearances are drawn, to see if polygons have isolated regions. hide_names boolean 0 when set, element names are not drawn. Index: trunk/src/conf_core.h =================================================================== --- trunk/src/conf_core.h (revision 11028) +++ trunk/src/conf_core.h (revision 11029) @@ -48,6 +48,7 @@ CFT_BOOLEAN only_names; /* lock down everything else but text so only text objects can be moved or selected */ CFT_BOOLEAN thin_draw; /* if set, objects on the screen are drawn as outlines (lines are drawn as center-lines). This lets you see line endpoints hidden under pins, for example. */ CFT_BOOLEAN thin_draw_poly; /* if set, polygons on the screen are drawn as outlines. */ + CFT_BOOLEAN wireframe_draw; /* if set, lines and arcs on the screen are drawn as outlines. */ CFT_BOOLEAN local_ref; /* use local reference for moves, by setting the mark at the beginning of each move. */ CFT_BOOLEAN check_planes; /* when set, only polygons and their clearances are drawn, to see if polygons have isolated regions. */ CFT_BOOLEAN hide_names; /* when set, element names are not drawn. */ Index: trunk/src/draw_ly_spec.c =================================================================== --- trunk/src/draw_ly_spec.c (revision 11028) +++ trunk/src/draw_ly_spec.c (revision 11029) @@ -47,7 +47,7 @@ cctx.screen = drawn_area; cctx.grp = pcb_get_layergrp(PCB, gid); cctx.color = conf_core.appearance.color.paste; - cctx.thin = conf_core.editor.thin_draw || conf_core.editor.thin_draw_poly; + cctx.thin = conf_core.editor.thin_draw || conf_core.editor.thin_draw_poly || conf_core.editor.wireframe_draw; cctx.invert = 0; cctx.poly_before = pcb_gui->poly_before; cctx.poly_after = pcb_gui->poly_after; @@ -81,7 +81,7 @@ cctx.screen = screen; cctx.grp = pcb_get_layergrp(PCB, gid); cctx.color = conf_core.appearance.color.mask; - cctx.thin = conf_core.editor.thin_draw || conf_core.editor.thin_draw_poly; + cctx.thin = conf_core.editor.thin_draw || conf_core.editor.thin_draw_poly || conf_core.editor.wireframe_draw; cctx.invert = pcb_gui->mask_invert; cctx.poly_before = pcb_gui->poly_before; cctx.poly_after = pcb_gui->poly_after; @@ -126,7 +126,7 @@ cctx.screen = drawn_area; cctx.grp = pcb_get_layergrp(PCB, gid); cctx.color = /*PCB->Data->Layer[lid].Color*/ conf_core.appearance.color.element; - cctx.thin = conf_core.editor.thin_draw || conf_core.editor.thin_draw_poly; + cctx.thin = conf_core.editor.thin_draw || conf_core.editor.thin_draw_poly || conf_core.editor.wireframe_draw; cctx.invert = 0; cctx.poly_before = pcb_gui->poly_before; cctx.poly_after = pcb_gui->poly_after; Index: trunk/src/obj_arc.c =================================================================== --- trunk/src/obj_arc.c (revision 11028) +++ trunk/src/obj_arc.c (revision 11029) @@ -37,6 +37,7 @@ #include "move.h" #include "conf_core.h" #include "compat_misc.h" +#include "draw_wireframe.h" #include "obj_arc.h" #include "obj_arc_op.h" @@ -798,7 +799,7 @@ PCB_DRAW_BBOX(arc); - if (!conf_core.editor.thin_draw) + if (!conf_core.editor.thin_draw && !conf_core.editor.wireframe_draw) { if ((allow_term_gfx) && pcb_draw_term_need_gfx(arc)) { pcb_gui->set_line_width(Output.active_padGC, arc->Thickness); @@ -807,14 +808,20 @@ } else pcb_gui->set_line_width(Output.fgGC, arc->Thickness); + pcb_gui->set_line_cap(Output.fgGC, Trace_Cap); + pcb_gui->draw_arc(Output.fgGC, arc->X, arc->Y, arc->Width, arc->Height, arc->StartAngle, arc->Delta); } else + { pcb_gui->set_line_width(Output.fgGC, 0); + pcb_gui->set_line_cap(Output.fgGC, Trace_Cap); - pcb_gui->set_line_cap(Output.fgGC, Trace_Cap); + if(conf_core.editor.thin_draw) + pcb_gui->draw_arc(Output.fgGC, arc->X, arc->Y, arc->Width, arc->Height, arc->StartAngle, arc->Delta); - pcb_gui->draw_arc(Output.fgGC, arc->X, arc->Y, arc->Width, arc->Height, arc->StartAngle, arc->Delta); - + if(conf_core.editor.wireframe_draw) + pcb_draw_wireframe_arc(Output.fgGC,arc); + } if (arc->term != NULL) { if ((pcb_draw_doing_pinout) || PCB_FLAG_TEST(PCB_FLAG_TERMNAME, arc)) pcb_draw_delay_label_add((pcb_any_obj_t *)arc); Index: trunk/src/obj_line.c =================================================================== --- trunk/src/obj_line.c (revision 11028) +++ trunk/src/obj_line.c (revision 11029) @@ -46,6 +46,7 @@ /* TODO: maybe remove this and move lines from draw here? */ #include "draw.h" +#include "draw_wireframe.h" #include "obj_line_draw.h" #include "obj_rat_draw.h" #include "obj_pinvia_draw.h" @@ -927,7 +928,7 @@ { PCB_DRAW_BBOX(line); pcb_gui->set_line_cap(Output.fgGC, Trace_Cap); - if (!conf_core.editor.thin_draw) { + if (!conf_core.editor.thin_draw && !conf_core.editor.wireframe_draw) { if ((allow_term_gfx) && pcb_draw_term_need_gfx(line)) { pcb_gui->set_line_width(Output.active_padGC, line->Thickness); pcb_gui->draw_line(Output.active_padGC, line->Point1.X, line->Point1.Y, line->Point2.X, line->Point2.Y); @@ -935,13 +936,19 @@ } else pcb_gui->set_line_width(Output.fgGC, line->Thickness); + pcb_gui->draw_line(Output.fgGC, line->Point1.X, line->Point1.Y, line->Point2.X, line->Point2.Y); } else - pcb_gui->set_line_width(Output.fgGC, 0); + { + if(conf_core.editor.thin_draw) { + pcb_gui->set_line_width(Output.fgGC, 0); + pcb_gui->draw_line(Output.fgGC, line->Point1.X, line->Point1.Y, line->Point2.X, line->Point2.Y); + } + if(conf_core.editor.wireframe_draw) + pcb_draw_wireframe_line(Output.fgGC, line->Point1.X, line->Point1.Y, line->Point2.X, line->Point2.Y, line->Thickness); + } - pcb_gui->draw_line(Output.fgGC, line->Point1.X, line->Point1.Y, line->Point2.X, line->Point2.Y); - if (line->term != NULL) { if ((pcb_draw_doing_pinout) || PCB_FLAG_TEST(PCB_FLAG_TERMNAME, line)) pcb_draw_delay_label_add((pcb_any_obj_t *)line); Index: trunk/src/obj_pad.c =================================================================== --- trunk/src/obj_pad.c (revision 11028) +++ trunk/src/obj_pad.c (revision 11029) @@ -473,7 +473,7 @@ PCB_DRAW_BBOX(pad); - if (conf_core.editor.thin_draw || (clear && conf_core.editor.thin_draw_poly)) + if (conf_core.editor.thin_draw || (clear && conf_core.editor.thin_draw_poly) || conf_core.editor.wireframe_draw) pcb_gui->thindraw_pcb_pad(gc, pad, clear, mask); else pcb_gui->fill_pcb_pad(gc, pad, clear, mask); Index: trunk/src/obj_pinvia.c =================================================================== --- trunk/src/obj_pinvia.c (revision 11028) +++ trunk/src/obj_pinvia.c (revision 11029) @@ -1018,7 +1018,7 @@ static void _draw_pv(pcb_pin_t *pv, pcb_bool draw_hole) { - if (conf_core.editor.thin_draw) + if (conf_core.editor.thin_draw || conf_core.editor.wireframe_draw) pcb_gui->thindraw_pcb_pv(Output.fgGC, Output.fgGC, pv, draw_hole, pcb_false); else pcb_gui->fill_pcb_pv(Output.fgGC, Output.bgGC, pv, draw_hole, pcb_false); @@ -1054,7 +1054,7 @@ pcb_r_dir_t pcb_pin_clear_callback(const pcb_box_t * b, void *cl) { pcb_pin_t *pin = (pcb_pin_t *) b; - if (conf_core.editor.thin_draw || conf_core.editor.thin_draw_poly) + if (conf_core.editor.thin_draw || conf_core.editor.thin_draw_poly || conf_core.editor.wireframe_draw) pcb_gui->thindraw_pcb_pv(Output.pmGC, Output.pmGC, pin, pcb_false, pcb_true); else pcb_gui->fill_pcb_pv(Output.pmGC, Output.pmGC, pin, pcb_false, pcb_true); @@ -1090,7 +1090,7 @@ if (!PCB->SubcPartsOn && pcb_gobj_parent_subc(pv->parent_type, &pv->parent)) return PCB_R_DIR_FOUND_CONTINUE; - if (conf_core.editor.thin_draw) { + if (conf_core.editor.thin_draw || conf_core.editor.wireframe_draw) { if (!PCB_FLAG_TEST(PCB_FLAG_HOLE, pv)) { pcb_gui->set_line_cap(Output.fgGC, Round_Cap); pcb_gui->set_line_width(Output.fgGC, 0); Index: trunk/src/obj_poly.c =================================================================== --- trunk/src/obj_poly.c (revision 11028) +++ trunk/src/obj_poly.c (revision 11029) @@ -850,7 +850,7 @@ void pcb_poly_draw_(pcb_polygon_t *polygon, const pcb_box_t *drawn_area, int allow_term_gfx) { - if ((pcb_gui->thindraw_pcb_polygon != NULL) && (conf_core.editor.thin_draw || conf_core.editor.thin_draw_poly)) + if ((pcb_gui->thindraw_pcb_polygon != NULL) && (conf_core.editor.thin_draw || conf_core.editor.thin_draw_poly) || conf_core.editor.wireframe_draw) { pcb_gui->thindraw_pcb_polygon(Output.fgGC, polygon, drawn_area); } Index: trunk/src/obj_rat.c =================================================================== --- trunk/src/obj_rat.c (revision 11028) +++ trunk/src/obj_rat.c (revision 11029) @@ -246,7 +246,7 @@ if (PCB_FLAG_TEST(PCB_FLAG_VIA, rat)) { int w = rat->Thickness; - if (conf_core.editor.thin_draw) + if (conf_core.editor.thin_draw || conf_core.editor.wireframe_draw) pcb_gui->set_line_width(Output.fgGC, 0); else pcb_gui->set_line_width(Output.fgGC, w); Index: trunk/src/pcb-conf.lht =================================================================== --- trunk/src/pcb-conf.lht (revision 11028) +++ trunk/src/pcb-conf.lht (revision 11029) @@ -59,6 +59,7 @@ only_names = 0 thin_draw = 0 thin_draw_poly = 0 + wireframe_draw = 0 local_ref = 0 check_planes = 0 hide_names = 0