Commit Graph

2886 Commits

Author SHA1 Message Date
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
stefan schippers 42a0ceb51f findnet.c: fix some errors in distance calculation leading to "holes" in the selection of instances. 2025-01-30 21:00:46 +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 ee750099e3 svgdraw(): draw in grey or red ignored or shorted devices, some fixes in ps_print() 2025-01-29 18:52:38 +01:00
stefan schippers 40fd937d51 shorted_instance(): fixed a bug: lvs_ignore active disallows evaluation of spice_ignore flags; ps_draw_symbol(): draw in grey or red ignored or shorted devices 2025-01-29 16:22:44 +01:00
stefan schippers 92bb16773c guard against trepassing max hierarchy level when descending, updates to cellview and traversal procs 2025-01-28 11:24:51 +01:00
stefan schippers 44cc37f013 optimization: comment out a call do dbg() in a deep, deep nested loop in draw_graph(), enable if needed 2025-01-27 15:33:46 +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 f2cc1d0216 move_objects(RUBBER,...) and copy_objects(RUBBER): return immediately if snapped mouse coordinates not changed 2025-01-26 17:58:03 +01:00
stefan schippers bce1e652c6 refactored xctx->y_[12] to xctx->y[12] 2025-01-26 17:49:47 +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 dad3b78931 Add a line number in error report if failed sourced tcl scripts 2025-01-25 19:39:53 +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 48264c0399 allow `xschem translate -1 string` to translate tokens that do not depend on specific instances; yet another change in wrap detection in graphs, always use simulator sweep-var instead of user specified sweep variable; simulated data will never wrap exactly to first value due to roundoff errors; -fast optionto `xschem hilight_netname` command 2025-01-24 03:52:20 +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
stefan schippers 0824c1b9b8 fix garbage on screen due to crosshair cursor if copying by drag (Shift-click-drag) in intuitive interface (collision with snapped crosshair position) 2025-01-22 17:00:03 +01:00
stefan schippers 4e821586c2 replaced find_closest_net_or_symbol_pin() with new function that uses spatial hash table iterators for searching 2025-01-22 03:59:49 +01:00
stefan schippers 0c8631a101 MotionNotify events with Shift key down (and draw_crosshair enabled) will position the crosshair to the closest available landing point (inst pin or wire endpoint) 2025-01-22 01:57:09 +01:00
stefan schippers ed2a4f61c8 code formatting cleanups 2025-01-22 00:22:02 +01:00
stefan schippers 1015a9d71e added command `xschem set crosshair_layer` to change layer used for crosshair drawing 2025-01-21 16:50:31 +01:00
stefan schippers 7ee11e8dbc various fixes related to crosshair mouse display 2025-01-21 16:07:23 +01:00
stefan schippers 49aab703b4 set default value for crosshair_size tcl var to 0 2025-01-21 15:40:59 +01:00
stefan schippers 72d961aacd fix a regression where a mouse wheel zoom or schematic pan unexpectedly end an ongoing wire placement. Add xschemrc variable crosshair_size; if set to 0 draw full crosshair, if set to a small integer draw a small square around the mouse snapped coordinate 2025-01-21 15:38:19 +01:00
stefan schippers 99b0bba5b8 if big_grid_points is not set draw always thin axes and mouse crosshairs; dashed axes 2025-01-21 12:34:14 +01:00
stefan schippers 2b05b365e5 If opening a non existing xxxx.sym file euristically set netlist_type to symbol --> better implementation 2025-01-21 04:09:08 +01:00
stefan schippers 5d52d322b5 symbol_in_new_window(): if no symbol selected build file name for symbol of current schematic and open it in a new tab. If opening a non existing xxxx.sym file euristically set netlist_type to symbol. proc open_sub_schematic: if no symbol selected for subcircuit to open, open the corresponsing schematic of the symbol we are editing 2025-01-21 02:57:46 +01:00
stefan schippers 6adee35b89 update make_sym.awk to use a polyline instead of segments for the symbol box 2025-01-20 23:03:33 +01:00
stefan schippers c9f60ce1c8 clanup / better implementation of previous fix 2025-01-20 18:39:46 +01:00
stefan schippers c52ded63b0 complete previous fix 2025-01-20 18:21:12 +01:00
stefan schippers 7523c0015c correctly mangle generator calls with parameters containing forbidden characters. Transliterate to get valid SPICE identifiers 2025-01-20 17:54:06 +01:00
stefan schippers 724c264c9d allow Shift-T command (toggle spice_ignore attribute) to cycle through ignore-shorted-unset on selected elements 2025-01-20 16:48:31 +01:00
stefan schippers 0e53359ee0 update proc cellview 2025-01-20 14:52:30 +01:00
stefan schippers cb38deffa6 add -keep_symbols to `xschem load command`, options changed to have a leading dash, and moved at beginning of command arg list; `xschem netlist` command: add -keep_symbols option; `xschem setprop` command: move fast and fastundo to beginning of arg list with a leading dash; update proc cellview 2025-01-20 02:30:46 +01:00
stefan schippers 4f31c024c8 add option -noalert to `xschem netlist` command, update `proc cellview` 2025-01-19 23:29:41 +01:00
stefan schippers 16121b6e07 keep selection if aborting a move operation. This was probably a regression 2025-01-19 14:13:57 +01:00
stefan schippers 2bd1c79cd5 enhance drawing wires in intuitive_interface by dragging away from an instance pin or wire endpoint. Allow set manhattan/oblique direction as with w keybind 2025-01-19 13:59:18 +01:00
stefan schippers 4759d58ad5 add a prepare_netlist_structs() in get_pin_attr() to update net names for @#pin tokens 2025-01-19 02:31:58 +01:00
stefan schippers 6dcc9fd7c5 allow Shift-Click to terminate snapped wire placement (in addition to Shift-W) 2025-01-18 23:50:04 +01:00
stefan schippers ca1035eca1 add no-infix (set infix_interface 0) operation to move and copy operations 2025-01-18 21:59:04 +01:00
stefan schippers cfb491adb3 draw_crosshair(): parameter del renamed to what; @spice_get_current: special handling for resistors that are converted to b-sources: i(@r.x4.r1[i]) --> i(@b.x4.br1[i]) 2025-01-18 12:38:12 +01:00
stefan schippers 025823f14c `xschem go_back 0` allows to go up in hierarchy *NOT* saving a modified schematic 2025-01-17 18:11:35 +01:00
stefan schippers 151241afc7 add new command `xschem get modified` (returns 1 if circuit needs to be saved) 2025-01-17 17:48:02 +01:00
stefan schippers ac8db614c0 infix_interface xschemrc variable (default=1) can be set to 0 to disable infix (need to click a point after bindkey); disable warnings from graphs with autoload=1 if no raw file or matching analysis found; add m parameter (multiplicity) to bsource.sym, cmos_example.sch; remove dependency on external model file, use ngspice provided mos model 8 bsim3 models. 2025-01-17 17:15:48 +01:00
stefan schippers c57c49fde8 Hiding the TEXT layer will disable only symbol texts on that layer, not all texts, `proc select_layers` make the widget non-modal 2025-01-16 20:37:19 +01:00
stefan schippers ca6b8fe85b end_shape_point_edit(): fix erroneous set_modify because comparing unsmapped mouse saved coords with snapped actual mouse coords 2025-01-16 17:19:42 +01:00
stefan schippers f2225677cc fix regression in (V) cursor movement when multiple side-by-side graphs are present 2025-01-16 16:03:34 +01:00
stefan schippers bcca65da90 translate(), @spice_get_current, typo led to missing argument in printf() 2025-01-16 15:35:11 +01:00
stefan schippers 315c5bd600 added symbol attributes @spice_get_current_<param>, @spice_get_modelparam_<param>, @spice_get_modelvoltage_<param> 2025-01-16 02:52:52 +01:00
stefan schippers f79f9ecf1d removed dbg mesages 2025-01-15 19:12:30 +01:00
stefan schippers f2b9d0c6f3 added attribute @spice_get_current<n> for retrieving current through terminal <n> of primitive device; example: @spice_get_current2 to get base current of BJT device 2025-01-15 17:39:59 +01:00
stefan schippers 7d6c3f4764 destroy_all_tabs() do a final redraw to avoid inconsistent screen after some tab removals 2025-01-15 03:11:12 +01:00
stefan schippers 10991e662c added `xschem symbol_base_name` command to get the base symbol a symbol defined by instance `schematic` attribute comes from; updated `celview` procedure 2025-01-15 00:44:39 +01:00
stefan schippers a24145c16c revert change `LCC symbols: make 1st LCC level pins display spice_get_voltage annotation data` (not working as expected) 2025-01-14 01:13:14 +01:00
stefan schippers b0973ae8c0 add_pinlayer_boxes(): fix uninitialized bb[PINLAYER][i].fill, LCC symbols: make 1st LCC level pins display spice_get_voltage annotation data 2025-01-13 17:30:11 +01:00
stefan schippers 6cca3fefc4 add debug line in load_sym_def() 2025-01-13 13:30:15 +01:00
stefan schippers 0920c6804d comments and indentation in save.c 2025-01-13 11:58:16 +01:00
stefan schippers d05b7fa389 update schematic backannotation on cursor2 position if setting it numerically (Right button click on cursor) 2025-01-12 17:06:44 +01:00
stefan schippers 8da888a119 fix uninitialized `raw` pointer in graph_fullxzoom() and graph_fullxzoom() 2025-01-12 00:08:41 +01:00
stefan schippers 66a6c913e3 removed warning msg 2025-01-11 22:45:42 +01:00
stefan schippers 7d0a0e82bf name_unlabeled_instances() commented out redundant (never happens) check 2025-01-11 20:24:16 +01:00
stefan schippers a7d5865ab8 fix erroneous `all pins disconnected` warning when netlisting pin-to-pin connected element chains 2025-01-11 20:16:01 +01:00
stefan schippers bca1110282 add option -nohier to `xschem netlist` command, correctly restore netlist_dir at end 2025-01-11 17:55:46 +01:00
stefan schippers 7484a6363c interpret `xschem symbols {}` as `xschem symbols` (simpler for scripts), update proc cellview 2025-01-11 15:30:22 +01:00
stefan schippers 172ab4081d changed `xschem is_symgen` to `xschem is_generator` as name is more appropriate 2025-01-11 14:17:30 +01:00
stefan schippers 02d992d2a6 fix error checks in get_sch_from_sym() 2025-01-11 14:10:02 +01:00
stefan schippers 5161f3dc0a some doc updates and comments, error checks in get_sch_from_sym() 2025-01-11 14:08:23 +01:00
stefan schippers 9d54269d25 doc updates (@spice_get_node) 2025-01-11 01:34:41 +01:00
stefan schippers 69ddd2966c get_sym_name(): use with_quotes=6 in extraction of schematic attribute as done in get_additional_symbols() and get_sch_from_sym() 2025-01-10 17:40:16 +01:00
stefan schippers be76009a3c remove dbg msg 2025-01-10 17:15:53 +01:00
stefan schippers a0da5c7b51 fix resolution of symbol references like: symbolgen.tcl(buf), when descending into symbol correctly recognize generator and descend into generated symbol 2025-01-10 17:14:13 +01:00
stefan schippers 1d5ff21130 get_sch_from_sym() fix detection of empty instance `schematic` attribute 2025-01-10 16:51:20 +01:00
stefan schippers aeb57781a8 fix some c89 violations (warnings) 2025-01-10 16:14:24 +01:00
stefan schippers 59e7872f67 reduce some pointer indirections to array subscripts (readability) 2025-01-10 16:00:47 +01:00
stefan schippers 0a3fd95e06 code formatting 2025-01-10 14:58:10 +01:00
stefan schippers 882e20397d get_additional_symbols(), get_sch_from_sym(): allow to resolve schematic calls like: schematic=generator.tcl(@n\) --> let get_tok_value() return backslashes and remove surrounding "..." quotes 2025-01-10 14:12:05 +01:00
stefan schippers a29814d728 get_additional_symbols(), get_sch_from_sym(): allow to resolve schematic calls like: schematic=generator.tcl( @n ) where n=11 is defined in instance attrs. some fixes in cursor movement in waves_callback() 2025-01-10 06:03:52 +01:00
stefan schippers 2c1e1c1fe7 refactoring and cleanup of wave_callback() -8- 2025-01-10 02:35:50 +01:00
stefan schippers ef5d0e1b96 str_replace(): add parameter to specify number of substituitions (or all); replaced atof_spice() with atof_eng() in various parts related to numbers that do not come from spice netlists; fix numerical setting of cursors if log scale is set (wrong preset was shown); make wave labels in graph scale with gr->magx as X-axis labels; fix scaling roundoff issues in dtoa_eng(); add new `@spice_get_node <spice_node> ` token (where spice_node may contain @variables) in symbol texts to display indicated spice node value. Does not use TCL, thus faster and less "quoting hell" problems 2025-01-10 01:52:54 +01:00
stefan schippers aa36cbb897 @path expansion in translate(): remove path components above the level where raw file (if any) was loaded; added @spice_get_current in bsource.sym 2025-01-09 15:35:35 +01:00
stefan schippers c6a4e8b942 refactoring and cleanup of wave_callback() -7- 2025-01-09 04:23:23 +01:00
stefan schippers cd3eaf23ea refactoring and cleanup of wave_callback() -6- 2025-01-09 04:11:30 +01:00
stefan schippers 52b9cc1ee6 refactoring and cleanup of wave_callback() -5- 2025-01-09 00:46:42 +01:00
stefan schippers ff7c767c4d propagate drawing graph Hcursor functions to SVG/PDF exports 2025-01-09 00:31:11 +01:00
stefan schippers 7d7b381b7b refactoring and cleanup of wave_callback() -4- 2025-01-09 00:17:55 +01:00
stefan schippers ed9dc9b211 disable debug msg 2025-01-09 00:12:07 +01:00
stefan schippers 45a0af8005 fix unwanted clear of GRAPHPAN bit in button3 operations in wave_callback() 2025-01-09 00:11:04 +01:00
stefan schippers 444eb47eb5 refactoring and cleanup of wave_callback() -3- 2025-01-08 22:19:58 +01:00
stefan schippers d1e2328eb3 refactoring and cleanup of wave_callback() -2- 2025-01-08 21:12:59 +01:00
stefan schippers bbdfd3c61a refactoring and cleanup of wave_callback() 2025-01-08 16:36:45 +01:00
stefan schippers 0d7d1f5364 implemented drag with right-button pressed on left of Y axis to do a Y area zoom 2025-01-08 15:05:11 +01:00
stefan schippers 12a9276ee0 optimization in plotting routines: skip unwanted datasets, if no dc simulation there is no need to detect sweep variable wraps 2025-01-08 13:27:07 +01:00
stefan schippers 182b55adf8 fix some issues when setting numerical position of cursors (spurious activation of `GRAPHPAN`); proc input_line: return `preset` argument on Cancel 2025-01-08 01:21:05 +01:00
stefan schippers 149ee5fdc0 further refactoring of waves_callback() (reduce first loop over graphs to single iteration on graph_master) 2025-01-07 14:31:26 +01:00
stefan schippers d2321f1eeb cleanup code in waves_callback() 2025-01-07 13:04:41 +01:00
stefan schippers 15738bbf51 better drag waves in x direction (continue even if dragging outside of graph) 2025-01-07 12:03:49 +01:00
stefan schippers a3e7610d83 horizontal cursors in graphs 2025-01-07 04:20:32 +01:00
stefan schippers 9fda7e2f96 wip: put code in place for horiz cursors in graphs 2025-01-06 13:14:12 +01:00
stefan schippers 783fa04eb6 `xschem save` --> save_schematic(): added `fast` argument (do not update window/tab/sim button states for speed); `xschem select instance` --> select_element(): added `nodraw` argument in addition to existing `fast` (avoid drawing selected item for speed) 2025-01-05 13:27:49 +01:00
stefan schippers 4d76708534 save_schematic(): remove set_modify(2) if same name. need to add a dedicated parameter for save without title update 2025-01-05 11:27:18 +01:00
stefan schippers fd5fec64aa make uninstall: remove empty directories (share/xschem and share/doc/xschem); make command `xschem help` work also if running in src/ directory; use XSCHEM_SHAREDIR shell variable (if defined and directory existing), else set XCSCHEM_SHAREDIR to `pwd` if started from src/ dir, else set compile set XSCHEM_SHAREDIR. xschemrc can override this XSCHEM_SHAREDIR setting. 2025-01-05 01:29:04 +01:00
stefan schippers 09813f8e1e restrict `menu unpost by click` hack to 8.6+ tcl versions. the hack works on tcl8.4, but lets avoid potential problems on jurassic systems 2025-01-04 12:47:13 +01:00
stefan schippers f824f26c4f click on posted menu will unpost it. Now no more Motion event is needed to repost again the menu by another click 2025-01-04 12:39:22 +01:00
stefan schippers ee0de61220 add `2` and `3` argument to set_modify (do only clear/set modified flag), save() -> save_schematic(): do not update title/tab names if saving with same name. 2025-01-04 12:24:22 +01:00
stefan schippers 69a23355fb refactor some debug print messages for NULL strings 2025-01-04 11:33:58 +01:00
stefan schippers 4e2584341c updates on cellview and traversal; hack on Menu Button event handler to allow a click on a posted menu to unpost it. 2025-01-04 04:16:43 +01:00
stefan schippers 0e63e1bfff remove commented dirty hack 2025-01-03 13:48:23 +01:00
stefan schippers abc88e8819 Revert dirty hack to make a click on an open menu close it, still some issues 2025-01-03 13:15:30 +01:00
stefan schippers ed1149edb2 dirty hack to make a click on an open menu close it 2025-01-03 13:09:18 +01:00
stefan schippers e77cc334f4 has_included_subcircuit() and proc has_included_subcircuit: compare and reorder only ports with associated symbol pin. do not consider `extra` ports assigned via attributes 2025-01-03 00:49:54 +01:00
stefan schippers 294a10bd5a go_back(): if a write of modified schematic is requested before going up but write fails (for example due to permission issues) then issue a warning and go ahead anyway. Previously xschem got stuck in the lower hierarchy with no way to escape. If xschem load is done with `noundoreset` option do not change some context data (xctx->currsch, xctx->sch_path, xctx->portmap, xctx->sch_inst_number, ...). Various fixes/enhancements in cellview and traversal procedures. 2025-01-02 22:38:40 +01:00
stefan schippers 45382d1b1d fix `s` command (simulate) to work with new menu system 2025-01-02 13:22:34 +01:00
stefan schippers 2bd205427d load_schematic(): do not set xctx->time_last_modify if called with reset_undo == 0; fix persistent command mode when started from menu; update traversal procedures 2025-01-02 12:52:51 +01:00
stefan schippers 8fa2c9c22a add all_hierarchy parameter to proc traversal 2025-01-01 11:48:33 +01:00
stefan schippers 041d90548d xschem.tcl toolbar procs reordering 2024-12-31 22:57:28 +01:00
stefan schippers 3a8d36d0fe update add_custom_menu.tcl to new menu system, some refactoring in xschem.tcl for toolbar (add_toolbuttons procedure) 2024-12-31 21:00:09 +01:00
stefan schippers 05dc1a4772 update add_custom_menu.tcl for new menu system 2024-12-31 13:05:48 +01:00
stefan schippers b23b162f2c rewritten the menu system using a menubar vs the menubuttons 2024-12-31 03:51:05 +01:00
stefan schippers 2c8468ee1c add custom binding to MenuButton Button-1 events so clicking on a posted menubutton will unpost it 2024-12-30 19:03:06 +01:00
stefan schippers 1a14adaade Hovering other menu titles while one is open will drop down the other menus, even wihout holding down mouse button1 2024-12-30 15:31:59 +01:00
stefan schippers 1e75d69dfe remove unused variable mbg in menu system 2024-12-30 11:20:07 +01:00
stefan schippers c45ae9248b slightly bigger font for traversal 2024-12-30 01:11:37 +01:00
stefan schippers 724c67435c updates in traversal proc, fix searching for xschem_man.html if clicking the link into the About dialog and running xschem from the src/ dir. 2024-12-30 01:04:40 +01:00
stefan schippers 0ba037894f update keys.help 2024-12-29 21:37:17 +01:00
stefan schippers 135022a39d removed src/traversal.tcl 2024-12-29 19:39:29 +01:00
stefan schippers 0b4cedbf05 add Button3 drag for rectangle zoom, move ctx menu to Button3Release, updates in traversal and cellview 2024-12-29 19:35:49 +01:00
stefan schippers b68731481c updated cellview and traversal procedures 2024-12-29 14:47:27 +01:00
stefan schippers be39ce970b remove traversal.tcl from src/Makefile.in 2024-12-29 12:52:28 +01:00
stefan schippers 0ffd327b85 do not do a rectangle zoom (`z` key) if no minimum area is given; added `xschem get symbols` command; added `derived_symbols` in `xschem symbols` command; added menu `simulations->Keep symbols when traversing hierarchy`; created `proc cellview` and integrated `traversal.tcl` into xschem.tcl 2024-12-29 12:38:26 +01:00
stefan schippers 61c4f72c15 some `xschem test` benchmarks added 2024-12-24 03:15:50 +01:00
stefan schippers b16a5ef927 code comments 2024-12-23 12:24:06 +01:00
stefan schippers 3fecba878c fix double push_undo() call when adding a wire in intuitive_interface (by click and drag from a wire endpoint or symbol pin). This led to inconsistencies (spurious connecting dots on wires) when doing an Undo operation 2024-12-23 02:22:40 +01:00
stefan schippers 712b985333 proc edit_prop: better selection of value=".... \" .... \" ...": dont get confused by escaped quotes 2024-12-23 00:51:52 +01:00
stefan schippers 7a8ab78d11 restore rotten intuitive interface command ctrl-shift-click-drag to move a component creating wires if pins attached to components or wires 2024-12-22 18:49:58 +01:00
stefan schippers c4ebc92aa2 update xschem go_back command (pas integer notitle to go_back() function; simplify wrap handling vs sweep variable in draw_graph(), graph_fullyzoom(), calc_custom_data_yrange(), find_closest_wave() 2024-12-21 13:05:33 +01:00
stefan schippers 6682965dba make @spice_get_current work for pnp and npn symbols 2024-12-21 00:49:44 +01:00
stefan schippers b892ad8ac7 Make @spice_get_current report Id (drain current) for mos devices (defined as plain mosfets in model (ngspice syntax), may be to extend for Xyce) 2024-12-20 22:25:19 +01:00
stefan schippers 1ddafe3276 updated autozero_comp.sch to show saout histogram; xschem raw switch: do not call update_op() if not switching into a 1-point OP or DC sim 2024-12-20 11:56:53 +01:00
stefan schippers 47f0d2d57c improvements in raw_get_pos(), fix test_backannotated_subckt.sch (was not simulating anymore) 2024-12-20 02:28:38 +01:00
stefan schippers d9d75de337 remove dbg message 2024-12-20 01:19:02 +01:00
stefan schippers d03f3b52e1 bars for hystograms use squared lines, not rounded lines, added command `xschem raw pos_at node value` to find position (in raw file) where node = value 2024-12-19 23:53:11 +01:00
stefan schippers 7402385a82 fix regression from commit `graphs: always plot one point before x1 and one point after x2 of simulation`: 2-dimensional dc-sweeps did miss first or last point 2024-12-18 01:55:05 +01:00
stefan schippers da6532d8d8 doc updates (xschem image command) 2024-12-17 09:27:01 +01:00
stefan schippers 6b75aa62aa avoid a redundant set_modify(-1) in review_window("destroy"...) 2024-12-17 01:07:36 +01:00
stefan schippers 158ed8decc load_schematic(): do not invoke trim_wires (if enabled) if called non interactively with reset_undo == 0 (it will change name of top schematic in tab and window title while netlisting) 2024-12-16 16:44:56 +01:00
stefan schippers 5bc194f3a5 separated undo_initialized and mem_undo_initialized, so they can be used more interchangeably 2024-12-16 12:14:11 +01:00
stefan schippers b4423126ea add (disabled) debug message in proc set_tab_names 2024-12-16 09:09:39 +01:00
stefan schippers 8c4d5cb7b8 push_undo() correctly handle case when tmpdir can not be created (init_undo() fails) 2024-12-16 02:18:32 +01:00
stefan schippers cac5392a45 proc set_tab_names: call [xschem get schname] only once 2024-12-16 01:24:36 +01:00
stefan schippers 538d3bf2ad xschem raw values now returns full precision, no more 8 digit rounding, as this is undesirable for transient noise sims 2024-12-15 12:24:51 +01:00
stefan schippers 5eea0728c7 update in_memory_undo.c to be in sync with pop_undo(4, ...) 2024-12-14 22:39:13 +01:00
stefan schippers e8e217591d add verilator in addition to icarus verilog simulator 2024-12-12 12:45:24 +01:00
stefan schippers a97b47623f annotate_op: delete current raw file (to replace with new OP raw) ONLY if current loaded raw file is an OP simulation (npoints==1) 2024-12-11 01:54:31 +01:00
stefan schippers 13e38b803d annotate_op command only deletes loaded OP raw file (if any), does no more delete all loaded raw files. 2024-12-10 23:31:09 +01:00
stefan schippers 4bdfa44575 use ttk::combobox instead of spinbox where available (tcl > 8.4) for graph Line/HistoH/HistoV selection 2024-12-10 11:41:35 +01:00
stefan schippers 48d7522a8c remove debug messages 2024-12-10 00:37:26 +01:00
stefan schippers 893c48d7dd fix some HistH graph draw artifacts when panning/zooming the graph 2024-12-10 00:07:33 +01:00
stefan schippers 8bb69b65e9 HistogramH and HistogramV graph modes 2024-12-09 17:25:40 +01:00
stefan schippers 2a7ee749ba xschem raw add: add optional sweep_var parameter 2024-12-09 00:00:27 +01:00
stefan schippers 2ec8c61757 fix previous commit for digital graphs 2024-12-07 11:40:49 +01:00
stefan schippers f73cf30452 added a fix in draw_graph_points() to avoid waves to be drawn outside of the graph box container on Windows, where there is no working XSetCLipRectangles() 2024-12-07 00:56:04 +01:00
stefan schippers 963e877497 Allow wave expressions with spaces on a single line without quotes ("...."). Quotes can be used for wave expression on multiple lines. Side effect: multiple nodes can no more be specified on a single line separated with spaces. Use newlines 2024-12-05 02:54:08 +01:00
stefan schippers 75b5cc13f4 added `-undo 1` to all text widgets. If text_replace_selection is enabled replace selection when pasting also in entry widgets as done with text widgets 2024-12-04 16:38:35 +01:00
stefan schippers 0734414bd7 simplify some regsub pattern substitutions in xschem.tcl 2024-12-04 13:41:52 +01:00
stefan schippers ce99d093c4 screen grab: if draw crosshair is enabled and a screen grab is done show default mouse pointer 2024-12-01 11:55:46 +01:00
stefan schippers 5ae730a5fb waves_selected(): do not check sch_waves_loaded() to return is_inside 2024-11-30 10:57:06 +01:00
stefan schippers 17a564062c graphs: always plot one point before x1 and one point after x2 of simulation waves so they will extend to full graph area even if there are few simulation points. 2024-11-30 01:16:37 +01:00
stefan schippers ebc4babdd4 add graph_use_ctrl_key variable (default 0) to force holding Control key to interact with graphs. This avoid graphs "stealing" events that are expected to work on the schematic 2024-11-29 22:52:36 +01:00
stefan schippers 7ca8857302 starting a move (m) or copy (c) operation when nothing is selected does not change ui_state. Clearly a bug 2024-11-29 01:30:38 +01:00
stefan schippers 8eb60ae32b allow full specification of file selector window geometry and pane sizes. examples in xschemrc 2024-11-28 11:37:21 +01:00
stefan schippers 471675ad49 fully remember panedwindow (vertical and horizontal) sash positions in load_file_dialog 2024-11-28 10:06:37 +01:00
stefan schippers e2f19d8b7c better implementation of previous fix. if read_dataset() does not find a matching dataset, delete only current raw structure, not all loaded raw files. 2024-11-28 03:51:27 +01:00
stefan schippers 9c48617e4e xschem annotate_op command: if no OP analysis is found in raw file try to load a DC sweep and use first point for schematic annotation. This is done because Xyce stores OP data as a 1-point DC sweep 2024-11-28 03:18:32 +01:00
stefan schippers f9b341ef98 revert last changes in draw_graph_points(). Optimization was already done. 2024-11-28 00:51:38 +01:00
stefan schippers b642d63215 avoid unneeded calls to draw_crosshair(1) if crosshair is not enabled. Double performance of draw_graph_points() (do not draw on xctx->window if XCopyArea drawing model (now the default) is enabled 2024-11-27 16:13:48 +01:00
stefan schippers ca6fb60ce7 added `legend` checkbutton in graph dialog box to switch off signal legend in analog graphs 2024-11-25 14:29:19 +01:00
stefan schippers cf7933b99d save.c: do not assume complex data for `constants` raw file sections, deduce data type from Flags line (both complex and real constants sections exist) 2024-11-25 12:48:25 +01:00
stefan schippers 7fccc2eed1 better xschem bbox command 2024-11-22 03:12:57 +01:00
stefan schippers 4fff388f99 add `constants` plot type in graph sim type drop down menu 2024-11-22 00:11:37 +01:00
stefan schippers 893bd20901 remove a clipping condition in draw_graph_points() as graph-area clip is set in draw_graph() 2024-11-21 10:58:15 +01:00
stefan schippers 67a4407952 fix typo in condition (draw_pixmap instead of save_pixmap) 2024-11-16 10:19:34 +01:00
stefan schippers 7e699d94e5 indentations in xschem.tcl 2024-11-14 20:41:54 +01:00
stefan schippers 1c69848325 correctly handle `set_title & 2` in descend_schematic() 2024-11-14 00:35:21 +01:00
stefan schippers 819e2f0969 limit precision of (now unsnapped) selection rectangle dimensions in status line 2024-11-13 23:05:46 +01:00
stefan schippers de9c40af65 allow file extension spec in tmpfile creation, update index.html 2024-11-13 12:04:56 +01:00
stefan schippers 4fca204e8d improvement of previous commit. Sanitize paths ending with ////, like /aa/bb/cc/// 2024-11-12 22:48:21 +01:00
stefan schippers 169d743b33 insert symbols should tolerate paths in XSCHEM_LIBRARY_PATH ending with `/` 2024-11-12 20:58:09 +01:00
stefan schippers 20359ed43e update license info. Remove unneeded newline saving in version line of .sch/.sym files, remove c89 flag based on lib versions 2024-11-12 20:23:18 +01:00
stefan schippers aa95f0ff9d Small changes to allow build with tcl-tk 9.0 2024-11-12 01:16:43 +01:00
stefan schippers 127a2a0221 add needed include <stdarg.h> in scheduler.c (needed, probably some library or other include file was sourcing it). 2024-11-11 20:59:29 +01:00
stefan schippers 63ac9ccbb9 update Changelog for 3.4.6 2024-11-11 17:17:42 +01:00
stefan schippers dd33a067de select rectangles are unsnapped. much easier to select small objects 2024-11-10 09:53:37 +01:00
stefan schippers 346666e13d draw_graph_grid(): handle NaN in y-data , avoid infinite loop 2024-11-07 00:39:53 +01:00
stefan schippers b7e39700d4 add ability to read ASCII raw files 2024-11-06 11:59:00 +01:00
Stefan Schippers bb49cc9b26 fix incomplete line in actions.c 2024-11-05 20:09:04 +01:00
stefan schippers 92c99c10f9 get_additional_symbols(): some sanity checks, descend_schematic() more options in set_title argument (avoid set title, avoid processing pins/nets, avoid descending into i-th xdec[3] instance, descend as a whole xdec[3:0], add `xschem get_additional_symbols what` command, allow `xschem get_sch_from_sym -1 inv.sym` to get schematic associated with symbol. hier_psprint(): avoid printing / listing duplicate schematics, improved traversal.tcl 2024-11-05 13:59:37 +01:00
stefan schippers 0bd6ccef86 select_element(): do not draw selection if fast argument given 2024-11-03 10:33:11 +01:00
stefan schippers e26e03ff0b comments on top of change_sch_path() 2024-11-03 00:23:49 +01:00
stefan schippers 94d5c44599 xschem change_sch_path command for changing the current path we are descended in; set_title parameter for xschem descend and xschem go_back (optimization for faster scripts). optimized utility procedure traversal.tcl. Catch glob pattern errors in proc setglob 2024-11-03 00:22:40 +01:00
stefan schippers f3abdf2eb8 avoid another crash in case of malformed raw files (if raw->npoints not allocated return without attempting to read raw file) 2024-11-01 00:27:29 +01:00
stefan schippers 65bd4ce766 fix is_quoted() (reported "aaa\\\"bbb" as unquoted) 2024-10-31 11:06:19 +01:00