enable "preserve unchanged props" checkbutton in text edit prop dialog box
This commit is contained in:
parent
d076952bff
commit
ec29c2677a
|
|
@ -2197,18 +2197,18 @@ void place_text(int draw_text, double mx, double my)
|
|||
#endif
|
||||
|
||||
tclsetvar("props","");
|
||||
tclsetvar("txt","");
|
||||
tclsetvar("retval","");
|
||||
|
||||
if(tclgetvar("hsize")==NULL)
|
||||
tclsetvar("hsize","0.4");
|
||||
if(tclgetvar("vsize")==NULL)
|
||||
tclsetvar("vsize","0.4");
|
||||
tcleval("enter_text {text:}");
|
||||
tcleval("enter_text {text:} normal");
|
||||
|
||||
dbg(1, "place_text(): hsize=%s vsize=%s\n",tclgetvar("hsize"),
|
||||
tclgetvar("vsize") );
|
||||
|
||||
txt = (char *)tclgetvar("txt");
|
||||
txt = (char *)tclgetvar("retval");
|
||||
if(!strcmp(txt,"")) return; /* 01112004 dont allocate text object if empty string given */
|
||||
push_undo(); /* 20150327 */
|
||||
check_text_storage();
|
||||
|
|
|
|||
|
|
@ -638,49 +638,41 @@ void edit_text_property(int x)
|
|||
int customfont;
|
||||
#endif
|
||||
int sel, k, text_changed;
|
||||
int c,l;
|
||||
int c,l, preserve;
|
||||
double xx1,yy1,xx2,yy2;
|
||||
double pcx,pcy; /* pin center 20070317 */
|
||||
char property[1024];/* used for float 2 string conv (xscale and yscale) overflow safe */
|
||||
const char *strlayer;
|
||||
char *oldprop = NULL;
|
||||
|
||||
dbg(1, "edit_text_property(): entering\n");
|
||||
sel = selectedgroup[0].n;
|
||||
my_strdup(656, &oldprop, textelement[sel].prop_ptr);
|
||||
if(textelement[sel].prop_ptr !=NULL)
|
||||
tclsetvar("props",textelement[sel].prop_ptr);
|
||||
else
|
||||
tclsetvar("props",""); /* 20171112 */
|
||||
|
||||
tclsetvar("txt",textelement[sel].txt_ptr);
|
||||
tclsetvar("retval",textelement[sel].txt_ptr); /* for viewdata */
|
||||
tclsetvar("retval",textelement[sel].txt_ptr);
|
||||
my_snprintf(property, S(property), "%.16g",textelement[sel].yscale);
|
||||
tclsetvar("vsize",property);
|
||||
my_snprintf(property, S(property), "%.16g",textelement[sel].xscale);
|
||||
tclsetvar("hsize",property);
|
||||
if(x==0) tcleval("enter_text {text:}");
|
||||
if(x==0) tcleval("enter_text {text:} normal");
|
||||
else if(x==2) tcleval("viewdata $::retval");
|
||||
else if(x==1) tcleval("edit_vi_prop {Text:}");
|
||||
else {
|
||||
fprintf(errfp, "edit_text_property() : unknown parameter x=%d\n",x); exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
preserve = atoi(tclgetvar("preserve_unchanged_attrs"));
|
||||
|
||||
text_changed=0;
|
||||
if(x==0) {
|
||||
if( strcmp(textelement[sel].txt_ptr, tclgetvar("txt") ) ) {
|
||||
dbg(1, "edit_text_property(): x=0, text_changed=1\n");
|
||||
text_changed=1;
|
||||
} else {
|
||||
dbg(1, "edit_text_property(): x=0, text_changed=0\n");
|
||||
text_changed=0;
|
||||
}
|
||||
} else if(x==1) {
|
||||
|
||||
/* 20080804 */
|
||||
if(x == 0 || x == 1) {
|
||||
if( strcmp(textelement[sel].txt_ptr, tclgetvar("retval") ) ) {
|
||||
dbg(1, "edit_text_property(): x=1, text_changed=1\n");
|
||||
dbg(1, "edit_text_property(): x=%d, text_changed=1\n", x);
|
||||
text_changed=1;
|
||||
} else {
|
||||
dbg(1, "edit_text_property(): x=1, text_changed=0\n");
|
||||
dbg(1, "edit_text_property(): x=%d, text_changed=0\n", x);
|
||||
text_changed=0;
|
||||
}
|
||||
}
|
||||
|
|
@ -711,7 +703,7 @@ void edit_text_property(int x)
|
|||
|
||||
dbg(1, "edit_property(): text props: props=%s text=%s\n",
|
||||
tclgetvar("props"),
|
||||
tclgetvar("txt") );
|
||||
tclgetvar("retval") );
|
||||
if(text_changed) {
|
||||
if(current_type==SYMBOL) {
|
||||
c = lastrect[PINLAYER];
|
||||
|
|
@ -743,7 +735,7 @@ void edit_text_property(int x)
|
|||
if(x==0) /* 20080804 */
|
||||
my_strdup(71, &rect[PINLAYER][l].prop_ptr,
|
||||
subst_token(rect[PINLAYER][l].prop_ptr, "name",
|
||||
(char *) tclgetvar("txt")) );
|
||||
(char *) tclgetvar("retval")) );
|
||||
else
|
||||
my_strdup(72, &rect[PINLAYER][l].prop_ptr,
|
||||
subst_token(rect[PINLAYER][l].prop_ptr, "name",
|
||||
|
|
@ -752,26 +744,26 @@ void edit_text_property(int x)
|
|||
}
|
||||
}
|
||||
}
|
||||
if(x==0) /* 20080804 */
|
||||
my_strdup(73, &textelement[sel].txt_ptr, (char *) tclgetvar("txt"));
|
||||
else /* 20080804 */
|
||||
my_strdup(74, &textelement[sel].txt_ptr, (char *) tclgetvar("retval"));
|
||||
my_strdup(74, &textelement[sel].txt_ptr, (char *) tclgetvar("retval"));
|
||||
|
||||
}
|
||||
if(x==0) {
|
||||
my_strdup(75, &textelement[sel].prop_ptr,(char *) tclgetvar("props"));
|
||||
my_strdup(76, &textelement[sel].font, get_tok_value(textelement[sel].prop_ptr, "font", 0));/*20171206 */
|
||||
if(preserve)
|
||||
set_different_token(&textelement[sel].prop_ptr, (char *) tclgetvar("props"), oldprop, 0, 0);
|
||||
else
|
||||
my_strdup(75, &textelement[sel].prop_ptr,(char *) tclgetvar("props"));
|
||||
my_strdup(76, &textelement[sel].font, get_tok_value(textelement[sel].prop_ptr, "font", 0));/*20171206 */
|
||||
|
||||
strlayer = get_tok_value(textelement[sel].prop_ptr, "hcenter", 0);
|
||||
textelement[sel].hcenter = strcmp(strlayer, "true") ? 0 : 1;
|
||||
strlayer = get_tok_value(textelement[sel].prop_ptr, "vcenter", 0);
|
||||
textelement[sel].vcenter = strcmp(strlayer, "true") ? 0 : 1;
|
||||
strlayer = get_tok_value(textelement[sel].prop_ptr, "hcenter", 0);
|
||||
textelement[sel].hcenter = strcmp(strlayer, "true") ? 0 : 1;
|
||||
strlayer = get_tok_value(textelement[sel].prop_ptr, "vcenter", 0);
|
||||
textelement[sel].vcenter = strcmp(strlayer, "true") ? 0 : 1;
|
||||
|
||||
strlayer = get_tok_value(textelement[sel].prop_ptr, "layer", 0); /* 20171206 */
|
||||
if(strlayer[0]) textelement[sel].layer = atoi(strlayer);
|
||||
else textelement[sel].layer=-1;
|
||||
textelement[sel].xscale=atof(tclgetvar("hsize"));
|
||||
textelement[sel].yscale=atof(tclgetvar("vsize"));
|
||||
strlayer = get_tok_value(textelement[sel].prop_ptr, "layer", 0); /* 20171206 */
|
||||
if(strlayer[0]) textelement[sel].layer = atoi(strlayer);
|
||||
else textelement[sel].layer=-1;
|
||||
textelement[sel].xscale=atof(tclgetvar("hsize"));
|
||||
textelement[sel].yscale=atof(tclgetvar("vsize"));
|
||||
}
|
||||
|
||||
/* calculate bbox, some cleanup needed here */
|
||||
|
|
@ -793,6 +785,7 @@ void edit_text_property(int x)
|
|||
draw();
|
||||
bbox(END,0.0,0.0,0.0,0.0);
|
||||
}
|
||||
my_free(890, &oldprop);
|
||||
}
|
||||
|
||||
static char *old_prop=NULL;
|
||||
|
|
|
|||
|
|
@ -1485,8 +1485,8 @@ proc select_netlist_dir { force {dir {} }} {
|
|||
return $netlist_dir
|
||||
}
|
||||
|
||||
proc enter_text {textlabel} {
|
||||
global txt rcode has_cairo
|
||||
proc enter_text {textlabel {preserve_disabled disabled}} {
|
||||
global retval rcode has_cairo preserve_unchanged_attrs
|
||||
set rcode {}
|
||||
toplevel .t -class Dialog
|
||||
wm title .t {Enter text}
|
||||
|
|
@ -1497,11 +1497,16 @@ proc enter_text {textlabel} {
|
|||
# 20100203
|
||||
if { $::wm_fix } { tkwait visibility .t }
|
||||
wm geometry .t "+$X+$Y"
|
||||
label .t.txtlab -text $textlabel
|
||||
frame .t.f1
|
||||
label .t.f1.txtlab -text $textlabel
|
||||
text .t.txt -width 100 -height 12
|
||||
.t.txt delete 1.0 end
|
||||
.t.txt insert 1.0 $txt
|
||||
pack .t.txtlab .t.txt -side top -fill x
|
||||
.t.txt insert 1.0 $retval
|
||||
checkbutton .t.f1.l1 -text "preserve unchanged props" -variable preserve_unchanged_attrs -state $preserve_disabled
|
||||
pack .t.f1 -side top -fill x -expand yes
|
||||
pack .t.f1.l1 -side left
|
||||
pack .t.f1.txtlab -side left -expand yes -fill x
|
||||
|
||||
pack .t.txt -side top -fill both -expand yes
|
||||
frame .t.edit
|
||||
frame .t.edit.lab
|
||||
|
|
@ -1526,7 +1531,7 @@ proc enter_text {textlabel} {
|
|||
frame .t.buttons
|
||||
button .t.buttons.ok -text "OK" -command \
|
||||
{
|
||||
set txt [.t.txt get 1.0 {end - 1 chars}]
|
||||
set retval [.t.txt get 1.0 {end - 1 chars}]
|
||||
if {$has_cairo} {
|
||||
set hsize $vsize
|
||||
}
|
||||
|
|
@ -1535,7 +1540,7 @@ proc enter_text {textlabel} {
|
|||
}
|
||||
button .t.buttons.cancel -text "Cancel" -command \
|
||||
{
|
||||
set txt {}
|
||||
set retval {}
|
||||
set rcode {}
|
||||
destroy .t
|
||||
}
|
||||
|
|
@ -1559,14 +1564,14 @@ proc enter_text {textlabel} {
|
|||
pack .t.buttons.b4 -side left -fill x -expand yes
|
||||
pack .t.buttons -side bottom -fill x
|
||||
bind .t <Escape> {
|
||||
if ![string compare $txt [.t.txt get 1.0 {end - 1 chars}]] {
|
||||
if ![string compare $retval [.t.txt get 1.0 {end - 1 chars}]] {
|
||||
.t.buttons.cancel invoke
|
||||
}
|
||||
}
|
||||
bind .t <Control-Return> {.t.buttons.ok invoke}
|
||||
#grab set .t
|
||||
tkwait window .t
|
||||
return $txt
|
||||
return $retval
|
||||
}
|
||||
|
||||
# evaluate a tcl command from GUI
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
v {xschem version=2.9.5_RC5 file_version=1.1}
|
||||
v {xschem version=2.9.7 file_version=1.2}
|
||||
G {type=subcircuit
|
||||
format="@name @pinlist @symname"
|
||||
verilog_stop=true
|
||||
|
|
|
|||
Loading…
Reference in New Issue