From 26e088e72978b619be4f39033c78bb12e13f29a2 Mon Sep 17 00:00:00 2001 From: stefan schippers Date: Fri, 28 Apr 2023 10:45:56 +0200 Subject: [PATCH] add graph_linewidth_mult xschemrc variable to set default multiplier for graph line width w.r.t. xschem (current) line width. Add "Line width:" entry in graph_edit_properties dialog box --- src/draw.c | 2 +- src/xschem.tcl | 28 ++++++++++++++++++++++++++-- src/xschemrc | 4 ++++ xschem_library/rom8k/rom8k.sch | 15 +++++++-------- 4 files changed, 38 insertions(+), 11 deletions(-) diff --git a/src/draw.c b/src/draw.c index efa2143e..6506a581 100644 --- a/src/draw.c +++ b/src/draw.c @@ -2264,7 +2264,7 @@ void setup_graph_data(int i, int skip, Graph_ctx *gr) gr->logx = gr->logy = 0; gr->digital = 0; gr->rainbow = 0; - gr->linewidth_mult = 2.0; + gr->linewidth_mult = tclgetdoublevar("graph_linewidth_mult"); if(!skip) { gr->gx1 = 0; diff --git a/src/xschem.tcl b/src/xschem.tcl index 2546e9ce..4d3b5847 100644 --- a/src/xschem.tcl +++ b/src/xschem.tcl @@ -1903,11 +1903,19 @@ proc update_div {graph_selected div} { xschem draw_graph $graph_selected } +proc set_graph_linewidth {graph_sel} { + global graph_linewidth_mult + set custom_lw [.graphdialog.top.lwe get] + if {[regexp {^[ \t]*$} $custom_lw]} { + set custom_lw $graph_linewidth_mult + } + xschem setprop rect 2 $graph_sel linewidth_mult $custom_lw +} proc graph_edit_properties {n} { global graph_bus graph_sort graph_digital graph_selected colors graph_sel_color global graph_unlocked graph_schname graph_logx graph_logy cadlayers graph_rainbow - + global graph_linewidth_mult xschem push_undo set geom {} if { [winfo exists .graphdialog]} { @@ -2140,6 +2148,18 @@ proc graph_edit_properties {n} { xschem draw_graph $graph_selected } } + label .graphdialog.top.lw -text " Line width:" + entry .graphdialog.top.lwe -width 4 + bind .graphdialog.top.lwe { + set_graph_linewidth $graph_selected + xschem draw_graph $graph_selected + } + set custom_lw [xschem getprop rect 2 $n linewidth_mult] + if {[regexp {^[ \t]*$} $custom_lw]} { + .graphdialog.top.lwe insert 0 $graph_linewidth_mult + } else { + .graphdialog.top.lwe insert 0 $custom_lw + } checkbutton .graphdialog.top.unlocked -text {Unlocked X axis} -variable graph_unlocked checkbutton .graphdialog.top.dig -text {Digital} -variable graph_digital -indicatoron 1 \ -command { @@ -2187,6 +2207,8 @@ proc graph_edit_properties {n} { pack .graphdialog.top.dig -side left pack .graphdialog.top.unlocked -side left pack .graphdialog.top.rainbow -side left + pack .graphdialog.top.lw -side left + pack .graphdialog.top.lwe -side left .graphdialog.top3.min insert 0 [xschem getprop rect 2 $graph_selected y1] .graphdialog.top3.max insert 0 [xschem getprop rect 2 $graph_selected y2] .graphdialog.top3.xmin insert 0 [xschem getprop rect 2 $graph_selected x1] @@ -5366,7 +5388,8 @@ set tctx::global_list { copy_cell custom_label_prefix custom_token dark_colors dark_colorscheme dim_bg dim_value disable_unique_names do_all_inst draw_grid draw_window edit_prop_pos edit_prop_size edit_symbol_prop_new_sel editprop_sympath en_hilight_conn_inst enable_dim_bg enable_stretch - filetmp flat_netlist fullscreen gaw_fd gaw_tcp_address graph_bus graph_digital graph_logx + filetmp flat_netlist fullscreen gaw_fd gaw_tcp_address graph_bus graph_digital + graph_linewidth_mult graph_logx graph_logy graph_rainbow graph_raw_level graph_schname graph_sel_color graph_sel_wave graph_selected graph_sort graph_unlocked hide_empty_graphs hide_symbols hsize incr_hilight infowindow_text input_line_cmd input_line_data launcher_default_program @@ -6485,6 +6508,7 @@ set_ne graph_rainbow 0 set_ne graph_selected {} set_ne graph_schname {} set_ne graph_raw_level -1 ;# hierarchy level where raw file has been loaded +set_ne graph_linewidth_mult 2.0 ;# default multiplier (w.r.t. xschem lines) for line width in graphs # user clicked this wave set_ne graph_sel_wave {} # flag to force simulation stop (Esc key pressed) diff --git a/src/xschemrc b/src/xschemrc index 616cffa0..e5f7befd 100644 --- a/src/xschemrc +++ b/src/xschemrc @@ -209,6 +209,10 @@ #### default: enabled (1) # set component_browser_on_top 0 +#### set graph line width multiplier with respect to xschem actual line width +#### default: 2.0 +# set graph_linewidth_mult 4.0 + ########################################################################### #### EXPORT FORMAT TRANSLATORS, PNG AND PDF ########################################################################### diff --git a/xschem_library/rom8k/rom8k.sch b/xschem_library/rom8k/rom8k.sch index 77bae26d..c669097a 100644 --- a/xschem_library/rom8k/rom8k.sch +++ b/xschem_library/rom8k/rom8k.sch @@ -46,7 +46,7 @@ ldbl[18] ldbl[34]" color="10 9 10 11 12 13 14 15 11" unitx=n jpeg_quality=35 -linewidth_mult=2.4} +hilight_wave=-1} B 2 1840 -1160 2890 -1000 {flags=graph digital=0 y1 = 0 @@ -66,7 +66,7 @@ xsa[14].ldqii" color="6 12 13 14 11 4" unitx=n jpeg_quality=35 -linewidth_mult=2.4} +} B 2 1840 -400 2890 -240 {flags=graph y1 = -0.0072 y2 = 1.6 @@ -88,9 +88,8 @@ ldwl[8] ldwl[9]" color="4 5 4 5 4 5 4 5 4 5 4" unitx=n -hilight_wave=3 -jpeg_quality=35 -linewidth_mult=2.4} +hilight_wave=-1 +jpeg_quality=35} B 2 1840 -1000 2890 -540 {flags=graph digital=1 y1 = 0 @@ -123,7 +122,7 @@ color="18 4 15 4 15 4 15 4 18 15 4 18 4 15 4 15 6" unitx=n ypos1=-2.20115 ypos2=2.79884 jpeg_quality=35 -linewidth_mult=2.4} +} B 2 1840 -1300 2890 -1160 {flags=graph y1 = 0 y2 = 1.60 @@ -138,7 +137,7 @@ xsa[0].ldsali xctrl.ldq_b" color="4 12 7 10" jpeg_quality=35 -linewidth_mult=2.4} +} B 2 1840 -240 2890 0 {flags=graph y1 = -0.049 y2 = 0.00057 @@ -154,7 +153,7 @@ color="8 7" unitx=n subdivy=4 jpeg_quality=35 -linewidth_mult=2.4} +} B 2 480 -1010 617 -950 {flags=image alpha=0.6 InvertOnExport=true