Commit Graph

3202 Commits

Author SHA1 Message Date
stefan schippers 56aa1a6a27 fullscreen will again remove menubar (was always shown after menu refactoring) 2025-11-02 16:51:29 +01:00
stefan schippers 730b951b37 smaller threshold for mouse movement to abort click&drag move operation 2025-11-02 11:19:15 +01:00
stefan schippers a41d142562 do not show "already open" warning if re-opening same schematic in same window/tab; new_file_browser: "Save current window" button will ask where to save, to avoid dangerous overwrites 2025-11-02 10:23:58 +01:00
stefan schippers aa240c4244 xschem table_read (not the recommended xschem raw table_read): set raw->sim_type to "table" 2025-11-01 23:04:23 +01:00
stefan schippers eae8c2772a fix regression (no check for null raw->sim_type), allow quoted table titles in table_read() 2025-11-01 22:43:48 +01:00
stefan schippers ba020c243e propagate changes for arcs with negative b angle to svgdraw and psprint 2025-11-01 02:08:17 +01:00
stefan schippers 442436a8aa another fix find_closest_arc() if arc was saved with negative "b" angle 2025-10-30 01:53:00 +01:00
stefan schippers 1c1edfe159 redo fix arc_bbox() if arc was saved with negative "b" angle 2025-10-30 01:45:20 +01:00
stefan schippers 3fcc5cdfc6 fix find_closest_arc() and arc_bbox() if arc was saved with negative "b" angle 2025-10-30 01:12:11 +01:00
stefan schippers bf344309f0 implement "nodraw" flag in all object selections in the "xschem select" command, implement the "nodraw" flag in "xschem search" command 2025-10-29 09:06:07 +01:00
stefan schippers 2763c6010f improved xschem arc command (allow user parameters in addition to GUI plaecment) 2025-10-29 08:20:08 +01:00
stefan schippers 129e194bc5 tclcmd improvements 2025-10-27 23:13:14 +01:00
stefan schippers 1583c83d96 small improveents in "Execute tcl command" 2025-10-27 08:43:27 +01:00
stefan schippers 5c41eabcd6 fix error in "xschem text" command arguments 2025-10-24 07:42:10 +02:00
stefan schippers d16cbf94c0 improvements in tcl command console (added "=" keybind) 2025-10-23 15:11:19 +02:00
stefan schippers afefb18ee2 fix regression: selection of beziers either by clicking close to the bezier line or to the control points 2025-10-15 11:12:16 +02:00
stefan schippers d3d0b78c08 better and faster is_xschem_file detection 2025-10-15 10:41:32 +02:00
stefan schippers b01bd1ca60 improve previous fix 2025-10-14 00:45:32 +02:00
stefan schippers b072701cbd fix regresions in get_sym_name() and get_sch_from_sym(), use catch {...} in proc edit_prop for xschem getprop symbol ... command if symbol not found 2025-10-14 00:31:47 +02:00
stefan schippers 8b7b444f13 complete previous commit 2025-10-13 16:22:01 +02:00
stefan schippers 9fc68ed81b pins / labels with no "lab" attribute set will inherit it from attached nets. Do not use template symbol "lab" attribute 2025-10-13 12:13:57 +02:00
stefan schippers f732071a02 Recent component toolbar: removed c_t($i,command) member from c_t array 2025-10-12 23:36:36 +02:00
stefan schippers 169f5c9d5f file_chooser: by default include level 0 base directories even if not containing xschem files; fixed a bug in table_read() (uninitialized data if failed to find table file) 2025-10-11 09:47:11 +02:00
stefan schippers 7c8988407d better balloon messages 2025-10-11 00:23:42 +02:00
stefan schippers 60cb795a74 add "Select current" button in file_chooser 2025-10-11 00:19:56 +02:00
stefan schippers 57ec990e6d file_chooser_saveas: reset save button background after save 2025-10-10 18:57:04 +02:00
stefan schippers 31b9598219 translate(): resolve stuff like value="expr( 1000 * @VCC )" with value=1800 (using translate3() with parent level prop_ptr attributes) 2025-10-10 18:40:59 +02:00
stefan schippers eda8dca19f file_chooser: save button turns red when current schematic needs a save 2025-10-10 14:52:56 +02:00
stefan schippers 11012480a0 fix: previous commit obscured Motion event 2025-10-10 14:36:49 +02:00
stefan schippers 44e21ad5d4 file_chooser: added save/saveas function 2025-10-10 14:02:35 +02:00
stefan schippers 3ea99e919e find_closest_text(): lower priority to avoid text objects always getting selected vs other closer objects 2025-10-08 01:33:44 +02:00
stefan schippers c565a363b0 added error checking on various file open operations in xschem.tcl 2025-10-08 00:48:16 +02:00
stefan schippers 32d18b5a94 added listbox:select (courtesy Mark G. Saye) procedure to put selected listbox items created with -exportselection 0 into PRIMARY selection 2025-10-07 13:19:27 +02:00
stefan schippers 94a4685829 proc set_paths: remove forgotten line 2025-10-07 02:27:48 +02:00
stefan schippers 629d667eba file_chooser: when clicking directory item clear preview, unselect file items 2025-10-07 02:17:07 +02:00
stefan schippers 4815b1650f get_sym_name() and get_sch_from_sym(): get instance "schematic" attribute in the same way as done in get_additional_symbols() 2025-10-07 02:13:05 +02:00
stefan schippers add555b001 fix paned window sp0 and sp1 sizes save/load in file_chooser 2025-10-07 00:43:10 +02:00
stefan schippers 50f77010fb persistent file_chooser_geometry. A typo in set file_chooser(abs_filename $f (missing close bracket) 2025-10-07 00:27:26 +02:00
stefan schippers feab800bba code formatting 2025-10-06 23:20:54 +02:00
stefan schippers ae1028501c fix a regression in legacy load_file_dialog (due to changes in set_paths) 2025-10-06 23:18:30 +02:00
stefan schippers 028516267b file_chooser: add Show XSCHEM_LIBRARY_PATH in proc file_chooser_set_paths 2025-10-06 22:58:36 +02:00
stefan schippers 4692cb0b04 better comment in file_chooser 2025-10-06 17:20:32 +02:00
stefan schippers eb934e6e7d further improvements in file_chooser when switching windows (trace variables to update) 2025-10-06 16:18:09 +02:00
stefan schippers 8b3f058bfe some fixes in file_chooser about item selections 2025-10-06 11:28:49 +02:00
stefan schippers e63b8bab6c file_chooser: better handling of context switches: clear file list if switching window with a different search path 2025-10-06 10:13:14 +02:00
stefan schippers dc07be9071 in <<ListboxSelect>> events use ...listpath... curselection instead of ..listpath... index active, as the latter is updated *after* the event. 2025-10-06 02:05:20 +02:00
stefan schippers fdd4c74f8a optimizations in file_chooser (less context switches due to preview window). Added double click and shift-double-click bindings 2025-10-06 01:45:26 +02:00
stefan schippers 4f66f22b7d fix typo in src/callback.c 2025-10-05 13:42:59 +02:00
stefan schippers 5623c9ca6f save/update some file_chooser(...) vars when context switching 2025-10-05 13:24:41 +02:00
stefan schippers 6df29362d3 file_chooser: update list when switching windows with different search paths 2025-10-05 13:00:43 +02:00
stefan schippers 136a61b4fc various enhancements / fixes in file_chooser; removed new_file_browser_paths 2025-10-05 12:38:24 +02:00
stefan schippers bbfe350e3f proc file_chooser_place: dont do anything if semaphore >0 2025-10-05 04:44:45 +02:00
stefan schippers 96293738ce new file browser (proc file_chooser): fix showing subdirs with spaces 2025-10-05 03:48:40 +02:00
stefan schippers 56019e3e31 new file browser (proc file_chooser) refactor with many improvements, enabled with "set new_file_browser 1" 2025-10-05 03:01:37 +02:00
stefan schippers 8552331961 refactor some procedure names and variables in proc insert_symbol 2025-10-01 23:21:37 +02:00
stefan schippers 0db270fd1e swap_windows(): hack to fix some window managers failing to set window to exact specified position 2025-10-01 16:35:08 +02:00
stefan schippers 273175b4ff proc get_list_of_dirs_with_files: do not return duplicate directories (this could happend if traversing a list of supplied paths with multiple descend levels the same directory is reached multiple times) 2025-10-01 11:12:09 +02:00
stefan schippers 77db999d35 process_options(): better error report if giving non existent short option(s) 2025-10-01 09:42:52 +02:00
stefan schippers b2e12251dc set_initial_dirs: do not reset INITIAL*DIR if already set 2025-09-30 09:38:19 +02:00
stefan schippers 15c141a480 removed unneeded Shift-Backspace and Ctrl-Backspace keybindings, add Ctrl-Shift-T for open last closed (Ctrl-Shift-O already opens most recent). Tcl var "open_in_new_window" will open in new tab/windows as does ctrl-o 2025-09-29 23:30:31 +02:00
stefan schippers 50c593ed65 various fixes about "lastopened" and "lastclosed" file load options 2025-09-29 13:38:52 +02:00
stefan schippers 8d2088edd5 avoid double "is already open" warning when doing Shift-Backspace or Ctrl-Backstapce when schematic already loaded 2025-09-29 10:23:43 +02:00
stefan schippers 9b6e0c697f avoid usage of tk / tk_scaling if no X 2025-09-29 09:43:54 +02:00
stefan schippers 2195596902 implement -lastclosed and -lastopened options in "xschem load" and "xschem load_new_window" commands 2025-09-29 09:28:24 +02:00
stefan schippers 5b1255654e if --lastopened or --lastclosed is specified any file specified on cmdline is considered an additional file to load 2025-09-29 01:21:48 +02:00
stefan schippers bdd09f2db2 add cli options --lastclosed and --lastopened, as well as gui commands Shift-Backspace and Ctrl-Backspace to load last closed or last opened schematic respectively 2025-09-28 23:47:45 +02:00
stefan schippers 94a0a6a2f9 save timestamp in .xschem/geometry and order (last closed first) 2025-09-28 11:39:46 +02:00
stefan schippers 00ad8c9b3b move a pending_fullzoom=1 before a set_geom to avoid missing drawing 2025-09-28 11:06:22 +02:00
stefan schippers cd2aed9e08 move an update instruction in proc set_geom to avoid yet another possible race condition 2025-09-28 10:49:48 +02:00
stefan schippers 87dc376df7 when closing all windows of xschem (in no tabbed mode) avoid unexpected context switches when the "unsaved data" alert is shown, possibly leading to segfault 2025-09-28 09:43:39 +02:00
stefan schippers 63d1897050 various fixes in persistent window geometry save 2025-09-27 03:15:43 +02:00
stefan schippers e8d29c9b42 avoid context switching when opening a new window until new window creation finished (use xctx->pending_fullzoom) 2025-09-27 01:02:36 +02:00
stefan schippers 8043c2af75 source $tcl_files *after* setting default bindings (set_bindings), otherwise additional bindings defined therein will stop working 2025-09-26 23:51:55 +02:00
stefan schippers bbfe761c18 initial_geometry if set in xschemrc has priority over persistent geometry placement 2025-09-26 23:39:50 +02:00
stefan schippers ed9f069752 better avoidance of race conditions between wm and Xevents when placing multiple windows (potential uncaught events) 2025-09-26 18:39:06 +02:00
stefan schippers 0fa05df6ab reset window placement geometry if it happens to be (too much) offscreen 2025-09-26 17:08:07 +02:00
stefan schippers 05e7f36148 replace const string literal XSCHEM_LIBRARY_PATH with array of const string literals, one per path, to get rid of C89 509 character limit 2025-09-26 15:57:40 +02:00
stefan schippers e1bb16ccf1 remove dbg info 2025-09-26 13:04:04 +02:00
stefan schippers a77a10523d allow "xschem switch" also if started without X 2025-09-26 12:59:38 +02:00
stefan schippers 921dcdd506 2 - more window focus / Xevent scheduling related issues, cleanups 2025-09-26 12:51:04 +02:00
stefan schippers 214d18d3df more window focus / Xevent scheduling related issues, cleanups 2025-09-26 12:27:05 +02:00
stefan schippers 5ee7af7b02 set focus inside topwin.drw in proc set_bindings 2025-09-26 11:20:44 +02:00
stefan schippers bd085d2e4f pressing "OK" in symbol editprop dialog box with no changed attributes will not mark schematic as modified 2025-09-26 03:24:32 +02:00
stefan schippers f6620bf6b2 some other fixes for set_geom 2025-09-26 03:05:34 +02:00
stefan schippers ee7e3a965e fix various focus issues in drawing canvas 2025-09-26 01:54:21 +02:00
stefan schippers de7e952f7e typo fix, add -takefocus 0 to toplevel schematic windows 2025-09-26 01:15:27 +02:00
stefan schippers 4fb9ffb766 small button syntax change for readability 2025-09-26 00:58:50 +02:00
stefan schippers 4767e5925e move procedure in different place (before MAIN in xschem.tcl) 2025-09-26 00:25:31 +02:00
stefan schippers 477b4bb37e some fixes about remembered window sizes 2025-09-25 19:37:03 +02:00
stefan schippers e5d933907a Visual Ngspice/VACASK analysis setup from arpadbuermen/master PR #426; remember window geometries of last closed schematics 2025-09-25 16:12:17 +02:00
stefan schippers acce159521 proc insert_symbol: remove sorting of directories. Use the order defined in XSCHEM_LIBRARY_PATH 2025-09-25 00:08:37 +02:00
stefan schippers 6be62c2693 move global var "recentfile" to tctx:: 2025-09-24 22:41:57 +02:00
stefan schippers 2493367140 better reload recent component list when changing search paths 2025-09-24 19:20:56 +02:00
stefan schippers 4155387e0d set_paths: correctly swap recent component list when changing search paths 2025-09-24 13:06:23 +02:00
stefan schippers ad31f65a61 move delay_flag global into tctx:: 2025-09-24 12:25:21 +02:00
stefan schippers 2f33d86f69 fix regression: Properties->Edit Header/License text; fix keybinding documentation for Shift-Tab, Ctrl-Shift-Tab and Ctrl-Tab (switch tabs) 2025-09-24 12:11:31 +02:00
StefanSchippers 2da2ad0cfb
Merge pull request #424 from arpadbuermen/master
Visual Ngspice/VACASK analysis setup.
2025-09-24 08:59:25 +02:00
stefan schippers 6a522a853b better source_user_tcl_files (do the [subst $tcl_files] at global scope so variables like pathlist can be used) 2025-09-23 23:36:44 +02:00
stefan schippers 49bed53ba1 tcl_files: do a tcl "subst" on tcl_files before sourcing file items, so xschem commands (like abs_sym_path) can be used 2025-09-23 22:40:05 +02:00
stefan schippers f3334cea27 evaluate xschemrc "postinit_commands" before loading schematics given on cmdline 2025-09-23 22:19:19 +02:00
Árpád Bűrmen aa72bed12b Visual Ngspice/VACASK analysis setup. 2025-09-23 10:19:06 +02:00
stefan schippers a2529cad5d allow backslash + newline as continuation of comma separated bus bit names in graphs 2025-09-23 03:19:57 +02:00
stefan schippers aa2d8b1b09 better implementation of previous commit 2025-09-23 02:42:13 +02:00
stefan schippers 6ca06347b6 when switching to a different tab/window the related schematic will be marked as dirty (asterisk) if underlying file is changed. 2025-09-23 02:08:17 +02:00
stefan schippers b5de718d63 fix an issue with compare schematics (set tcl compare_sch variable after calling xschem compare_schematics) 2025-09-23 01:39:59 +02:00
stefan schippers 916027ddba cleanup code for add and delete waves in graphdialog 2025-09-22 17:33:28 +02:00
stefan schippers 70ee45f812 add Del button in graphdialog: better undo handling 2025-09-22 16:56:32 +02:00
stefan schippers 9277a844e5 add Del button in graphdialog to delete a wave preserving colors of all others 2025-09-22 16:51:38 +02:00
stefan schippers c41d4a42ba make wave change color undoable 2025-09-22 15:37:20 +02:00
stefan schippers f6b05b15e1 in graphdialog move colors above Add: button 2025-09-22 15:18:56 +02:00
stefan schippers ac4e7fc7fb inserting a wave with Add button in graphdialog will preserve previous wave colors 2025-09-22 14:23:27 +02:00
stefan schippers bd0e07fbe7 proc graph_tag_nodes: better tagging of multi-line nodes that use escaped newlines 2025-09-22 12:06:12 +02:00
stefan schippers 65fe79e621 refactor proc graphdialog_set_raw_props to proc graph_set_raw_props 2025-09-22 10:56:05 +02:00
stefan schippers ba259b751d descend instance in case of vectored instances. Pressing Cancel when asked which instance to descend into aborts instead of descending into first instance 2025-09-22 10:21:50 +02:00
stefan schippers ad9ad03810 proc traversal: better show indentation of sub blocks 2025-09-21 23:42:04 +02:00
stefan schippers c67aa48c03 send_net_to_graph(): resolve ports of subcircuits to topmost net names 2025-09-21 23:02:17 +02:00
stefan schippers 356b9fb008 small layer color changes 2025-09-21 14:58:16 +02:00
stefan schippers e4dac334a9 show all layers (including layers 0,1,2,3) in wave dialog box 2025-09-21 08:07:16 +02:00
stefan schippers 9f11ff4924 minimum width of bold waveforms set to 2*tk_scaling, so will be visible even if zoomed out a lot 2025-09-20 21:58:36 +02:00
stefan schippers cfff96093d fix crash if doing alt-g on a subschematic port and no raw file loaded (send_net_to_graph()) 2025-09-20 09:28:33 +02:00
stefan schippers ca786b60ab fix error "invalid command name .processlist.f2.lib" in process list and status view 2025-09-19 23:34:35 +02:00
stefan schippers 4428c2ab67 find_closest_box(): allow selection of rectangles if clicking close (close-in or close-out) to the rectangle border. 2025-09-19 23:11:24 +02:00
stefan schippers 318323267c some comments in spice.awk 2025-09-19 18:42:47 +02:00
stefan schippers 2d81de2166 remove old stuff from spectre.awk (was from spice.awk, irrelevant for spectre) 2025-09-19 18:28:42 +02:00
stefan schippers 46ffdfcf8c preserve indentation (if present in spectre_forat attr) in spectre netlists 2025-09-19 18:03:19 +02:00
stefan schippers 92bc9cad34 some fixes for gcc-15 (-std=c23), smaller threshold for click & move that will abort move, added smaller verilog cosim example (tb_counter_wrapper.sch), arbitrary top level names allowed in create_new_window() and switch_window() (no tabbed interface) 2025-09-19 14:18:06 +02:00
stefan schippers 1f52d630f5 better distance threshold tuning for object selection 2025-09-15 09:18:25 +02:00
stefan schippers 987faa1a41 set tk_scaling C variable global, updated in draw(), caching tcl tk_scaling variable, add tk_scaling in threshold expression in find_closest_*() functions 2025-09-15 01:38:10 +02:00
stefan schippers ee920560ff update docs for new bindkeys 2025-09-13 11:06:00 +02:00
stefan schippers dbdfb3015e implement Alt-o and menu "File->Open in new window" 2025-09-13 10:46:14 +02:00
stefan schippers 17c5d229db fix Tab key moving focus (as per tk default action) to avoid having focus changed (keyboard not working any more in canvas) if Ctrl-Tab is pressed to switch to previous tab 2025-09-13 10:16:23 +02:00
stefan schippers 44a80ed200 rename open_in_new_window_or_tab to open_in_new_window 2025-09-12 12:47:05 +02:00
stefan schippers 2bd0cd3e4b fix: open_in_new_window_or_tab TCL var should be unique (no one per window context) 2025-09-12 12:41:09 +02:00
stefan schippers 1b3d0dd9f6 add xschemrc variable open_in_new_window_or_tab (default: 0) to let File->Open open in a new tab/window 2025-09-12 12:16:47 +02:00
stefan schippers 60f5f7f291 when closing a tab switch to previous instead of first tab 2025-09-12 11:23:41 +02:00
stefan schippers c87b6aeb2e fix typo in eval_expr.y: add tan() function (was exp() due to copy/paste error) 2025-09-11 09:02:28 +02:00
stefan schippers e37aed78c9 global namespace cleanup (retval, retval_orig) 2025-09-11 00:23:03 +02:00
stefan schippers 20bccdc589 global attribute editing: add a Mode: combobox to select the global attribute to change: spice/vhdl/verilog/symbol/.... 2025-09-10 19:26:25 +02:00
stefan schippers e5a3ac19b8 move.c: better debug msg 2025-09-10 15:06:15 +02:00
stefan schippers 37d41151bc right use of tk_scaling in sticky click + move 2025-09-10 13:49:27 +02:00
stefan schippers c301a5ed67 increase debug level of some unimportant messages 2025-09-10 13:04:07 +02:00
stefan schippers 43109725fd remove debug event printouts 2025-09-10 10:31:36 +02:00
stefan schippers bd477bcf23 tcl 8.4: avoid -nolinestop, do not pack combobox labels in dialogs 2025-09-10 09:53:12 +02:00
stefan schippers e7ed61a6b0 avoid use of -tabstyle for tcl-tk 8.4 2025-09-10 08:09:09 +02:00
stefan schippers 1a898f63ef proc is_xschem_file: if symbol contains instances of "logo" or "launcher" type do not consider it as a schematic. add "xschem get_sym_type" command 2025-09-09 11:24:39 +02:00
stefan schippers 3efe7bfbec button3 right click on signal names in graphs works now better, no context menu in the way. 2025-09-09 00:09:29 +02:00
stefan schippers aa493783ac better inner border selection area for graphs, easier to right click on signal names 2025-09-08 09:54:57 +02:00
stefan schippers b72c6885b9 xschem show_unconnected_pins: hilight unconnecteds even if netlist not extrated or hilights cleared after netlisting 2025-09-07 15:42:43 +02:00
stefan schippers 458de325cc add command "xschem attach_labels 2" to attach lab_show.sym on selected component with unconnected pins, add command "xschem show_unconnected_pins" to add to all instances, added also in Highlight menu 2025-09-07 13:06:47 +02:00
stefan schippers 04f2586c9c fix previous commit: do not affect ctrl-shift drag (move adding wires in separated pins) 2025-09-07 00:27:12 +02:00