if selecting a waweform dataset with `t` key update text floaters that might contain the dataset information. When closing the process list dialog also close the process status sub-dialog.
This commit is contained in:
parent
4f4872fa7b
commit
2aeafac85c
|
|
@ -85,6 +85,7 @@ int there_are_floaters(void)
|
||||||
for(k = 0; k < xctx->texts; k++) {
|
for(k = 0; k < xctx->texts; k++) {
|
||||||
if(xctx->text[k].flags & TEXT_FLOATER) {
|
if(xctx->text[k].flags & TEXT_FLOATER) {
|
||||||
floaters = 1;
|
floaters = 1;
|
||||||
|
dbg(1, "text %d is a floater\n", k);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -358,10 +358,11 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int
|
||||||
/* move cursor2 */
|
/* move cursor2 */
|
||||||
/* set cursor position from master graph x-axis */
|
/* set cursor position from master graph x-axis */
|
||||||
else if(event == MotionNotify && (state & Button1Mask) && (xctx->graph_flags & 32 )) {
|
else if(event == MotionNotify && (state & Button1Mask) && (xctx->graph_flags & 32 )) {
|
||||||
|
int floaters = there_are_floaters();
|
||||||
xctx->graph_cursor2_x = G_X(xctx->mousex);
|
xctx->graph_cursor2_x = G_X(xctx->mousex);
|
||||||
if(tclgetboolvar("live_cursor2_backannotate")) {
|
if(tclgetboolvar("live_cursor2_backannotate")) {
|
||||||
backannotate_at_cursor_b_pos(r, gr);
|
backannotate_at_cursor_b_pos(r, gr);
|
||||||
if(there_are_floaters()) set_modify(-2); /* update floater caches to reflect actual backannotation */
|
if(floaters) set_modify(-2); /* update floater caches to reflect actual backannotation */
|
||||||
redraw_all_at_end = 1;
|
redraw_all_at_end = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -403,8 +404,9 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int
|
||||||
}
|
}
|
||||||
/* backannotate node values at cursor b position */
|
/* backannotate node values at cursor b position */
|
||||||
else if(key == 'a' && EQUAL_MODMASK && (xctx->graph_flags & 4)) {
|
else if(key == 'a' && EQUAL_MODMASK && (xctx->graph_flags & 4)) {
|
||||||
|
int floaters = there_are_floaters();
|
||||||
backannotate_at_cursor_b_pos(r, gr);
|
backannotate_at_cursor_b_pos(r, gr);
|
||||||
if(there_are_floaters()) set_modify(-2); /* update floater caches to reflect actual backannotation */
|
if(floaters) set_modify(-2); /* update floater caches to reflect actual backannotation */
|
||||||
redraw_all_at_end = 1;
|
redraw_all_at_end = 1;
|
||||||
}
|
}
|
||||||
/* x cursor1 toggle */
|
/* x cursor1 toggle */
|
||||||
|
|
@ -415,12 +417,13 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int
|
||||||
}
|
}
|
||||||
/* x cursor2 toggle */
|
/* x cursor2 toggle */
|
||||||
else if((key == 'b') ) {
|
else if((key == 'b') ) {
|
||||||
|
int floaters = there_are_floaters();
|
||||||
xctx->graph_flags ^= 4;
|
xctx->graph_flags ^= 4;
|
||||||
if(xctx->graph_flags & 4) {
|
if(xctx->graph_flags & 4) {
|
||||||
xctx->graph_cursor2_x = G_X(xctx->mousex);
|
xctx->graph_cursor2_x = G_X(xctx->mousex);
|
||||||
if(tclgetboolvar("live_cursor2_backannotate")) {
|
if(tclgetboolvar("live_cursor2_backannotate")) {
|
||||||
backannotate_at_cursor_b_pos(r, gr);
|
backannotate_at_cursor_b_pos(r, gr);
|
||||||
if(there_are_floaters()) set_modify(-2); /* update floater caches to reflect actual backannotation */
|
if(floaters) set_modify(-2); /* update floater caches to reflect actual backannotation */
|
||||||
redraw_all_at_end = 1;
|
redraw_all_at_end = 1;
|
||||||
} else {
|
} else {
|
||||||
need_all_redraw = 1;
|
need_all_redraw = 1;
|
||||||
|
|
@ -435,12 +438,13 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int
|
||||||
/* swap cursors */
|
/* swap cursors */
|
||||||
else if((key == 's') ) {
|
else if((key == 's') ) {
|
||||||
double tmp;
|
double tmp;
|
||||||
|
int floaters = there_are_floaters();
|
||||||
tmp = xctx->graph_cursor2_x;
|
tmp = xctx->graph_cursor2_x;
|
||||||
xctx->graph_cursor2_x = xctx->graph_cursor1_x;
|
xctx->graph_cursor2_x = xctx->graph_cursor1_x;
|
||||||
xctx->graph_cursor1_x = tmp;
|
xctx->graph_cursor1_x = tmp;
|
||||||
if(tclgetboolvar("live_cursor2_backannotate")) {
|
if(tclgetboolvar("live_cursor2_backannotate")) {
|
||||||
backannotate_at_cursor_b_pos(r, gr);
|
backannotate_at_cursor_b_pos(r, gr);
|
||||||
if(there_are_floaters()) set_modify(-2); /* update floater caches to reflect actual backannotation */
|
if(floaters) set_modify(-2); /* update floater caches to reflect actual backannotation */
|
||||||
redraw_all_at_end = 1;
|
redraw_all_at_end = 1;
|
||||||
}
|
}
|
||||||
else need_all_redraw = 1;
|
else need_all_redraw = 1;
|
||||||
|
|
@ -673,18 +677,25 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int
|
||||||
else if((key == 't') ) {
|
else if((key == 't') ) {
|
||||||
if(track_dset != -2) {
|
if(track_dset != -2) {
|
||||||
const char *unlocked = strstr(get_tok_value(r->prop_ptr, "flags", 0), "unlocked");
|
const char *unlocked = strstr(get_tok_value(r->prop_ptr, "flags", 0), "unlocked");
|
||||||
|
int floaters = there_are_floaters();
|
||||||
if(i == xctx->graph_master || !unlocked) {
|
if(i == xctx->graph_master || !unlocked) {
|
||||||
gr->dataset = track_dset;
|
gr->dataset = track_dset;
|
||||||
my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "dataset", my_itoa(track_dset)));
|
my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "dataset", my_itoa(track_dset)));
|
||||||
|
|
||||||
|
}
|
||||||
|
/* do this here to update texts printing current dataset in graph
|
||||||
|
* tcleval([xschem getprop rect 2 n dataset]) */
|
||||||
|
if(i == xctx->graph_master && floaters) {
|
||||||
|
set_modify(-2); /* update floater caches to reflect actual backannotation */
|
||||||
|
redraw_all_at_end = 1;
|
||||||
}
|
}
|
||||||
if((xctx->graph_flags & 4) && tclgetboolvar("live_cursor2_backannotate")) {
|
if((xctx->graph_flags & 4) && tclgetboolvar("live_cursor2_backannotate")) {
|
||||||
if(i == xctx->graph_master) {
|
if(i == xctx->graph_master) {
|
||||||
backannotate_at_cursor_b_pos(r, gr);
|
backannotate_at_cursor_b_pos(r, gr);
|
||||||
if(there_are_floaters()) set_modify(-2); /* update floater caches to reflect actual backannotation */
|
|
||||||
}
|
}
|
||||||
redraw_all_at_end = 1;
|
redraw_all_at_end = 1;
|
||||||
} else {
|
} else {
|
||||||
need_redraw = 1;
|
if(!redraw_all_at_end) need_redraw = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -860,6 +860,8 @@ static int edit_rect_property(int x)
|
||||||
preserve = tclgetboolvar("preserve_unchanged_attrs");
|
preserve = tclgetboolvar("preserve_unchanged_attrs");
|
||||||
if(strcmp(tclgetvar("rcode"),"") )
|
if(strcmp(tclgetvar("rcode"),"") )
|
||||||
{
|
{
|
||||||
|
int floaters = there_are_floaters();
|
||||||
|
dbg(1, "floaters=%d\n", floaters);
|
||||||
xctx->push_undo();
|
xctx->push_undo();
|
||||||
for(i=0; i<xctx->lastsel; ++i) {
|
for(i=0; i<xctx->lastsel; ++i) {
|
||||||
if(xctx->sel_array[i].type != xRECT) continue;
|
if(xctx->sel_array[i].type != xRECT) continue;
|
||||||
|
|
@ -888,21 +890,21 @@ static int edit_rect_property(int x)
|
||||||
if( (oldprop && xctx->rect[c][n].prop_ptr && strcmp(oldprop, xctx->rect[c][n].prop_ptr)) ||
|
if( (oldprop && xctx->rect[c][n].prop_ptr && strcmp(oldprop, xctx->rect[c][n].prop_ptr)) ||
|
||||||
(!oldprop && xctx->rect[c][n].prop_ptr) || (oldprop && !xctx->rect[c][n].prop_ptr)) {
|
(!oldprop && xctx->rect[c][n].prop_ptr) || (oldprop && !xctx->rect[c][n].prop_ptr)) {
|
||||||
if(!drw) {
|
if(!drw) {
|
||||||
bbox(START,0.0,0.0,0.0,0.0);
|
if(!floaters) bbox(START,0.0,0.0,0.0,0.0);
|
||||||
drw = 1;
|
drw = 1;
|
||||||
}
|
}
|
||||||
if( xctx->rect[c][n].flags & 1024) {
|
if( xctx->rect[c][n].flags & 1024) {
|
||||||
draw_image(0, &xctx->rect[c][n], &xctx->rect[c][n].x1, &xctx->rect[c][n].y1,
|
draw_image(0, &xctx->rect[c][n], &xctx->rect[c][n].x1, &xctx->rect[c][n].y1,
|
||||||
&xctx->rect[c][n].x2, &xctx->rect[c][n].y2, 0, 0);
|
&xctx->rect[c][n].x2, &xctx->rect[c][n].y2, 0, 0);
|
||||||
}
|
}
|
||||||
bbox(ADD, xctx->rect[c][n].x1, xctx->rect[c][n].y1, xctx->rect[c][n].x2, xctx->rect[c][n].y2);
|
if(!floaters) {
|
||||||
|
bbox(ADD, xctx->rect[c][n].x1, xctx->rect[c][n].y1, xctx->rect[c][n].x2, xctx->rect[c][n].y2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(drw) {
|
if(!floaters && drw) bbox(SET , 0.0 , 0.0 , 0.0 , 0.0);
|
||||||
bbox(SET , 0.0 , 0.0 , 0.0 , 0.0);
|
if(drw) draw();
|
||||||
draw();
|
if(!floaters && drw) bbox(END , 0.0 , 0.0 , 0.0 , 0.0);
|
||||||
bbox(END , 0.0 , 0.0 , 0.0 , 0.0);
|
|
||||||
}
|
|
||||||
modified = 1;
|
modified = 1;
|
||||||
}
|
}
|
||||||
my_free(_ALLOC_ID_, &oldprop);
|
my_free(_ALLOC_ID_, &oldprop);
|
||||||
|
|
|
||||||
|
|
@ -466,7 +466,14 @@ proc list_running_cmds {} {
|
||||||
button $frame3.b1 -width 16 -text {Terminate selected} -command "kill_running_cmds $lb -15" -bg yellow
|
button $frame3.b1 -width 16 -text {Terminate selected} -command "kill_running_cmds $lb -15" -bg yellow
|
||||||
button $frame3.b2 -width 16 -text {Kill selected} -command "kill_running_cmds $lb -9" -bg red
|
button $frame3.b2 -width 16 -text {Kill selected} -command "kill_running_cmds $lb -9" -bg red
|
||||||
button $frame3.b3 -width 16 -text {View status} -command "view_process_status $lb" -bg PaleGreen
|
button $frame3.b3 -width 16 -text {View status} -command "view_process_status $lb" -bg PaleGreen
|
||||||
button $frame3.b4 -width 16 -text {Dismiss} -command "destroy $top" -bg PaleGreen
|
button $frame3.b4 -width 16 -text {Dismiss} -bg PaleGreen -command "
|
||||||
|
if {\[winfo exists .pstat\]} {
|
||||||
|
after cancel [list update_process_status $lb]
|
||||||
|
destroy .pstat
|
||||||
|
}
|
||||||
|
destroy $top
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
pack $frame3.b1 $frame3.b2 $frame3.b3 $frame3.b4 -side left -fill x -expand 1
|
pack $frame3.b1 $frame3.b2 $frame3.b3 $frame3.b4 -side left -fill x -expand 1
|
||||||
pack $frame1 -fill x -expand 0
|
pack $frame1 -fill x -expand 0
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,7 @@ Output on SAOUT
|
||||||
Gaussian Threshold variation (via delvto parameter) is added to all MOS transistors.} 1110 -240 0 0 0.6 0.6 {}
|
Gaussian Threshold variation (via delvto parameter) is added to all MOS transistors.} 1110 -240 0 0 0.6 0.6 {}
|
||||||
T {.param ABSVAR=0.05
|
T {.param ABSVAR=0.05
|
||||||
delvto='agauss(0,ABSVAR,3)'} 1390 -120 0 0 0.6 0.6 {layer=8}
|
delvto='agauss(0,ABSVAR,3)'} 1390 -120 0 0 0.6 0.6 {layer=8}
|
||||||
|
T {tcleval(Dataset=\\n[xschem getprop rect 2 0 dataset])} 340 -850 0 0 0.7 0.7 {floater=xxx}
|
||||||
N 120 -470 120 -450 {lab=TEMPERAT}
|
N 120 -470 120 -450 {lab=TEMPERAT}
|
||||||
N 360 -530 390 -530 {lab=VSS}
|
N 360 -530 390 -530 {lab=VSS}
|
||||||
N 360 -500 360 -480 {lab=VSS}
|
N 360 -500 360 -480 {lab=VSS}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue