Commit Graph

2930 Commits

Author SHA1 Message Date
Chayan Deb 5c44fec506 [Experimental Feature Update]: Orthogonal wiring feature is now applicable to wires connected to objects, when those objects are moved to a different position by the user. This requires 'enable_stretching' to be enabled, which will stretch the connected wires orthogonally when the user drags/moves objects around in the canvas. 2025-03-14 14:00:36 +05:30
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
Chayan Deb afaa38e81d [Resolve Merge Conflicts - 3]: Third (Final) stage of changes. All upstream changes are now merged. 2025-03-13 13:17:21 +05:30
Chayan Deb 3a9b478a8d [Resolve Merge Conflicts - 2]: Second stage of changes. 2025-03-13 13:08:49 +05:30
Chayan Deb 1bc1897136 [Resolve Merge Conflicts - 1]: First stage of changes. 2025-03-13 13:07:15 +05:30
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
Chayan Deb d9ed2f0e09
Merge branch 'StefanSchippers:master' into master 2025-03-12 04:10:20 +00: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
Chayan Deb 57a9348cf1 [Major Refactor]: The 'handle_key_press()' function responsible for processing keyboard inputs has been refactored to use switch-case statements intead of an excessively long chain of if-else statements. Due to huge number of possible inputs, this approach should improve performance (jump-tables) of the application, while increasing readability and maintainability of the codebase in the future. Custom keybinds can also be easily worked on and implemented in the near future thanks to this approach. 2025-03-11 11:51:17 +05:30
Chayan Deb 68c55f7b54
Merge branch 'StefanSchippers:master' into upstream-clone 2025-03-11 05:43:27 +00:00
Chayan Deb 937e8b2f7b [Resolved Merge Conflicts]: All upstream updates to the codebase has been integrated into the fork. 2025-03-11 11:12:25 +05:30
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
Chayan Deb 18884d6960 [After Merge Modification]: Fixed description for 'orthogonal_wiring' option in 'src/xschemrc'. 2025-02-20 13:59:46 +05:30
Chayan Deb 2462ec04b9 [After Merge Modification]: Removed references to the 'str' variable from all handle_* functions - as per upstream requirements. Removed redundant LOCs from 'src/xschemrc'. 2025-02-20 13:50:05 +05:30
Chayan Deb 2519567cc7 [Merge Conflict Resolution]: Resolved merge conflicts in a way that preserves all previous work done on the system, as well as mitigate possible bugs from last upstream refactor. 2025-02-20 13:14:31 +05:30
Chayan Deb 2bb0c10bd9 [Refactor]: Manually added the refactoring changes introduced into upstream repository. 2025-02-19 17:00:34 +05:30
Chayan Deb 7cd980cf42
Merge pull request #11 from TheSUPERCD/upstream-un-refactored
Merge commits made before callback.c refactor
2025-02-19 15:49:16 +05:30
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
Chayan Deb 5487575d81 Lock old behavior of 'Esc'-keypress during persistent_command is active, behind the newly added TCL-option 'cadence_compat'. Wire drawing mode will now take two 'Esc' keypresses to clear, but if 'cadence_compat' is enabled, it will only take one. 2025-02-13 13:46:00 +05:30
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