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 @@
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
|