mirror of
git://projects.qi-hardware.com/fped.git
synced 2024-11-22 14:31:53 +02:00
In the GUI, pad names were always centered on the pad. In the case of
through-hole pads, this could easily make them disappear into the hole. We now draw them outside the hole. - gui_inst.c: when showing through-hole pads, gui_draw_pad_text now places the pad name into the largest area of the pad outside the hole - test/frame_ref: removed redundant "with" in all titles git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5946 99fdad57-331a-0410-800a-d7fa5415bdb3
This commit is contained in:
parent
82a12023cd
commit
dc1e644da1
66
gui_inst.c
66
gui_inst.c
@ -234,20 +234,18 @@ unit_type gui_dist_pad(struct inst *self, struct coord pos, unit_type scale)
|
||||
}
|
||||
|
||||
|
||||
static void gui_draw_pad_text(struct inst *self)
|
||||
static void pad_text_in_rect(struct inst *self,
|
||||
struct coord min, struct coord max)
|
||||
{
|
||||
struct coord min = translate(self->base);
|
||||
struct coord max = translate(self->u.pad.other);
|
||||
GdkGC *gc;
|
||||
struct coord c;
|
||||
unit_type h, w;
|
||||
int rot;
|
||||
|
||||
w = self->bbox.max.x-self->bbox.min.x;
|
||||
h = self->bbox.max.y-self->bbox.min.y;
|
||||
w = max.x-min.x;
|
||||
h = max.y-min.y;
|
||||
rot = w/1.1 < h;
|
||||
gc = gc_ptext[get_mode(self)];
|
||||
sort_coord(&min, &max);
|
||||
c = add_vec(min, max);
|
||||
h = max.y-min.y;
|
||||
w = max.x-min.x;
|
||||
@ -257,6 +255,62 @@ static void gui_draw_pad_text(struct inst *self)
|
||||
}
|
||||
|
||||
|
||||
static void maximize_box(struct coord *min_box, struct coord *max_box,
|
||||
unit_type x_min, unit_type y_min, unit_type x_max, unit_type y_max)
|
||||
{
|
||||
unit_type d_box, d_new, d;
|
||||
|
||||
d_box = max_box->x-min_box->x;
|
||||
d = max_box->y-min_box->y;
|
||||
if (d < d_box)
|
||||
d_box = d;
|
||||
|
||||
d_new = x_max-x_min;
|
||||
d = y_max-y_min;
|
||||
if (d < d_new)
|
||||
d_new = d;
|
||||
|
||||
if (d_new < d_box)
|
||||
return;
|
||||
|
||||
min_box->x = x_min;
|
||||
min_box->y = y_min;
|
||||
max_box->x = x_max;
|
||||
max_box->y = y_max;
|
||||
}
|
||||
|
||||
|
||||
static void gui_draw_pad_text(struct inst *self)
|
||||
{
|
||||
struct coord pad_min = translate(self->base);
|
||||
struct coord pad_max = translate(self->u.pad.other);
|
||||
struct coord hole_min, hole_max;
|
||||
struct coord box_min, box_max;
|
||||
|
||||
sort_coord(&pad_min, &pad_max);
|
||||
if (!self->u.pad.hole) {
|
||||
pad_text_in_rect(self, pad_min, pad_max);
|
||||
return;
|
||||
}
|
||||
|
||||
hole_min = translate(self->u.pad.hole->base);
|
||||
hole_max = translate(self->u.pad.hole->u.hole.other);
|
||||
sort_coord(&hole_min, &hole_max);
|
||||
|
||||
box_min.x = box_min.y = box_max.x = box_max.y;
|
||||
maximize_box(&box_min, &box_max,
|
||||
pad_min.x, pad_min.y, pad_max.x, hole_min.y); /* top */
|
||||
maximize_box(&box_min, &box_max,
|
||||
pad_min.x, hole_max.y, pad_max.x, pad_max.y); /* bottom */
|
||||
maximize_box(&box_min, &box_max,
|
||||
pad_min.x, pad_min.y, hole_min.x, pad_max.y); /* left */
|
||||
maximize_box(&box_min, &box_max,
|
||||
hole_max.x, pad_min.y, pad_max.x, pad_max.y); /* right */
|
||||
|
||||
pad_text_in_rect(self, box_min, box_max);
|
||||
}
|
||||
|
||||
|
||||
static GdkGC *pad_gc(const struct inst *inst, int *fill)
|
||||
{
|
||||
*fill = TRUE;
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
###############################################################################
|
||||
|
||||
fped_dump "frame reference: with \"frame\" (origin)" <<EOF
|
||||
fped_dump "frame reference: \"frame\" (origin)" <<EOF
|
||||
frame f {}
|
||||
frame f @
|
||||
EOF
|
||||
@ -20,7 +20,7 @@ EOF
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
fped_dump "frame reference: with \"%frame\" (current frame origin)" <<EOF
|
||||
fped_dump "frame reference: \"%frame\" (current frame origin)" <<EOF
|
||||
frame f {}
|
||||
%frame f @
|
||||
EOF
|
||||
@ -37,7 +37,7 @@ EOF
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
fped_dump "frame reference: with \"%frame\" (current frame vector)" <<EOF
|
||||
fped_dump "frame reference: \"%frame\" (current frame vector)" <<EOF
|
||||
frame f {}
|
||||
v: vec @(0mm, 0mm)
|
||||
%frame f v
|
||||
@ -56,7 +56,7 @@ EOF
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
fped_dump "frame reference: with \"%frame\" (other frame origin)" <<EOF
|
||||
fped_dump "frame reference: \"%frame\" (other frame origin)" <<EOF
|
||||
frame f {}
|
||||
frame g {}
|
||||
%frame f g.@
|
||||
@ -77,7 +77,7 @@ EOF
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
fped_dump "frame reference: with \"%frame\" (other frame base)" <<EOF
|
||||
fped_dump "frame reference: \"%frame\" (other frame base)" <<EOF
|
||||
frame f {}
|
||||
frame g {
|
||||
v: vec @(0mm, 0mm)
|
||||
@ -101,7 +101,7 @@ EOF
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
fped_fail "frame reference: with \"%frame\" (cycle)" <<EOF
|
||||
fped_fail "frame reference: \"%frame\" (cycle)" <<EOF
|
||||
frame f {
|
||||
}
|
||||
|
||||
@ -117,7 +117,7 @@ EOF
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
fped_dump "frame reference: with \"%frame\" (out-of-order)" <<EOF
|
||||
fped_dump "frame reference: \"%frame\" (out-of-order)" <<EOF
|
||||
frame f {
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user