diff --git a/src/scheduler.c b/src/scheduler.c index cdcdf4a1..21d53dd5 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -1028,9 +1028,11 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg Tcl_SetResult(interp, res, TCL_VOLATILE); } else if(!strcmp(argv[2], "fix_broken_tiled_fill")) { /* get drawing method setting (for broken GPUs) */ - if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;} Tcl_SetResult(interp, my_itoa(fix_broken_tiled_fill),TCL_VOLATILE); } + else if(!strcmp(argv[2], "fix_mouse_coord")) { /* get fix_mouse_coord setting (fix for broken RDP)*/ + Tcl_SetResult(interp, my_itoa(fix_mouse_coord),TCL_VOLATILE); + } else if(!strcmp(argv[2], "format")) { /* alternate format attribute to use in netlist (or NULL) */ if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;} if(!xctx->format ) Tcl_SetResult(interp, "",TCL_STATIC); @@ -3987,9 +3989,11 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg xctx->draw_window=atoi(argv[3]); } else if(!strcmp(argv[2], "fix_broken_tiled_fill")) { /* alternate drawing method for broken GPUs */ - if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;} fix_broken_tiled_fill = atoi(argv[3]); } + else if(!strcmp(argv[2], "fix_mouse_coord")) { /* fix for wrong mouse coords in RDP software */ + fix_mouse_coord = atoi(argv[3]); + } else if(!strcmp(argv[2], "format")) { /* set name of custom format attribute used for netlisting */ if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;} my_strdup(_ALLOC_ID_, &xctx->format, argv[3]); diff --git a/src/xschem.tcl b/src/xschem.tcl index a1e53384..d407cff4 100644 --- a/src/xschem.tcl +++ b/src/xschem.tcl @@ -6519,6 +6519,12 @@ proc build_widgets { {topwin {} } } { setup_recent_menu $topwin $topwin.menubar.file.menu add command -label {Create new window/tab} -command "xschem new_schematic create" toolbar_add FileOpen "xschem load" "Open File" $topwin + + $topwin.menubar.file.menu add command -label "Open schematic in new window/tab" \ + -command "xschem schematic_in_new_window" -accelerator Alt+E + $topwin.menubar.file.menu add command -label "Open symbol in new window/tab" \ + -command "xschem symbol_in_new_window" -accelerator Alt+I + $topwin.menubar.file.menu add command -label "Delete files" -command "xschem delete_files" -accelerator {Shift-D} $topwin.menubar.file.menu add command -label "Save" -command "xschem save" -accelerator {Ctrl+S} toolbar_add FileSave "xschem save" "Save File" $topwin @@ -6541,11 +6547,15 @@ proc build_widgets { {topwin {} } } { $topwin.menubar.file.menu add command -label "Save as symbol" \ -command "xschem saveas {} symbol" -accelerator {Ctrl+Alt+S} # added svg, png 20171022 - $topwin.menubar.file.menu add command -label "PDF/PS Export" -command "xschem print pdf" -accelerator {*} - $topwin.menubar.file.menu add command -label "PDF/PS Export Full" -command "xschem print pdf_full" - $topwin.menubar.file.menu add command -label "Hierarchical PDF/PS Export" -command "xschem hier_psprint" - $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 cascade -label "Image export" -menu $topwin.menubar.file.menu.im_exp + menu $topwin.menubar.file.menu.im_exp -tearoff 0 + $topwin.menubar.file.menu.im_exp add command -label "PDF/PS Export" -command "xschem print pdf" -accelerator {*} + $topwin.menubar.file.menu.im_exp add command -label "PDF/PS Export Full" -command "xschem print pdf_full" + $topwin.menubar.file.menu.im_exp add command -label "Hierarchical PDF/PS Export" -command "xschem hier_psprint" + $topwin.menubar.file.menu.im_exp add command -label "PNG Export" -command "xschem print png" -accelerator {Ctrl+*} + $topwin.menubar.file.menu.im_exp 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 @@ -6602,13 +6612,26 @@ proc build_widgets { {topwin {} } } { -command { xschem redraw } $topwin.menubar.option.menu add separator + $topwin.menubar.option.menu add checkbutton -label "Fix for GPUs with broken tiled fill" \ + -variable fix_broken_tiled_fill \ + -command { + if { $fix_broken_tiled_fill == 1} { + xschem set fix_broken_tiled_fill 1 + } else { + xschem set fix_broken_tiled_fill 0 + } + xschem resetwin 1 1 1 0 0 + xschem redraw + } + $topwin.menubar.option.menu add checkbutton -label "Fix broken RDP mouse coordinates" \ + -variable fix_mouse_coord -command {xschem set fix_mouse_coord $fix_mouse_coord} + + $topwin.menubar.option.menu add separator $topwin.menubar.option.menu add cascade -label "Netlist format / Symbol mode" \ -menu $topwin.menubar.option.menu.netlist menu $topwin.menubar.option.menu.netlist -tearoff 0 - - $topwin.menubar.option.menu.netlist add checkbutton -label "Flat netlist" -variable flat_netlist \ -accelerator : \ -command { @@ -6649,10 +6672,6 @@ proc build_widgets { {topwin {} } } { $topwin.menubar.edit.menu add command -label "Delete" -command "xschem delete" -accelerator Del toolbar_add EditDelete "xschem delete" "Delete" $topwin $topwin.menubar.edit.menu add command -label "Select all" -command "xschem select_all" -accelerator Ctrl+A - $topwin.menubar.edit.menu add command -label "Edit schematic in new window/tab" \ - -command "xschem schematic_in_new_window" -accelerator Alt+E - $topwin.menubar.edit.menu add command -label "Edit symbol in new window/tab" \ - -command "xschem symbol_in_new_window" -accelerator Alt+I $topwin.menubar.edit.menu add command -label "Duplicate objects" -command "xschem copy_objects" -accelerator C toolbar_add EditDuplicate "xschem copy_objects" "Duplicate objects" $topwin $topwin.menubar.edit.menu add command -label "Move objects" -command "xschem move_objects" -accelerator M @@ -6734,18 +6753,6 @@ proc build_widgets { {topwin {} } } { if { $draw_window == 1} { xschem set draw_window 1} else { xschem set draw_window 0} } - $topwin.menubar.view.menu add checkbutton -label "Fix for GPUs with broken tiled fill" \ - -variable fix_broken_tiled_fill \ - -command { - if { $fix_broken_tiled_fill == 1} { - xschem set fix_broken_tiled_fill 1 - } else { - xschem set fix_broken_tiled_fill 0 - } - xschem resetwin 1 1 1 0 0 - xschem redraw - } - $topwin.menubar.view.menu add checkbutton -label "Toggle variable line width" -variable change_lw \ -accelerator {_} $topwin.menubar.view.menu add command -label "Set line width" \