Commit Graph

3202 Commits

Author SHA1 Message Date
stefan schippers f6565977dc intuitive interface. Set xctx->mouse_moved if movement is above a certain threshold in *screen* units (actally 10pixels * tk_scaling). This avoids unintended click + move, when user just wants to click an instance. 2025-09-06 12:42:53 +02:00
stefan schippers 78fdab27fc fix typo in "".menubar entryconfigure Simulate -background" in actions.c:set_modify() 2025-09-02 21:31:08 +02:00
stefan schippers 37d74d4470 comment out a focus line in "proc set_bindings" as it prevents from focusing snap and grid entries. Will check if someone has issues with main canvas focus 2025-09-02 15:25:36 +02:00
stefan schippers 649eae6ac3 hierarchical ps/pdf export: fix embedded images rendering in sub schematics down in hierarchy 2025-09-02 02:12:47 +02:00
stefan schippers 465e715e48 add info (*BUSY*) in status bar if xschem is busy (for now: when doing logic simulation) 2025-08-28 10:00:21 +02:00
stefan schippers 7c013d2fee allow to add attribute select=attr_name also in instances to override symbol setting, will pre-select attr_name value when editing component attributes 2025-08-26 10:57:57 +02:00
stefan schippers 3e3f4bfef1 adding select=attr_name in a symbol will select the text of attr_name value when editing attributes of a placed instance of the symbol. Specifying select=* will select all the text. If select attribute in symbol is not present try to select "value, lab, name" in this order, if found. Also select all text in text objects when editing their content. 2025-08-26 10:46:50 +02:00
stefan schippers 48968f0e71 Fix: aborting a ctrl-v (paste) with escape did leave copied objects on top of previous if no second Esc was pressed 2025-08-25 09:43:34 +02:00
stefan schippers 010a31d779 easier selection of graph rectangles (click inner border), add graph resize in intuitive_interface_cheatsheet.sch 2025-08-24 17:41:00 +02:00
stefan schippers 5338deac78 add erc_open_net_is_error and erc_shorted_output_is_error xschemrc variables to turn related ERC warnings into errors (force popup ERC window) 2025-08-23 00:35:27 +02:00
stefan schippers a9e4bc1300 add `y`or `Return` and `n` hotkeys to dismiss ask save confirmation dialog 2025-08-23 00:11:10 +02:00
stefan schippers 3b08bf8f7c add Esc binding for closing view data dialogs. Add no_ask_simulate variable to avoid asking confirmation to simulate 2025-08-22 23:55:40 +02:00
stefan schippers d6d39bdb5f proc swap_tabs: fix B1-Motion event clear 2025-08-22 15:44:15 +02:00
stefan schippers f27d4b9773 ctrl-Tab: toggle to previously active tab: make it work also after new tab creation 2025-08-22 15:39:19 +02:00
stefan schippers fc6fefff35 ctrl-Tab: toggle to previously active tab (only tabbed i/f) 2025-08-22 12:09:04 +02:00
stefan schippers 61517b388f remove debug msg 2025-08-22 10:05:48 +02:00
stefan schippers d6c8ab2efc add visual feedback when dragging tabs 2025-08-22 10:04:53 +02:00
stefan schippers e64f76a4fd avoid additional "escape char eating" when rendering symbol texts (translate() + translate3() ) 2025-08-22 00:08:22 +02:00
stefan schippers 3c65268de6 do not backannotate if cursor_b is not enabled when swapping or setting with CLI the cursor_b position 2025-08-21 21:18:35 +02:00
stefan schippers 3b104995fc check if cursor-b is enabled before annotating cursor-b position after descending schematic 2025-08-21 20:49:57 +02:00
stefan schippers 07e79908f1 add Ctrl-Tab and Ctrl-Shift-Tab as aliases to ctrl-Right and ctrl-Left (switch tabs), also add wrap around (last->first or first->last). 2025-08-21 10:23:58 +02:00
stefan schippers d778a738b2 add "Waves->Load first analysis found" so xschem will load first section found in raw file (and matching following ones if any) 2025-08-20 08:53:50 +02:00
stefan schippers 0657c44e02 select by area or select by touch: select also attached objects as done in select by click or select all 2025-08-20 08:37:47 +02:00
stefan schippers 854b0969a7 fix "xschem get netlist_name" command for spectre (.spectre ext instead of .sim) 2025-08-19 12:04:20 +02:00
stefan schippers 059ac92695 fix catch command in tclvareval(....menubar entryconfigure ...) commands 2025-08-19 09:00:09 +02:00
stefan schippers cd41540c5d record_global_node(): handle ground nodes (spectre netlist only); use global=ground for nodes that need to be declared as ground nodes. Ground nodes in Spectre netlist are also considered global 2025-08-19 08:37:33 +02:00
stefan schippers 7e20ea0127 catch all calls to .menubar entruconfigure commands to change bg color of buttons to avoid errors if buttons are removed 2025-08-09 10:57:17 +02:00
stefan schippers 24ff9ab8f0 xinit.c: source tcl_files before calling load_schematic(), so "load_file_postprocess" (that is triggered by load_schematic() will work (supplied scripts are already loaded) when starting xschem 2025-08-09 10:41:03 +02:00
stefan schippers 6bf4fd4da6 vector unnamed nets are set as net%d_[%d..0] instead of net%d[%d:0] so they are compatible with spice and Vacask 2025-08-03 00:15:57 +02:00
stefan schippers 46fdeb2fd4 additions for VACASK backannotation (vsource currents). nmos4.sym updated to support Spectre netlist (Vacask simulation) 2025-08-02 12:40:43 +02:00
stefan schippers 4cf22d61a5 bump file_version to 1.3 from 1.2 (Spectre global attribute F {...}) 2025-08-01 10:37:18 +02:00
stefan schippers 06dfef3876 fix spectre.awk postprocessor (subckt instead of spice .subckt) 2025-08-01 09:52:41 +02:00
stefan schippers 68f84ea9f2 other small improvements in XSCHEM_SHAREDIR buildup in xinit.c 2025-07-28 00:12:21 +02:00
stefan schippers 9e22068651 small improvements in XSCHEM_SHAREDIR path building ( Check installed location (/path/to/bin/../share/xschem -> /path/to/share/xschem)) 2025-07-28 00:04:38 +02:00
stefan schippers 957dba4c30 if src/xschem is invoked do in-src execution even if called outside teh src/ dir 2025-07-27 10:34:24 +02:00
stefan schippers edcd141a22 updates for Vacask netlister 2025-07-25 14:53:15 +02:00
stefan schippers 6f6f4a3028 allow @model as alternative to @symname in format strings (format and spectre_format) of subcircuit symbols, where "model=something" is given in symbol template string. This allows to use subcircuit with name that is different from the filename. 2025-07-21 08:31:42 +02:00
stefan schippers aa99f1b174 add "spectre_device_model" attr in spectre netlister code 2025-07-21 07:57:14 +02:00
stefan schippers 5a3c97d64e add vccs_limit.sym and vcvs_limit.sym that use the XSPICE limit code model (saturated controlled sources). [WIP] support for spectre netlist format (for the VACASK simulator) - still incomplete 2025-07-16 00:12:26 +02:00
stefan schippers f5bd459082 add new xschemrc global variable "load_file_postprocess" that might contain tcl commands to be executed whenever a new file is loaded. 2025-07-09 10:37:18 +02:00
stefan schippers 8fe82cf4ce set netlist_dir if unset or empty before netlisting, add env(PDK) and env(PDK_ROOT) to list of tcl preserved globals in ctx switch 2025-07-02 11:18:20 +02:00
stefan schippers 2300597ca3 propagate hilight nets when descending with "Alt-e" (in new window or tab) - ***needs some testing*** 2025-06-23 09:39:46 +02:00
stefan schippers ec57806816 spice.awk: allow to expand nodes placed after an = sign as in some cdl netlists: $SUB=@@B --> $SUB=?1 B --> spice.awk --> $SUB=B 2025-05-30 21:16:48 +02:00
stefan schippers 96d2e56b53 add expr_eng(...) in addition to expr(...) to return result in engineering notation (like 3.2u) 2025-05-30 00:37:27 +02:00
stefan schippers b4283563d0 fix from_eng proc (meg was not handled correctly) 2025-05-29 21:09:43 +02:00
stefan schippers d123768fed fix from_eng proc (a comment added breaks the switch construct) 2025-05-29 21:04:47 +02:00
stefan schippers dcc64636cf propagate highlighted global nets when navigating the hierarchy 2025-05-27 09:39:06 +02:00
stefan schippers 44cbe7a9fc if selecting an element in stretch mode ("y" key) attached nets will also be (partially) selected. However allow to descend into instance. 2025-05-26 21:18:26 +02:00
stefan schippers a534218c5a completion of previous fix 2025-05-26 00:25:59 +02:00
stefan schippers c2a3c48228 make raw file selector invoked from graphdialog always on top of it (use -parent option) 2025-05-26 00:09:23 +02:00
stefan schippers ac629b62be fix again parameter substitution in instance symbol specialization (schematic=... in instance) 2025-05-22 10:02:38 +02:00
stefan schippers ee693aa49c revert calculation of expressions and parameter resolution in instance based symbol specializations. So multiple instances with same schematic=... attribute and different parameters (like WN=... WP=.... etc) can be used. 2025-05-21 01:54:46 +02:00
stefan schippers adbb3cd58d Use has_token() instead of strstr when checking token against (parent_sym_extra 2025-05-20 10:18:11 +02:00
stefan schippers 28dd3f2013 print_spice_element(): do not substitute "extra" pins in format string (like @body) with body=xxx given in parent symbol instance attributes 2025-05-20 02:51:52 +02:00
stefan schippers 9990e1b9d8 Bump Head version to 3.4.8RC 2025-05-16 16:02:47 +02:00
stefan schippers 92dd8fe5f4 remove dbg message 2025-05-14 10:02:39 +02:00
stefan schippers 718f4c8112 prepare for 3.4.7 tag 2025-05-14 09:58:55 +02:00
stefan schippers b122a8abef fix a small memory leak in delete_schematic_data() 2025-05-07 16:11:21 +02:00
stefan schippers c5705e28fc resolved_net(): resolve multiple levels of port-by-attribute propagation 2025-05-03 12:02:22 +02:00
stefan schippers 0f49e3cda7 Make xschem build with configure option --CFLAGS="-std=c23" (prepare for gcc-15 issues) 2025-05-01 23:52:53 +02:00
stefan schippers 248fb1fd73 toggle_ignore(): add xctx->prep_hash_inst=0, xctx->prep_net_structs=0, xctx->prep_hi_structs=0 at end of operations 2025-04-30 01:04:12 +02:00
stefan schippers 281c38b32d register WM_DELETE_WINDOW action to correctly close bindkey window 2025-04-28 00:48:01 +02:00
stefan schippers d3b5e999f4 ps_embedded_graph(): variable declaration guarded inside if defined(HAS_LIBJPEG); xschem.h: avoid including ../config.h if manual Makefile used 2025-04-25 01:36:29 +02:00
stefan schippers 18e45abc69 sanity checks on results strings in token.c 2025-04-21 16:23:45 +02:00
stefan schippers 6b12969d6d complete change `draw text at end as done in draw() fo preserve stacking order of objects`, in draw_symbol(), svg_draw_symbol() and ps_draw_symbol() 2025-04-21 11:35:18 +02:00
stefan schippers d2e40a8605 fix missing label text highlights in symbols. still to handle if highlight layer set to last 2025-04-21 00:36:07 +02:00
stefan schippers afc3f1b724 move some X11 dependent code into draw(), circuit example updates 2025-04-20 09:48:40 +02:00
stefan schippers 6af59cb3fb reset alloc IDs 2025-04-18 02:02:15 +02:00
stefan schippers dbac25433c `/` command (show bindkeys) will use a toplevel window instead of fullscreen 2025-04-18 02:00:08 +02:00
stefan schippers 21dbd0e340 fix a small memory leak issue in waves_callback(), variable curr_sim_type, fix random clipping (due to uninitialized var instead of rect coordinates) in ps_filledrect() 2025-04-17 15:46:33 +02:00
stefan schippers c91aff2abd add (commented) lines in xschemrc to change specific widget font attributes 2025-04-16 23:36:58 +02:00
stefan schippers 29ad1e06e1 reduce size of ps exports by avoiding redundant set_ps_colors() calls 2025-04-16 16:25:38 +02:00
stefan schippers 1417c05658 fix possible unitialized value for c_for_text in draw_symbol(), ps_draw_symbol(), svg_draw_symbol(), fix ps/pdf export full (missing / wrong resetwin() calls) 2025-04-16 15:01:51 +02:00
stefan schippers 328f4443b5 add a missing restore linewidth after a ps/pdf print full 2025-04-16 11:26:16 +02:00
stefan schippers cf3fa993bd fix some regressions in text bbox calculation in no cairo mode 2025-04-16 02:54:56 +02:00
stefan schippers 9a937ecd70 Balloon help: also cancel scheduled future show window actions on Leave or FocusOut events 2025-04-16 00:41:43 +02:00
stefan schippers 2bd021328f add m param to pmos3.sym, kill balloon popup windows by FocusOut events to avoid Balloon helps sticking around on the screen 2025-04-16 00:29:45 +02:00
stefan schippers b74c0f4ac4 Honor `bus` attribute on lines / wires / polygons in svg and pdf exports 2025-04-14 12:31:59 +02:00
stefan schippers f22307afad `xschem raw clear` command: allow to specify a number `n`; delete the`n-th` raw file 2025-04-14 10:00:33 +02:00
stefan schippers 34c2927f4f add ngspice_verilog_cosim examples 2025-04-11 18:37:55 +02:00
stefan schippers 232384f8fb better zoom line width based on xctx->min_lw 2025-04-09 13:07:53 +02:00
stefan schippers d4fc6c96c1 set min_lw in xinit.c based on xschemrc line_width var 2025-04-09 12:20:06 +02:00
stefan schippers c3cb1218a1 set line width commands also set minimum allowed line width (good for UHD displays) 2025-04-09 11:47:19 +02:00
stefan schippers 8d0837d5e9 Add bindkey `Alt -` (specify line width) in addition to menu entry 2025-04-09 10:07:33 +02:00
stefan schippers b2e5a5235e add bus attribute (thick lines) for polygon, fix rubber display of wires and lines with bus=1 (missing rectorder() in XCopyArea) 2025-04-08 01:11:15 +02:00
stefan schippers 5ee8b862ea fix a keyboard focus problem in canvas window (regression) 2025-04-08 00:05:09 +02:00
stefan schippers 514b5be2c2 fix sym_txt (text display/hide) in symbols, add commands to place ipins and opins, move create_plot_cmd to ctrl-shift-X, grouped some menus in Symbol menu 2025-04-07 14:50:28 +02:00
stefan schippers 08d5669a66 command `/` (show_bindkeys) improved. Small color adjustements 2025-04-07 00:26:43 +02:00
stefan schippers 70aed29f7f fix ps/svg export of highlighted instances (text color) 2025-04-06 13:02:28 +02:00
stefan schippers 24f2af8c81 update keybinding documentation; add `/` command to show fullscreen image of keybindings also in Help menu) 2025-04-06 12:58:13 +02:00
stefan schippers 035794df47 preview_window: check xctx valid before calling resetwin() 2025-04-06 00:27:25 +02:00
stefan schippers 834d2c9757 draw_symbol(): draw text at end as done in draw() fo preserve stacking order of objects 2025-04-05 11:27:45 +02:00
stefan schippers 8e2748905a fix eval_expr not recognizing 1234e-12 (negative exponent),fix spice.awk (dangerous removal of `value=` patterns in spice netlists) 2025-04-05 02:07:48 +02:00
stefan schippers ff1c506b5d `xschem netlist`: do not clear keep_symbols if no -keep_symbol option is given 2025-04-04 10:12:12 +02:00
stefan schippers 4a1b1483b9 code cleanups ("schematic" attribute) 2025-04-04 00:35:54 +02:00
stefan schippers 795f89215e add bindkeys_cheatsheet.sch, moved shift-J to Ctrl-p (xplot creation) 2025-04-03 18:00:33 +02:00
stefan schippers d19ad57ee1 allow to change tcl flag `lvs_netlist` at runtime (just before netlist generation) , not only at xschem startup 2025-04-03 16:57:49 +02:00
stefan schippers 28aca824ed update docs for keybindings 2025-04-03 06:25:23 +02:00
stefan schippers f43273757d remove some no more existent keybinds in docs 2025-04-03 02:52:26 +02:00
stefan schippers 320aa96f98 fix regression: constrained move (V/H) when creating polygons 2025-04-03 01:54:21 +02:00
stefan schippers cd0a78d9ff cadence_compat: a Button **Release** (instead of **Press**) on a selected item will unselect everything but the item under the mouse. This allows click & drag in intuitive_interface + cadence_compat 2025-04-03 00:19:40 +02:00
stefan schippers 3941568804 further cleanups on event handling / window switching code 2025-04-02 13:26:46 +02:00
stefan schippers 36cbb84c04 refactor event code (FocusIn/Enter races) 2025-04-01 11:41:35 +02:00
stefan schippers 232ca9c58c followup of previous commit: do draw_selection in the right place in select_rect() 2025-03-29 19:16:40 +01:00
stefan schippers 859e39a579 select_rect(): remove redundant draw_selection() call 2025-03-29 12:22:25 +01:00
stefan schippers dc871f5227 area select: reverse effect of ctrl-modifier key depending on enable stretch: enable_stretch==1 and control -> NO stretch select; enable_stretch==0 and control -> Stretch select 2025-03-29 01:18:41 +01:00
stefan schippers 06632ffba5 fix proc dellview "Update" issue 2025-03-28 16:51:00 +01:00
stefan schippers 950c812080 bump version to 3.4.7RC (Release Candidate) (although lot of testing ahead before 3.4.7), mostly to avoid confusion with tagged 3.4.6 2025-03-28 15:30:12 +01:00
stefan schippers 9a6006c291 fix potential crash on close multiple windows / tabs (destroy_all_tabs(), destroy_all_windows() ) 2025-03-28 13:43:39 +01:00
stefan schippers 1d2bff5f9b cleanup FocusIn / window switching 2025-03-28 13:12:52 +01:00
stefan schippers 33050d406a do not show "no action on laucher is defined" when ctrl-click-release an object (with no mouse movement in intuitive interface) 2025-03-26 04:07:49 +01:00
stefan schippers dcb5689191 if an instance is selected with ctrl-shift-click in intuitive_interface mode, move instance creating new wires to pins connected to something. This was working as a plain stretch-move (stretch already attached nets instead of creating new ones) 2025-03-26 02:29:35 +01:00
stefan schippers 5e14ccf5a0 add a missing tclvareval("housekeeping_ctx", NULL); at the end of a new window creation 2025-03-26 02:11:31 +01:00
stefan schippers 2e86614c31 Esc destroys .ctxmenu 2025-03-26 01:18:31 +01:00
stefan schippers 8330f0f3c5 remove debug info 2025-03-25 23:44:54 +01:00
stefan schippers 1f4841b2b6 fix context switching in tabbed interface (regression) 2025-03-25 23:26:06 +01:00
stefan schippers 9e4b26b027 dont process Motion / ButtonPress events if done in wrong window without first focusing it 2025-03-24 16:21:01 +01:00
stefan schippers 3443e9aff5 even in click to focus mode allow switching to other window when copying stuff across windows 2025-03-24 15:32:37 +01:00
stefan schippers 5ac170f2a5 changes in event system to make window context switching (in no tab mode) less "automatic", requiring a FocusIn event to switch. Will work better when working with the new symbol browser. changed default value of autofocus_mainwindow to 0 (set to 1 explicitly in xschemrc if you need that) 2025-03-24 13:46:15 +01:00
stefan schippers 48beb76087 created handle_expose() event handler, offloaded from callback() 2025-03-23 16:10:58 +01:00
stefan schippers eadfe6511a further move statusbar code from callback() to update_statusbar() 2025-03-23 15:57:34 +01:00
stefan schippers 31a0712109 remove some redundant operations (housekeeping_ctx) when switching windows contexts for redraw_only 2025-03-23 12:16:01 +01:00
stefan schippers ed0d71c1ff move update statusbar stuff from callback() into separate function 2025-03-23 11:35:49 +01:00
stefan schippers d765f6ac4f in cadence_compat mode, when a selection is present, clicking on a selected item will unselect all others (default is do nothing) 2025-03-23 00:25:29 +01:00
stefan schippers 57a03c1c66 some small variable name refactor in xschem.tcl 2025-03-21 18:29:53 +01:00
stefan schippers 87325c6998 implement lassign command for tcl versions lacking it 2025-03-21 10:50:30 +01:00
stefan schippers 30d8789398 avoid lassign in xschem.tcl (not available pre-tcl8.5) 2025-03-20 12:07:49 +01:00
stefan schippers 08c613d3a8 fix regression (Shift-D not working) introduced after `Escape pressed while drawing polygon will cancel last segment instead of the whole poly` 2025-03-19 10:03:20 +01:00
stefan schippers baf80c3092 some comments added/removed 2025-03-19 02:15:52 +01:00
stefan schippers 8f0be37b16 do not skip texts with hide=instance attribute in calc_drawing_bbox() 2025-03-19 01:47:06 +01:00
stefan schippers 025cee31bb Add checkbutton description text in insert_symbol 2025-03-19 01:15:06 +01:00
stefan schippers 0b266d2bd0 merge in SuperChayan refactoring ( recompute_orthogonal_manhattanline() ) 2025-03-19 00:50:35 +01:00
stefan schippers ce8714acae add new_file_browser_* variables in xschemrc to allow new symbol browser to be used also to load files 2025-03-19 00:45:25 +01:00
stefan schippers 7e46ec6efb merge in SuperChayan changes for orthogonal wiring / manhattan move 2025-03-18 18:41:50 +01:00
stefan schippers e4d4c18b4c cleanups in insert_symbol procedures 2025-03-18 18:38:13 +01:00
stefan schippers 7cf84e9049 .processlist: update title based on current schematic 2025-03-18 17:17:20 +01:00
stefan schippers b4344360a9 better process list title 2025-03-18 16:31:07 +01:00
stefan schippers 53b90ee689 conversions from eng notation: add x in addition to meg as suffix for 1e6 (Xyce extension) 2025-03-18 15:53:47 +01:00
stefan schippers 0d2b57bfa5 use TkDefaultFont in right click context menu instead of a custom menu. This makes scaling with tk_scaling more consistent 2025-03-18 13:30:40 +01:00
stefan schippers c4b3e204a0 place_moved_wire(): in manhattan mode don`t store new wires if not needed (single point) 2025-03-18 12:36:46 +01:00
stefan schippers 2ea1294fb1 add toolbar_icon_zoom and ctxmenu_icon_zoom xschemrc (integer) variables to enlarge icons on XUHD displays 2025-03-18 10:51:34 +01:00
stefan schippers 0f9d201f0a (2) insert symbol preview. Fixed some race conditions 2025-03-18 03:31:37 +01:00
stefan schippers 172a001425 insert symbol preview. Fixed some race conditions 2025-03-18 03:07:48 +01:00
stefan schippers 4584c260ba new insert symbol: low-pass filter (200ms) on preview rendering to speed up quick listbox select events (arrow key autorepeat) 2025-03-18 01:58:55 +01:00
stefan schippers b348451160 new symbol browser: add Update button to refresh list of dirs and files; fix Alt-s (Reload) incorrectly moved in r keybind after handle_key_press() refactoring 2025-03-18 00:53:46 +01:00
stefan schippers abfa38b1e4 make move of wires with `manhattan_lines` consistent, keep last wire segment selected. TBD: fix orthogonal_wiring modes 2025-03-17 19:23:55 +01:00
stefan schippers f9546b6ebd add ORDER() before storing new wires (manhattan mode) in move operation 2025-03-17 13:08:37 +01:00
stefan schippers 42bd51e88b use drawtemp_manhattanline() also for new_line(). transform xctx->nl_xx[12] and xctx->nl_yy[12] used in some drawimg functions to local variables where global context is not needed. 2025-03-17 00:23:05 +01:00
stefan schippers caddf0f0dd fix indentation 2025-03-16 23:38:54 +01:00
stefan schippers 50321ae480 align callback.c with SuperCD fork 2025-03-16 19:56:57 +01:00
stefan schippers 33591fa41d applied recent additions from SuperCgayan 2025-03-16 11:35:30 +01:00
stefan schippers b415b8e889 fix regression in new_wire() (in manhattan mode) due to previous commit (courtesy SuperChayan) 2025-03-16 11:08:27 +01:00
stefan schippers a0a5d9876f drawtemp_manhattanline(): use local nl_xx[12] and nl_yy[12] variables, since xctx->nl_xx[12] and xctx->nl_yy[12] are used also in select_rect() which calls draw_selection() which calls drawtemp_manhattanline(). 2025-03-16 05:15:40 +01:00
stefan schippers 2f26544c45 dont assume a particular manhattan_lines when starting wires or lines. Keep last one set 2025-03-16 01:17:50 +01:00
stefan schippers e4cf179868 insert_symbol: Return Key binding for quick dialog close 2025-03-16 01:01:49 +01:00
stefan schippers c02b80c79d fixes in insert_symbol 2025-03-16 00:49:38 +01:00
stefan schippers 124d73ee64 fix regression (start new wires in manhattan orient) 2025-03-16 00:31:57 +01:00
stefan schippers cc90201b27 remove debug msgs in insert_symbol 2025-03-16 00:13:07 +01:00
stefan schippers ed8a6dbe11 little optimization in insert_symbol 2025-03-16 00:02:12 +01:00
stefan schippers d37c872a49 merge in a SuperChayan change in move.c 2025-03-15 23:47:18 +01:00
stefan schippers fd65c8876d cleanup and fixes in proc insert_symbol 2025-03-15 23:29:11 +01:00
stefan schippers 313acc8e29 further improvements to new_symbol_browser 2025-03-15 03:20:01 +01:00
stefan schippers 73a920ea41 xinit.c: eval user_startup_commands after sourcong tcl_files 2025-03-14 18:28:19 +01:00
stefan schippers 08397f7038 merge Chayan Deb changes for manhattan-style move objects and handle_key_press() refactor 2025-03-14 15:25:57 +01:00
stefan schippers 588ee1b8f4 do not call place_symbol() with relative symbol names. Initial draft fof proc get_list_of_dirs_with_symbols 2025-03-14 03:29:05 +01:00
stefan schippers 9cb435c43c remove implicit [pwd] prepending to relative paths given to rel_sym_path. this assumption is incorrect in some cases 2025-03-13 21:51:06 +01:00
stefan schippers e789988b05 add `user_startup_commands` variable that may contain tcl code to be executed after any new window creation. Useful to have custom bindings / menu / buttons in all windows. 2025-03-13 20:11:18 +01:00
stefan schippers 84ca35e6f5 add menu option Simulation->LVS->Upper case .SUBCKT and .ENDS 2025-03-13 11:57:09 +01:00
stefan schippers ac1f618030 clean up a bit the load_file_dialog pack order 2025-03-13 11:26:07 +01:00
stefan schippers 514b1f3789 insert_symbol: keep selected listbox item when leaving/entering the widget 2025-03-13 01:45:40 +01:00
stefan schippers 0c4c8f4d9f proc insert_symbol: select active listbox cell so symbol placement can start right away 2025-03-13 00:48:38 +01:00
stefan schippers 2a4ebe4b77 new (optional) symbol placement browser 2025-03-12 16:59:45 +01:00
stefan schippers 0f5c554e33 add command `xschem get ui_state`, improvements in proc insert_symbol 2025-03-12 02:00:45 +01:00
stefan schippers e1488da407 add `xschem rect gui`, `xschem line gui`, `xschem polygon gui`, `xschem wire gui` to start placement of these objects with 1st point set to mouse coordinates 2025-03-11 20:47:00 +01:00
stefan schippers 5e6ce2dce8 fix xschem.tcl proc traversal 2025-03-10 17:02:46 +01:00
stefan schippers c69c1b2687 better handling of snap cursor and snap wire creation (no cadence emulation) 2025-03-10 01:03:15 +01:00
stefan schippers d582fc98d8 proc load_file_dialog: allow multi selection (extended) only for load file, not for place instance 2025-03-09 13:53:18 +01:00
stefan schippers 7e5a36531b reduce max zoom in/out factors 2025-03-09 10:15:50 +01:00
stefan schippers de6434c941 allow multi-selections when loading a file; limit max line width in change_linewidth() to avoid strange artifacts at extreme zoom-ins 2025-03-09 02:46:58 +01:00
stefan schippers 2f1643368e add command `xschem raw rename old_node new_node` 2025-03-08 21:14:46 +01:00
stefan schippers f1901e055c clip graph point[].x values to prevent aliasing at absurdly deep zoom in values 2025-03-08 10:53:21 +01:00
stefan schippers d7d812c023 square grid points if grid_point_size is specified 2025-03-07 15:59:43 +01:00
stefan schippers 96eeef5a95 raw_read(): cleanup allocated `rawptr` if nothing loaded due to missing file 2025-03-07 15:34:19 +01:00
stefan schippers fafd48eb31 new tcl variable grid_point_size to set size of grid points (for 4K+ displays) 2025-03-07 14:45:13 +01:00
stefan schippers eb99123a49 `xschem load` command: allow multiple files to be loaded 2025-03-06 20:47:49 +01:00
stefan schippers fb9189018d avoid strdup on value in print_spice_element() 2025-03-04 09:58:56 +01:00
stefan schippers 56e0410047 fix a bug in eval_expr() usage in token.c (duplicate return string to avoid double free) 2025-03-04 09:43:26 +01:00
stefan schippers b449bb2728 revert: better detection of expr() in netlister functions 2025-03-04 09:07:55 +01:00
stefan schippers 0ea6af2c99 better detection of expr() in netlister functions (print_spice_element(), ...) 2025-03-04 00:33:27 +01:00
stefan schippers efdd45f414 revert wrong fix (fix typo in draw_graph()) not a typo... 2025-02-28 19:19:06 +01:00
stefan schippers aa68a3a0d2 fix spurious overwrite of xctx->graph_struct done in raw_read() called from draw_graph() which uses xctx->graph_struct 2025-02-28 18:51:35 +01:00
stefan schippers be1a0deb89 fix typo in draw_graph() 2025-02-28 18:04:56 +01:00
stefan schippers becbf7cf9c descend_schematic() return value indicates if descended into a valid schematic (1) or empty one (0) 2025-02-28 16:08:35 +01:00
stefan schippers bba3f434d5 fix an error in change_sch_path() (level check) and go_back() (no set title) 2025-02-27 13:04:57 +01:00
stefan schippers 028ca8cb5a proc editdata: added Copy (to Clipboard) button 2025-02-27 01:45:12 +01:00
stefan schippers c19c25873b (2)proc to_eng: return arg as is if not valid expression 2025-02-26 19:33:14 +01:00
stefan schippers 2d6b7c4fe1 revert previous 2025-02-26 16:03:36 +01:00
stefan schippers 43a8b62a24 proc to_eng: return arg as is if not valid expression 2025-02-26 16:01:32 +01:00
stefan schippers d3e0ca82b4 eval_expr.y: references to unknown identifiers cause the lexer to return an error so the expression is not evaluated and returned as is, instead of erroneously interpreting the unknown identifier as 0 2025-02-25 02:00:55 +01:00
stefan schippers f9ccf878c2 differential scope2.sym, current mwasure scope_ammeter.sym 2025-02-24 15:23:35 +01:00
stefan schippers b205b4a496 fix ui problem when ctrl-clicking a launcher (drag_elements remained set) 2025-02-23 23:49:31 +01:00
stefan schippers bd2c65bc1a embed graph inside scope symbol 2025-02-23 14:58:44 +01:00
stefan schippers 1d3c2dde59 fix regression: Cancel pressed when inserting new symbol 2025-02-23 14:03:53 +01:00
stefan schippers 6a75c8a6dd initial commit to add scope.sym symbol 2025-02-23 13:50:39 +01:00
stefan schippers c604a1f033 higher priority of `unlocked` sub-attribute in rect `graph` attribute. Do not propagate zoom / pan to any other graphs even if they are locked. 2025-02-23 12:39:59 +01:00
stefan schippers a306d97725 update docs (#pattern#@name tag) 2025-02-23 12:12:59 +01:00
stefan schippers 7144ead895 remove dbg messages 2025-02-22 19:49:43 +01:00
stefan schippers 81c3d64778 (2) changed some *attached*() function names for sonsistency 2025-02-22 19:40:04 +01:00
stefan schippers 6f0133a1b2 changed some *attached*() function names for sonsistency 2025-02-22 19:38:05 +01:00
stefan schippers e266642c2c lock attribute extended to all objects 2025-02-22 12:47:54 +01:00
stefan schippers a93fb64e12 better threshold detection for bezier selection 2025-02-22 11:37:19 +01:00
stefan schippers 0e438829c6 allow locked attached rectangles, so they can not be selected accidentally. Small resize of x/y graph axis labels 2025-02-22 10:33:13 +01:00
stefan schippers a592216c19 update solar_panel.sch (grouped aka attached floaters, scope meter object), better selection of left-y axis in small graphs 2025-02-22 02:18:27 +01:00
stefan schippers 935ec27772 floater objects: add command ctrl-u to unselect attached (so some instance with the attach=.. attribute) objects, that is objects (not element instances) with a non empty name=... atttribute. Extend upcate references of attached floaters to change instance name property and `xschem setprop instance name` command 2025-02-22 01:30:38 +01:00
stefan schippers 4e2af7ddb9 attach attribute: update copied objects 2025-02-21 17:49:38 +01:00
stefan schippers 3eab6bf2dc added attribute `attach="name1 name2 ..."` for components to designate other objects to be selected with it. Designated objects must have a matching `name=name1` attribute. This allows to create object groups 2025-02-21 14:31:30 +01:00
stefan schippers dc270aa029 resize a bit graph wave label / axis label sizes 2025-02-21 12:53:04 +01:00
stefan schippers 34fd430c13 svg_embedded_graph() and ps_embedded_graph() do not do a full redraw prior to graph rasterizing, draw only the current graph area. This avoid `overstrike` problems with superimposed text objects 2025-02-21 11:12:27 +01:00
stefan schippers 90bb42e7fa fix regression: no dashed graph bbox 2025-02-20 16:52:23 +01:00
stefan schippers afe058a25d comments typos 2025-02-20 16:30:40 +01:00
stefan schippers 62a2e6a367 refactored draw_crosshair() into smaller pieces. draw_snap_cursor executed much less frequently (only on snapped ouse change). Zooming with mouse wheel will not clear MENUSTART ui_state 2025-02-20 13:56:53 +01:00
stefan schippers f15520d01a start snapped wires in manhattan mode as done woth normal wires 2025-02-20 11:52:22 +01:00
stefan schippers 9dff3e1e3e refactor and fix small graphic glitches in draw_snap_cursor() 2025-02-20 11:42:26 +01:00
stefan schippers b7c6118288 add physical constants in eval_expr.y 2025-02-19 02:39:02 +01:00
stefan schippers fc3a3ed4e0 add proc cinv (complex inversion) 2025-02-18 17:45:09 +01:00
stefan schippers 936b72c7fc Escape pressed while drawing polygon will cancel last segment instead of the whole poly 2025-02-18 11:49:32 +01:00
stefan schippers 821aa77b0a fix svg fill rules 2025-02-18 02:45:24 +01:00
stefan schippers 25db8b8f9a ellipses rendered in ps/pdf export. Do not allow to select objects with mouse button press if a poligon insertion is ongoing. my_fopen() for read mode open, check for regular file. More checks for failed fopen()s. 2025-02-18 02:25:55 +01:00
stefan schippers 9eb012e6a3 fix image in symbols rotation/flip for svg exports 2025-02-17 17:53:49 +01:00
stefan schippers 4623b1c869 add ellipses/ellipse_arcs rendering in svg export 2025-02-17 16:10:44 +01:00
stefan schippers a7ae4eaca8 added some simple helper complex number procedures 2025-02-17 13:45:12 +01:00
stefan schippers 1e1c56801d when loading a raw file, if graphs are present and cursor2 is enabled in 1st graph setup annotation in the schematic (no need to move the cursor) 2025-02-16 14:08:31 +01:00
stefan schippers 51c6eded14 (2) integrated @georgtree proc symbolParse 2025-02-16 01:11:32 +01:00
stefan schippers 446f7949b4 integrated @georgtree proc symbolParse 2025-02-16 01:09:28 +01:00
stefan schippers cefd320ef6 complete previous `xschem load_symbol` command 2025-02-15 01:33:13 +01:00
stefan schippers 279d24288d proc rel_sym_path: resolve ~/... or relative paths (by prepending HOME or PWD) to input path before calculating relative symbol path. Added command `xschem load_symbol` 2025-02-15 00:50:02 +01:00
stefan schippers 5c4be8313b better xctx->save_netlist_type setting when navigating in the hierarchy (of LCC schematics specifically) 2025-02-14 14:40:56 +01:00
stefan schippers be643d5a92 remove here() dbg call 2025-02-14 14:00:34 +01:00
stefan schippers 26710d3bd0 fix setting netlist_type to CAD_SYMBOL_ATTRS when doing a descend symbol (`i` key) into a LCC schematic and setting back to previous netlist_type when going back 2025-02-14 13:58:36 +01:00
stefan schippers 05434cb5e4 fix @spice_get_*_*(...) regex 2025-02-14 13:32:17 +01:00
stefan schippers e9c927d882 default orientation for wire creation is manhattan (H-V). Lines still start oblique by default 2025-02-14 02:55:47 +01:00
stefan schippers 9fe67cd242 eval_expr.y: fix eval_expr_clear_table, remove unneeded unistd.h 2025-02-14 02:15:03 +01:00
stefan schippers afac3f7620 token.c: translate(): protect regex*() calls with #ifdef __unix__ 2025-02-13 22:18:23 +01:00
stefan schippers b0d740757a fix regression in psprint.c 2025-02-13 20:43:39 +01:00
stefan schippers ed3190c9b1 complete previous fix 2025-02-13 02:44:26 +01:00
stefan schippers 7087ae5a2a fix graphical artifacts when inserting objects and pressing Button3 2025-02-13 02:38:19 +01:00
stefan schippers 2c703aa12d backport previous fix to print_verilog_primitive and print_vhdl_primitive 2025-02-13 00:46:39 +01:00
stefan schippers 4517ff3b87 fix netlist error if in symbol attributes model="xxx@name" is given, @name was looked up in symbol template instead of again in instance properties. 2025-02-12 23:26:00 +01:00
stefan schippers 95cbd80767 merged in TheSUperChayan feature for displaying `Draw Wire` in status bar when in wiring mode. 2025-02-12 16:25:46 +01:00
stefan schippers bc293a1d8f fix some warnings (-Wdeprecated-non-prototype, -Wparentheses-equality) 2025-02-12 03:14:45 +01:00
stefan schippers bd40674f34 removed %define api.prefix in yacc eval_expr.y, use -p bison on command line 2025-02-12 02:11:47 +01:00
stefan schippers a559f84bc5 merged in Ananth Chellappa additions for Cadence compatibility 2025-02-12 01:40:15 +01:00
stefan schippers ffe0aba12e indentation and spacing in callback.c 2025-02-12 01:22:36 +01:00
stefan schippers 1e23beabd3 c89 compliance and fix some double to int assignments, removed stdbool 2025-02-12 01:08:52 +01:00
stefan schippers 1d1ff164fb Merge branch 'master' into ananthchellappa 2025-02-12 00:37:49 +01:00
stefan schippers 5f8c08d7de eval_expr: CHAR token renamed to XCHAR to avoid name clashes. print_spice_element(): if instance has VHI=VHI, format string has VHI=@VHI, and symbol template has VHI=3 we do not want token @VHI to resolve to 3, but stop at VHI as specified in instance. Same for vhdl and verilog primitives. Fixed a typo in get_sp_cur regex (token.c) 2025-02-12 00:32:12 +01:00
Ananth 99f0e528bf add RC file to help Cadence users 2025-02-11 12:51:12 -07:00
Ananth 3adcf40bf7 added remaining edits from CD's repo. Tests ok. 2025-02-11 12:44:14 -07:00
stefan schippers 2a7a461ace update verilogA example tb_diff_amp.sch 2025-02-11 20:38:17 +01:00
Ananth 66ec47ccfb only vars and fn defs (not calls) and inits added for ortho routing and snap cursor 2025-02-11 11:49:50 -07:00
Ananth bf10a025d7 added CD's vars - ortho wiring, snap_cursor, snap_cur size, cadence_compat - all not yet used; use_cursor_for_selection - used; updated xschem.tcl to include in global list and set defaults; callback updated to use use_cursor_for_sel when mouse clicked 2025-02-11 10:55:29 -07:00
stefan schippers 2eeeebf715 avoid calling Tcl_GetErrorLine() if tcl version < 8.6 2025-02-11 18:52:24 +01:00
stefan schippers 8cad7daed5 removed `str` parameter to all handle_* functions in callback.c (write-only) 2025-02-11 11:11:20 +01:00
stefan schippers a4e0471fcc minor changes to callback() refactoring to remove compiler warnings 2025-02-11 00:16:06 +01:00
Ananth b7515c9715 add handle_enter_notify for readability 2025-02-10 14:52:19 -07:00
Ananth 1753dc6723 add handle_double_click 2025-02-10 14:43:26 -07:00
Ananth 899e7f93d2 add handle_button_press/release 2025-02-10 14:34:20 -07:00
Ananth 04e7300f48 correct type for mx,my in handle_motion_notify; added handle_key_press 2025-02-10 13:52:57 -07:00
Ananth bef19b7057 refactored : handle_motion_notify for readability 2025-02-10 13:42:28 -07:00
stefan schippers fe8ef89052 update version info in some rom8k symbols. Do a xschem remove_symbols in proc cellview_setlabels to force a reload of changed symbols. 2025-02-10 18:49:11 +01:00
stefan schippers 89a8d8b719 same previous fix for resetwin() restore done in ps_embedded_graph() backported also in svg_embedded_graph() (not necessary here but safer) 2025-02-10 17:44:05 +01:00
stefan schippers 88ee9ba0ad fix wrong window size re-setting after a hierarchy ps/pdf printout (due to messing with portrait / landscape) 2025-02-10 17:36:10 +01:00
stefan schippers 6b090273fb lock graphs only if they have the same simulation type loaded. So zooming/panning a tran plot will not affect dc or ac plots. 2025-02-10 15:18:01 +01:00
stefan schippers b5eb81c107 updates in proc cellview 2025-02-10 13:44:12 +01:00
stefan schippers 3d972e8e42 `AUTO SET` button in graph edit dialog box to automatically assign increasing colors to displayed waves 2025-02-10 02:43:23 +01:00
stefan schippers 724869638e fix max size of graph bitmap calculation in svg_embedded_graph() and ps_embedded_graph() 2025-02-10 01:21:22 +01:00
stefan schippers 5e3c27d7ee load_schematic(): ability to load / preview a generator (adds () to filename) 2025-02-09 20:52:15 +01:00
stefan schippers a50b3681c8 calc_drawing_bbox(): initialize xctx->show_hidden_texts before calculating bbox. 2025-02-09 19:44:40 +01:00
stefan schippers 8bd9c3d939 fix bitrots in proc cellview (Update function) 2025-02-09 15:27:55 +01:00
stefan schippers b5a25e5925 fix update not working in proc cellview 2025-02-09 13:48:39 +01:00
stefan schippers 77a6bd2bb8 change order of last statements in hier_psprint() to avoid displaying garbage while moving crosshair cursor and ps->pdf conversion is in progres... 2025-02-09 12:23:51 +01:00
stefan schippers b625a45dab place_symbol(): trim leading and trailing whitespace from symbol name given as input 2025-02-09 03:20:57 +01:00
stefan schippers 188e73cf8b place_symbol() and proc is_xschem_file: if /path/to/gen.tcl(arg1,arg2,arg3) is given remove (...) argument list before checking existence of generator file. Do not add () to generator filename if argument list already given. Do not include hidden texts in schematic boundbox for full zoom if show hidden_texts is not enabled. draw_graph(): do not wrap graphs using sweepvar_wrap if not dc (this includes: do not wrap multi-point OP sims). print_spice_element(): better @param lookup in instance prop_ptr, symbol template, parent instance prop_ptr (if instance based "additional" symbol) and parent instance symbol template string (use translate3()) 2025-02-09 02:46:45 +01:00
stefan schippers 0b3db90f19 one more argument to translate3() 2025-02-07 14:39:21 +01:00
stefan schippers 0024dc2759 more comments and refactoring in token.c 2025-02-07 14:23:58 +01:00
stefan schippers 51ff56357d some simplification and refactoring of print_spice_element() and translate() 2025-02-07 13:22:08 +01:00
stefan schippers 1573ea3cad improvements in eval_expr.y, print_spice_element(), translate() to allow multiple expr(...) patterns in strings, they all will be evaluated if possible or returned unevaluated (without `expr(` and `)` ) 2025-02-06 23:57:01 +01:00
stefan schippers a4ce2d1b64 subst_token(): better token removal (remove space or newline to avoid having many remaining blanks); `netlist_postprocess` xschemrc tcl variable to insert commands after netlist is created 2025-02-06 12:45:21 +01:00
stefan schippers 53fda635c9 remove dbg msg, reduce precision in eval_expr(), add expr() resolution at end of translate() 2025-02-06 10:39:50 +01:00
stefan schippers 7926a833be added `d` to unselect object under the mouse, `Shift-D` to unselect by area, both work with or without infix_interface, moved delete files to `Ctrl-d`, update keybinding docs 2025-02-06 04:20:57 +01:00
stefan schippers 0c4cdb3ea1 propagate changed key bindings to new opened windows (in no-tabs mode) 2025-02-06 01:11:11 +01:00
stefan schippers 70c1e542b2 attributes within expr(...) where expr() contains an infix arith expression will evaluate if possible. Otherwise the string within expr(...) will be returned unchanged. Changes done in translate() and print_spice_element() 2025-02-05 18:20:36 +01:00
stefan schippers 4db384a671 add eval_expr.y for evaluation of generic math expressions in infix notation 2025-02-05 16:33:23 +01:00
stefan schippers 795b5557a5 print_spice_element(), primnt_verilog_primitive(), print_vhdl_primitive(): format string is passed to translate() to do a round of @xxx param substitutions looking up xxx=... in instance attributes. 2025-02-03 02:15:41 +01:00
stefan schippers 05d61b3987 optimization: replace some sumbol "template" token lookups with existing cached sym[].templ field 2025-02-02 23:59:41 +01:00
stefan schippers 5517c8b3f0 has_included_subcircuit(): fix spice netlisting error when using a symbol with bussed ports and implementation specified via a spice_sym_def attribute. bussed ports must be expanded and resulting total number of bits of symbol (grater than number of I/O pins!!) must be calculated and sent to the tcl has_included_subcircuit proc. 2025-02-02 00:33:55 +01:00
stefan schippers e471f577fa integrated create_symbol.tcl in xschem.tcl, some old version strings updated in scripts, some code indenting fixes 2025-02-01 00:03:12 +01:00
stefan schippers 752f794c96 remove dbg message 2025-01-31 15:59:23 +01:00
stefan schippers 31a3a00c46 clean up translate() deallocation 2025-01-30 23:33:51 +01:00
stefan schippers 60d180de33 translate(): fix `regfree(get_sp_cur);` not followed by `get_sp_cur = NULL;`, leading to a random pointer to nowhere 2025-01-30 22:43:35 +01:00