removed File menu commands `Empty schematic in new window` and `Empty symbol in new window` since these just create another xschem process. Added `File->Start new xschem process`. `xschem new_window` and `xschem new_symbol_window` commands removed, added `xschem new_process

This commit is contained in:
stefan schippers 2023-06-04 00:46:01 +02:00
parent e68ca0a0cc
commit ec5577c07f
6 changed files with 29 additions and 58 deletions

View File

@ -169,10 +169,8 @@ ctrl 'o' Load schematic
- 'm' Move selected obj.
shift 'N' Top level only netlist
- 'n' Hierarchical Netlist
ctrl 'n' New schematic
ctrl+shift 'N' New symbol
alt 'n' Empty schematic in new window
alt+shift 'N' Empty symbol in new window
ctrl 'n' Clear schematic
ctrl+shift 'N' Clear symbol
shift 'O' Toggle Light / Dark colorscheme
ctrl 'o' Load schematic
- 'p' Place polygon. Operation ends by placing last point over first.

View File

@ -487,6 +487,7 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
<li><kbd> abort_operation</kbd></li><pre>
Resets UI state, unselect all and abort any pending operation </pre>
<li><kbd> add_symbol_pin</kbd></li><pre>
@ -846,6 +847,9 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
a different name than symbol pin </pre>
<li><kbd> netlist</kbd></li><pre>
do a netlist of current schematic in currently defined netlist format </pre>
<li><kbd> new_process [f]</kbd></li><pre>
Start a new xschem process for a schematic.
If 'f' is given load specified schematic. </pre>
<li><kbd> new_schematic create|destroy|destroy_all|switch_win winpath file</kbd></li><pre>
Open/destroy a new tab or window
create: create new empty window or with 'file' loaded if 'file' given.
@ -857,12 +861,6 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
switch_tab: switch context to specified 'winpath' tab
Main window/tab has winpath set to .drw,
Additional windows/tabs have winpath set to .x1.drw, .x2.drw and so on...</pre>
<li><kbd> new_symbol_window [f]</kbd></li><pre>
Start a new xschem process for a symbol.
If 'f' is given load specified symbol. </pre>
<li><kbd> new_window [f]</kbd></li><pre>
Start a new xschem process for a schematic.
If 'f' is given load specified schematic. </pre>
<li><kbd> only_probes</kbd></li><pre>
dim schematic to better show highlights </pre>
<li><kbd> origin x y [zoom]</kbd></li><pre>
@ -1197,6 +1195,7 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
</ul>
<!-- TCL global variables -->

View File

@ -2186,25 +2186,13 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
copy_objects(START);
break;
}
if(key=='n' && state==Mod1Mask) /* empty schematic in new window */
{
if(xctx->semaphore >= 2) break;
tcleval("xschem new_window");
break;
}
if(key=='N' && state==(ShiftMask|Mod1Mask) ) /* empty symbol in new window */
{
if(xctx->semaphore >= 2) break;
tcleval("xschem new_symbol_window");
break;
}
if(key=='n' && state==ControlMask) /* new schematic */
if(key=='n' && state==ControlMask) /* clear schematic */
{
if(xctx->semaphore >= 2) break;
tcleval("xschem clear SCHEMATIC");
break;
}
if(key=='N' && state==(ShiftMask|ControlMask) ) /* new symbol */
if(key=='N' && state==(ShiftMask|ControlMask) ) /* clear symbol */
{
if(xctx->semaphore >= 2) break;
tcleval("xschem clear SYMBOL");

View File

@ -129,10 +129,8 @@ ctrl 'o' Load schematic
- 'm' Move selected obj.
shift 'N' Top level only netlist
- 'n' Hierarchical Netlist
ctrl 'n' New schematic
ctrl+shift 'N' New symbol
alt 'n' Empty schematic in new window
alt+shift 'N' Empty symbol in new window
ctrl 'n' Clear schematic
ctrl+shift 'N' Clear symbol
shift 'O' Toggle Light / Dark colorscheme
ctrl 'o' Load schematic
- 'p' Place polygon. Operation ends by placing last point over first.

View File

@ -2202,6 +2202,21 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
}
}
/* new_process [f]
* Start a new xschem process for a schematic.
* If 'f' is given load specified schematic. */
else if(!strcmp(argv[1], "new_process"))
{
if(argc > 2) {
char f[PATH_MAX + 100];
my_snprintf(f, S(f),"regsub {^~/} {%s} {%s/}", argv[2], home_dir);
tcleval(f);
my_strncpy(f, tclresult(), S(f));
new_xschem_process(f, 0);
} else new_xschem_process("", 0);
Tcl_ResetResult(interp);
}
/* new_schematic create|destroy|destroy_all|switch_win winpath file
* Open/destroy a new tab or window
* create: create new empty window or with 'file' loaded if 'file' given.
@ -2233,36 +2248,6 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
Tcl_SetResult(interp, s, TCL_VOLATILE);
}
}
/* new_symbol_window [f]
* Start a new xschem process for a symbol.
* If 'f' is given load specified symbol. */
else if(!strcmp(argv[1], "new_symbol_window"))
{
if(argc > 2) {
char f[PATH_MAX + 100];
my_snprintf(f, S(f),"regsub {^~/} {%s} {%s/}", argv[2], home_dir);
tcleval(f);
my_strncpy(f, tclresult(), S(f));
new_xschem_process(f, 1);
} else new_xschem_process("", 1);
Tcl_ResetResult(interp);
}
/* new_window [f]
* Start a new xschem process for a schematic.
* If 'f' is given load specified schematic. */
else if(!strcmp(argv[1], "new_window"))
{
if(argc > 2) {
char f[PATH_MAX + 100];
my_snprintf(f, S(f),"regsub {^~/} {%s} {%s/}", argv[2], home_dir);
tcleval(f);
my_strncpy(f, tclresult(), S(f));
new_xschem_process(f, 0);
} else new_xschem_process("", 0);
Tcl_ResetResult(interp);
}
else { cmd_found = 0;}
break;
case 'o': /*----------------------------------------------*/

View File

@ -5800,6 +5800,9 @@ proc build_widgets { {topwin {} } } {
$topwin.menubar.file.menu add command -label "PNG Export" -command "xschem print png" -accelerator {Ctrl+*}
$topwin.menubar.file.menu add command -label "SVG Export" -command "xschem print svg" -accelerator {Alt+*}
$topwin.menubar.file.menu add separator
$topwin.menubar.file.menu add command -label "Start new Xschem process" -accelerator {X} -command {
xschem new_process
}
$topwin.menubar.file.menu add command -label "Close schematic" -accelerator {Ctrl+W} -command {
xschem exit
}