Commit Graph

652 Commits

Author SHA1 Message Date
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 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 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 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 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 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 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 795f89215e add bindkeys_cheatsheet.sch, moved shift-J to Ctrl-p (xplot creation) 2025-04-03 18:00:33 +02:00
stefan schippers 28aca824ed update docs for keybindings 2025-04-03 06:25:23 +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 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 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 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 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 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 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 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 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 124d73ee64 fix regression (start new wires in manhattan orient) 2025-03-16 00:31:57 +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 2a4ebe4b77 new (optional) symbol placement browser 2025-03-12 16:59: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 c69c1b2687 better handling of snap cursor and snap wire creation (no cadence emulation) 2025-03-10 01:03:15 +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 be1a0deb89 fix typo in draw_graph() 2025-02-28 18:04:56 +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 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 e266642c2c lock attribute extended to all objects 2025-02-22 12:47:54 +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 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 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 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 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 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 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 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
Ananth 3adcf40bf7 added remaining edits from CD's repo. Tests ok. 2025-02-11 12:44:14 -07: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 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 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 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 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 752f794c96 remove dbg message 2025-01-31 15:59:23 +01:00
stefan schippers eadd991651 reduce calls to find_closest_net_or_symbol_pin() in draw_crosshair() 2025-01-30 03:47:13 +01:00
Stefan Schippers 56777a2944 fix mouse cursor restore when exiting graph and crosshair (not full-size) enabled 2025-01-27 13:10:53 +01:00
stefan schippers 8df1aa9996 some comments, removed redundant modifier key checks in callback() 2025-01-27 12:51:32 +01:00
stefan schippers 500d2e2bed some commentd added 2025-01-27 02:07:38 +01:00
stefan schippers 0d325f6957 force a crosshair draw at end of draw() (draw_crosshair(7,...)), intuitive interface direct drag of instances: fix some non-working combinations when stretch mode (y) is enabled. 2025-01-27 01:49:06 +01:00
stefan schippers bfd7895d4c edit_line_point() and edit_wire_point(): use mouse[xy]_snap instead of mouse[xy] for checking line/wire endpoint selection 2025-01-27 00:48:26 +01:00
stefan schippers 6669b4f177 renamed find_closest_net() to find_closest_wire() 2025-01-27 00:14:29 +01:00
stefan schippers 80a22c78a8 comments 2025-01-26 17:44:00 +01:00
stefan schippers 8086b5581e redraw_w_a_l_r_p_z_rubbers(): include zoom_rectangle(RUBBER), only execute if (snapped) coordinates changed, draw_crosshair(): only execute if (snapped) coordinates changed, find_closest_net_or_symbol_pin() is moved into draw_crosshair() so its calls are also minimized, do not allow z (zoom rectangle) if pending STARTWIRE, STARTLINE etc are in progress. 2025-01-26 15:19:22 +01:00
stefan schippers bbe8782bc0 more comments in callback(), add_wire_from_inst_pin() separated into add_wire_from_inst() and add_wire_from_wire(), changed the distance measurement for closest instance, works better with ituitive i/f, some edit shape point functions restricted to intuitive_interface only, to avoid too many combinations 2025-01-26 06:40:00 +01:00
stefan schippers ea5609dd0b more comments in callback() 2025-01-26 02:35:00 +01:00
stefan schippers 34f9ae73a0 more comments in callback() 2025-01-26 02:32:43 +01:00
stefan schippers 7e697672ce more comments in callback() 2025-01-26 02:00:07 +01:00
stefan schippers 70156a3bda intuitive interface, directly drag elements: default to wire stretch if enable_stretch is activated and normal move if using ctrl key and the other way around if enable_stretch is unset 2025-01-26 01:06:48 +01:00
stefan schippers 01989bba0c fix issue with previous fix, add enable_stretch parameter to select_inside() and select_rect() 2025-01-26 00:26:56 +01:00
stefan schippers 1bee3d766f included TheSUPERCD commit 260beff, if (full and only full) crosshair is displayed use snap mouse coordinates since mouse pointer is turned off; fixed an issue when selecting ridicolously small rectangles in find_closest_box() 2025-01-25 23:41:39 +01:00
stefan schippers 6cc7883e51 reduce overlap area when clearing crosshair, add return value to find_closest_net_or_symbol_pin() 2025-01-25 14:33:01 +01:00
stefan schippers 71aa4339bd add comment 2025-01-25 02:46:54 +01:00
stefan schippers 4700483fa4 draw_crosshair(): more logical what parameter values 2025-01-25 02:13:59 +01:00
stefan schippers 26bfe7691b add `xschem draw_hilight_net [on_window]` for quick draw or hilighted objects; add `xschem get_sim_sch` to get the current schematic hierarchy path, stripping off levels above the level the raw file was loaded. Strip off also leading dot; `xschem hilight_instname`: move fast option as -fast option; list_nets(): expand vector ports ; optimize update_op() for speed 2025-01-24 18:57:35 +01:00
stefan schippers 7553222461 remove a piece of useless code in new_wire(), fix some MENUSTARTSNAPWIRE issues with crosshair drawing, enable no infix_interface operation for `W` command 2025-01-23 11:38:32 +01:00
stefan schippers 096eb126c1 comment in the code 2025-01-22 17:29:17 +01:00