Commit Graph

493 Commits

Author SHA1 Message Date
stefan schippers a2d3f68977 fix missing #if defined((FIX_BROKEN_TILED_FILL) in draw_crosshair() 2023-09-22 13:23:21 +02:00
stefan schippers 93291ed84b add draw_crosshair() (if enabled) at end of any draw() operation 2023-09-22 13:13:35 +02:00
stefan schippers 8f0d920a96 add draw_crosshair setting in xschemrc: draw a crosshair at mouse coordinates 2023-09-22 12:48:22 +02:00
stefan schippers a1fbbcfd80 add another command to cut wires without aligning cut point to snap (Alt-Shift-Right mouse button) 2023-09-22 10:40:57 +02:00
stefan schippers fbe3064cf2 remove gctiled in MyXCopyArea() calls (use gc[0], background, any GC is ok as long as it does not have some strange logic operator) 2023-09-21 23:51:17 +02:00
stefan schippers 95e1c833c8 better pan operation if FIX_BROKEN_TILED_FILL is set 2023-09-21 23:01:09 +02:00
stefan schippers 301f9c4bdf add experimental compile flag in xschem.h, FIX_BROKEN_TILED_FILL, if defined work around some graphic adapters/driver implemtations that dont honor the X11 specifications for drawing with a pixmap tile fill pattern 2023-09-21 21:52:24 +02:00
stefan schippers 98ffd177ce improve connect by kissing: now 3 move operations are present: 1) just move selection, 2) move adding wires to connected pins/wire endpoints, 3) move by stretching wires attached to pins/endpoints to follow moving objects 2023-09-18 13:29:49 +02:00
stefan schippers 978d575e22 add tcl command "xschem change_elem_order n" add optional x0 and y0 coordinates as additional parameters to "xschem flip" and "xschem rotate" commands, add command "move_instance inst x y rot flip" 2023-09-17 00:13:52 +02:00
stefan schippers e0bcc302c9 "xschem connected_nets" command now works for any selected instance, not only labels/probes/pins. Argument can be 0, 1, 2 (2-->select only wire segments drectly attached to selected net/instance) 2023-09-14 09:48:12 +02:00
stefan schippers cf675be805 add "xschem print pdf_full" and "xschem print ps_full" commands to print full view properly fitting paper size, regardless of xschem window size, some fixes in circle postscript drawing (set newpath) and rectangle clipping. Add menu command "PDF/PS export full" 2023-07-13 13:24:17 +02:00
stefan schippers 5d9e0d3d8a enable xschem to load multiple files even if started with "-x" (only CLI mode) 2023-06-25 23:33:26 +02:00
stefan schippers 31451e6be9 do not do a context switch on first invocation of callback() (set old_winpath = ".drw"). 2023-06-24 07:38:55 +02:00
stefan schippers 89d90c21db xctx->sch made an array of pointers instead of array of PATH_MAX strings (memory saver) 2023-06-17 23:58:35 +02:00
stefan schippers c3d03cd6d2 show red dot when cuting a wire with new alt-right button click on a wire. Added also menu command in Tools 2023-06-14 10:08:50 +02:00
stefan schippers 4f08f0a6b6 added command Alt-RightButton to cut a wire at mouse position. Do a prepare_netlist_structs(0) at end of break_wires_at_pins() for connectivity consistency 2023-06-13 11:51:16 +02:00
stefan schippers 2b0655e3e9 improve `Shift-M` command by stretching nets that land on instance pins while moving instances 2023-06-10 23:41:02 +02:00
Stefan Schippers 3b3e723f8f add new command `Shift-M`, move selected instances adding wires when separating overlapping instance pins (Connect by kissing) 2023-06-10 18:57:32 +02:00
Stefan Schippers d5cc702fe8 Add command "Tools -> Remove wires running throuh selected inst. pins" 2023-06-10 17:24:12 +02:00
stefan schippers de1f4f0d86 added commands `xschem switch [win_path|schname]`, `xschem destroy_all [force]`, added `[force]` option to xschem exit 2023-06-08 10:40:52 +02:00
stefan schippers b6e9ab33cc fix compare schematics if no file for schematic to compare with is given. In this case compare current schematic with saved version. Also issue a warning if swapping compare schematics if comparing schematic with disk version of itself. 2023-06-06 19:39:40 +02:00
stefan schippers 4f387f3bbe disable displaying backannotation data if `b` cursor is hidden or `Simulation->Live annotation with b cursor` is disabled. Use resolved_net() in translate() when displaying @spice_get_voltage so it will work on sub block ports 2023-06-05 12:58:19 +02:00
stefan schippers c708050baf make ctrl-ArrowLeft/ctrl-ArrowRight work again (move to next/prev tab) 2023-06-04 09:28:22 +02:00
stefan schippers ec5577c07f removed File menu commands `Empty schematic in new window` and `Empty symbol in new window` since these just create another xschem process. Added `File->Start new xschem process`. `xschem new_window` and `xschem new_symbol_window` commands removed, added `xschem new_process 2023-06-04 00:46:01 +02:00
stefan schippers e68ca0a0cc Place polygon bind key is now `p`, ctrl-w is now `Close current schematic`, while ctrl-q is `Quit xschem`. Reorganized File menu, added more orthogonal `Create new schematic/tab` removed some largely unused entries. Ctrl-w does not close the last window, just leaves it blank. Use ctrl-q to close xschem 2023-06-03 23:57:35 +02:00
stefan schippers 694bc631a0 redraw schematic when switching netlisting mode (Shift-V) to redraw disabled/enabled components for the new netlisting mode; The Properties->Toggle *_ignore... menu will do nothing if in symbol netlisting mode 2023-05-24 09:08:57 +02:00
stefan schippers 140aba3449 added handling of bus_tap.sym (wip) 2023-05-21 23:58:17 +02:00
stefan schippers 5c22d26072 update copyright info to 2023 2023-05-21 12:52:19 +02:00
stefan schippers 71c04ad071 fix unneeded there_are_floaters() call in callback.c 2023-05-16 09:52:23 +02:00
stefan schippers 1ea0516b55 if floaters are used to display simulation data (@spice_get_voltage) force update on floater text caches on `b` cursor move 2023-05-14 02:22:18 +02:00
stefan schippers ae8931c788 remove bbox() START/ADD/SET/END from some drawing operations. No observable performance impact and redraw is now more pixel precise, reducing artifacts. 2023-05-01 22:28:56 +02:00
stefan schippers 4c3b4d0321 various tcl_hook2() additions on instance names to handle procedures, fix bbox calculation in xschem replace_symbol command 2023-05-01 14:37:10 +02:00
stefan schippers 9593d41f09 persistent load file dialog (Shift-Insert) now correctly handles generator script selection (do nothing until user adds () or (param1,param2,...) to generator name). 2023-04-29 00:28:24 +02:00
stefan schippers 5e3445a80e implement xschem sch_pinlist command, improve xschem pinlist inst [attr], improve make_sym.awk (no trailing spaces in pin attributes) 2023-04-08 13:19:49 +02:00
stefan schippers e4e2ba37cc xschem load from script: no alert box warning if new file given 2023-03-25 09:41:53 +01:00
stefan schippers 4569a0747a fix executing xschem load_new_window from launcher (UI semaphore save/restore) 2023-03-13 12:37:30 +01:00
stefan schippers af6c01ab44 add command xschem logic_set_net <net_name> <value> [ntimes] to set a specific net instead of selected nets 2023-03-10 02:42:04 +01:00
stefan schippers 25f34ee413 add xschemrc variable zoom_full_center, if set to 1 full zoom will center the schematic instead of anchoring to lower-left drawing area corner. 2023-03-09 22:48:25 +01:00
stefan schippers bf6b20a1ce In source Documentation (scheduler.c) of xschem commands, html docs updated 2023-03-03 18:29:17 +01:00
stefan schippers ebf4fa1f44 Initialize stack2[] to double 0.0 2023-03-01 18:34:07 +01:00
stefan schippers 94fee133ca add commands xschem setprop rect 2 <n> fullxzoom and fullyzoom 2023-02-26 13:07:14 +01:00
stefan schippers b162ecdf48 remove unused parameter in setup_graph_data() 2023-02-26 11:22:19 +01:00
stefan schippers a3263aca0b refactor some variable names in waves_callback() 2023-02-21 16:47:40 +01:00
stefan schippers a8aaf996e7 use pre-increment where expression is not used 2023-02-18 09:44:11 +01:00
stefan schippers 42c3024eda remove debug allocation IDs 2023-02-09 21:06:27 +01:00
stefan schippers 3be9a66aed fix memory leak in table_read() 2023-02-09 21:04:22 +01:00
stefan schippers 44ee2b593f added "s" bindkey in graphs to swap "a" and "b" cursors 2023-02-08 04:13:50 +01:00
stefan schippers 1da5e47d4a remove my*() allocation routines unique IDs and replace with _ALLOC_ID_ macro, to be substituted in debug sessions with create_alloc_ids.awk 2023-01-23 15:42:15 +01:00
Stefan Schippers 479b8ef6e9 add accelerator Shift-B for edit schematic header/license 2023-01-02 19:34:27 +01:00
stefan schippers cee4d218e2 use "configure -cursor {}" instead of "configure -cursor arrow" to switch back mouse cursor to default when exiting graph 2022-12-31 10:22:41 +01:00
stefan schippers aa70d90c46 fix cairo font reference counting 2022-12-25 23:13:59 +01:00
stefan schippers 75fbb76543 optimization: split cairo font creation into create + set 2022-12-25 10:42:07 +01:00
stefan schippers e01f545567 --diff option to visually compare two different (versions of) schematics 2022-12-13 13:51:33 +01:00
Stefan Frederik d1aa8a9e42 global properties dialog box: close if clicking outside or pressing Shift-Return 2022-10-24 14:11:34 +02:00
Stefan Frederik a8689becd6 shift-enter/clicking outside ends text insert widget. Entry widget for text properties string replaced with multiline text widget 2022-10-24 13:05:32 +02:00
Stefan Frederik cecd205ff7 Faster implementation of previous change 2022-10-17 00:30:20 +02:00
Stefan Frederik 63a27e410e Engineering notation in wave measurement tooltip 2022-10-17 00:26:28 +02:00
Stefan Frederik 6be0fc392b refactoring of netlister code 2022-10-07 23:29:42 +02:00
Stefan Frederik ae4b74f2d8 graph axes in engineering notation (20u, 10p, 3k), fix an issue in graph panning with button1 mouse; ngspice:: get_current, get_voltage, get_diff_voltage, get_node embedded into xschem.tcl, to_eng tcl procedure to convert number to engineering form. 2022-09-28 19:14:31 +02:00
Stefan Frederik 472751dfc0 better file globbing in load_file_dialog 2022-09-27 13:15:04 +02:00
Stefan Frederik d4b6986e24 added File -> Component browser, clicking recent component buttons displays preview 2022-09-27 12:28:54 +02:00
Stefan Frederik 3e6815ccc5 recent components are in paned window (can be resized) 2022-09-27 09:27:39 +02:00
Stefan Frederik 0bb4c9f2e0 New option for non blocking file selector, so it will remain open allowing to pick multiple components (Shft-Insert). Aborted place symbol operation will no more set schematic status to modified 2022-09-26 18:38:19 +02:00
Stefan Frederik fd72e72dba test and got svg_embedded_graph(...) to work on Windows with Cairo (Joanne). added some #ifndef __unix__ guards to avoid compiler warnings about defined and not used functions, initial implementation of "Recent components" browser. 2022-09-25 21:11:52 +02:00
Stefan Frederik 314acbabda allow tabs and newlines in graph expressions in addition to spaces; updated example schematics 2022-09-23 02:18:51 +02:00
Stefan Frederik e67ff344c8 cleanup/rename some xctx variables and graph-related functions, avoid drawing graphs using data file loaded from from schematics that are unmatched with current schematic or up in the hierarchy levels 2022-09-21 11:25:45 +02:00
Stefan Frederik 933faceabf some cleanups in scheduler.c "xschem annotate_op" command. 2022-09-20 23:07:50 +02:00
Stefan Frederik c695c435d2 move initialization of s=0 outside the loop in backannotate_at_cursor_b_pos(). If only_probes is set do not display graphs and images. 2022-09-20 17:59:01 +02:00
Stefan Frederik af475e00df xschem raw_read accepts an optional type argument after file name (tran, ac, dc, op, ...) to select type of simulation to load from raw file. New command xschem annotate_op will replace ngspice::annotate tcl procedure. 2022-09-20 16:49:42 +02:00
Stefan Frederik 7abceb3344 fix regression in ngspice::get_current, simplified voltage reporting in net label symbols 2022-09-20 00:12:27 +02:00
Stefan Frederik 73e8b440c8 if sweep variables are defined on X axis (instead of default index 0) use first sweep X-axis var in live cursor backannotation 2022-09-19 12:19:39 +02:00
Stefan Frederik 6f102ff05a make cursor live backannotation work on logscale X axes 2022-09-19 12:08:07 +02:00
Stefan Frederik 09f2727168 fix: update backannotation data in schematic if changing dataset with "t" key 2022-09-19 02:04:14 +02:00
Stefan Frederik ad6cbb4df6 let cursor graph backannotation work for multiple sweeps (implicit datasets) 2022-09-18 23:29:48 +02:00
Stefan Frederik 7afbd6a51d various small fixes for cursor b backannotation, updated xschemtest netlist hashes 2022-09-18 12:25:09 +02:00
Stefan Frederik c06034e33e performance optimization in live cursor b backannotation 2022-09-18 11:06:48 +02:00
Stefan Frederik 96f80d1d33 Alt-a in graph annotates schematic with values at cursor b position. Simulation->Live annotate option to automatically update schematic probes if cursor moved. Some improvements and fixes in ngspice_annotate.tcl. Fix xschem setprobe command. Added missing housekeeping_ctx when a new tab is created. housekeeping_ctx: added more variables to sync. 2022-09-18 05:29:16 +02:00
Stefan Frederik 52405a29c7 restructured graph dialog box, added min/max x, adjusted sweep variables vertical aligmnent, added atof_spice() that recognizes spice suffixes (12p, 4.2MEG etc) 2022-09-16 17:01:59 +02:00
Stefan Frederik 75db846e58 ask confirmation if pressing "s" for simulate; node lists in graph dialog box are returned as they are with no tcleval() resolution; poweramp.sch now can be simulated unchanged with Xyce 2022-09-13 00:31:20 +02:00
Stefan Frederik 9efacd8a8b Revert r2272; zoom by area plots reverse x axis if done with Shift key pressed 2022-09-07 09:31:09 +02:00
Stefan Frederik ecca24191e fixes in fullscreen code (restore zoom lavels) 2022-09-04 14:16:38 +02:00
Stefan Frederik 02c1dce486 zomm area in graphs: if dragging backward (in x direction) reverse x axis. 2022-09-04 01:09:05 +02:00
Stefan Frederik c7501d4a28 fix UI lockout (can not switch tabs) if a tab is closed with bindkey ctrl-q 2022-09-03 22:19:49 +02:00
Stefan Frederik 2095995b51 apply [t]rack operation to all locked (instead of selected) graphs 2022-09-03 09:46:22 +02:00
Stefan Frederik b7bf351801 [t]rack bindkey applied to digital graphs if they are selected, although track does not work if pointing in digital graphs 2022-09-02 18:19:39 +02:00
Stefan Frederik 5c808505b3 [t]rack bindkey applied to all selected plots in addition to graph where mouse is pointing 2022-09-02 18:09:51 +02:00
Stefan Frederik ae1bed65f4 added [t]rack bindkey in graph to display the wave closest to mouse in multiple dataset plots 2022-09-02 17:11:50 +02:00
Stefan Frederik d279783faa added menu entries to set and conmpare with schematic. 2022-08-25 13:59:36 +02:00
Stefan Frederik a2de3e9c1b Added compare_schematics() function. Empty graphs (no data loaded) are not editable. Set window title if opening a non-existent file. 2022-08-25 00:25:29 +02:00
Stefan Frederik 0f5881cd61 print_spice_subckt(): check for tcl_hook2() errors, check for NULL in strtoupper/strtolower, fix unitialized local variable 2022-08-23 10:01:32 +02:00
Stefan Frederik 84f9497755 fix graph zoom by area with mouse drag and absolute x positioning of locked graphs that are not vertically aligned 2022-08-19 01:23:45 +02:00
Stefan Frederik 89afd902ea get_raw_value(): return plain value, no implicit log calculation if log scale on axis. Zoom full scale X and X axis pan: use 1st sweep X variable, do not assume spice sweep variable (idx==0) 2022-08-08 09:52:33 +02:00
Stefan Frederik edf185616b Y log axis option in graphs 2022-08-08 01:18:42 +02:00
Stefan Frederik 15e367ba73 user selectable log X scale instead of assiming log X for AC analyses only 2022-08-05 00:57:03 +02:00
Stefan Frederik 9e888b8b44 Button 1 Double click does edit object attributes 2022-07-31 09:06:10 +02:00
Stefan Frederik a7202ddee2 avoid panning interfere with constrained (horiz/vertical) copy or move 2022-07-25 10:09:35 +02:00
Stefan Frederik e7f31cf3ee allow each window (in tabbed or window interface) to run its own simulation, preventing spawning another simulation process for same tab/window if previous not finished 2022-07-15 12:32:57 +02:00
Stefan Frederik c9d16d6008 use 5 significant digits in graph (time) measures 2022-06-29 11:47:10 +02:00
Stefan Frederik cd7eb3ab54 update license info 2022-06-24 00:36:12 +02:00
Stefan Frederik f882918931 more conversion warnings suppressed 2022-04-28 10:12:16 +02:00
Stefan Frederik 23102433c2 fixed lot of conversion warnings/ bugs (int/double/size_t) 2022-04-27 13:18:45 +02:00
Stefan Frederik 89f538ffa1 added bindkey "s" for running simulation 2022-04-25 08:39:51 +02:00
Stefan Frederik 00de54c582 Honor hide attribute for texts in ps/pdf and svg exports 2022-03-01 19:36:08 +01:00
Stefan Frederik d457565c2d declared more functions static where possible and appropriate 2022-02-19 14:31:55 +01:00
Stefan Frederik fc6268395b dedicated function for calculating y extent of custom wave equations 2022-02-17 01:22:15 +01:00
Stefan Frederik c08cc359f3 plot_raw_custom_data() returns idx or -1 in case of expr syntax errors to avoid plotting junk 2022-02-14 19:28:24 +01:00
Stefan Frederik 4ebf3ea601 allow wave alias naming, fix off-by-one errors in plot_raw_custom_data() calls 2022-02-14 17:51:18 +01:00
Stefan Frederik b95d78734f allow ";" in addition to "," for separator in nodes to be plotted. ";" will be used for node alias. Fix potential uninitialzed data in get_bus_idx_array() 2022-02-13 22:54:28 +01:00
Stefan Frederik c6a7d8f9bb optimize custom data plots and expression evaluation, added avg() 2022-02-12 13:20:24 +01:00
Stefan Frederik defd2a92a7 rpn expressions in graphs 2022-02-12 04:55:02 +01:00
Stefan Frederik e37d5a28b8 more flexible my_strtok_r (handle quoting and escapes), allow quoted expressions in graphs for doing math on vectors 2022-02-07 03:52:42 +01:00
Stefan Frederik d6d932e730 fix save simconf (thanks mkk). put template code for custom function plots 2022-02-05 00:28:06 +01:00
Stefan Frederik 008b289e4f ac analysis in graphs (mag + phase, log axis) 2022-02-02 18:33:16 +01:00
Stefan Frederik faa210fb2f code cleanup, removed code redundancy, itoa(), dtoa() functions, removed unnecessary tcl graph_* global vars, mstrcat function. 2022-01-30 03:10:09 +01:00
Stefan Frederik 4ec5d2ce9e send selected nets to last selected graph if graph configure dialog not open 2022-01-29 12:27:54 +01:00
Stefan Frederik c083491738 probe nodes from xschem into its own wave viewer 2022-01-29 02:36:54 +01:00
Stefan Frederik 0b0e749801 Graph UI improvements. Persistent bold waves. Graph UI bug fixes 2022-01-28 04:44:07 +01:00
Stefan Frederik ee263197d8 bold clicked wave for better visibility if multiple waves 2022-01-27 21:14:52 +01:00
Stefan Frederik 038ef39bb5 UI improvements for graphs, change colors, insert waves etc 2022-01-27 20:47:27 +01:00
Stefan Frederik 320ad6e2aa embedded raw file storage 2022-01-21 19:17:43 +01:00
Stefan Frederik 42703b020d fix wave panning if a non graph added, better error reporting in png writer function, better flags option names for special objejcts (image and graphs) 2022-01-21 02:18:07 +01:00
Stefan Frederik e66abe36fa fix wave panning if a non graph added, better error reporting in png writer function, better flags option names for special objejcts (image and graphs) 2022-01-21 02:16:51 +01:00
Stefan Frederik 6941451d9b fix crash when graph (bottom)x-scaling if dataset given > raw file datasets 2022-01-18 04:21:32 +01:00
Stefan Frederik f0d856560f removed useless old pan command 2022-01-17 22:41:36 +01:00
Stefan Frederik 622fb168c1 obsolete comments scrub 2022-01-13 17:24:04 +01:00
Stefan Frederik da27141112 fix left/right arrow keys for tab switching on Windows and Linux 2022-01-11 22:57:55 +01:00
Stefan Frederik 7d3c19441d cleanup in tabbed/multi-context code, remoevd redundant functions, more tests in xschemtest 2022-01-11 01:09:56 +01:00
Stefan Frederik d6b513e1e2 issue warning if opening same circuit in different tabs, if tabbed if is active edit sch/sym in new window will do in a new tab 2022-01-10 18:54:07 +01:00
Stefan Frederik b81ce64c0c ctrl-left arrow / ctrl-right arrow to quickly move between tabs 2022-01-10 04:30:51 +01:00
Stefan Frederik 1360641d75 Tabbed windows interface option added 2022-01-09 22:19:58 +01:00
Stefan Frederik e238f571b0 code added for tabbed window interface 2022-01-09 05:14:25 +01:00
Stefan Frederik ef7effab69 separate bindkey (ctrl-shift-F) to zoom full selection 2022-01-08 00:00:13 +01:00
Stefan Frederik 0eaf884039 modularized usage of simconf`s scrollable frame so it can be reused 2022-01-07 12:45:18 +01:00
Stefan Frederik d9a51e4b1a bus value viewer show transitions (`X`), adding some query commands to get/set waveform attributes/plot data 2022-01-07 01:54:41 +01:00
Stefan Frederik 71a98e78f5 don`t try bring up the info ERC window if xschem is used in cli mode without X; filter out some events from graph event callback 2022-01-06 22:38:00 +01:00
Stefan Frederik 6f83b0cae5 code cleanup 2022-01-06 07:41:15 +01:00
Stefan Frederik 7c91b691ac remove dbg info 2022-01-06 07:38:59 +01:00
Stefan Frederik fdf93666b4 fix the hardest bug ever in master graph x-axis zooming (f**k!) 2022-01-06 07:37:44 +01:00
Stefan Frederik 8eae5398c5 fix clipping cursor texts 2022-01-06 05:34:42 +01:00
Stefan Frederik 9bdac2d854 fix horizontal alignment when panning multiple graphs 2022-01-06 05:00:24 +01:00
Stefan Frederik 223b9dc0a6 various regressions due to refactoring fixed 2022-01-06 01:10:06 +01:00
Stefan Frederik c35d7b5d22 created Graph_ctx for graph data access; code refactoring 2022-01-05 23:07:08 +01:00
Stefan Frederik 09d8474a2c fix measure data in multiple sweep/wraps graphs 2022-01-05 17:38:01 +01:00
Stefan Frederik 31ba4ce0d6 added wave @ cursor measurement feature 2022-01-04 05:54:25 +01:00
Stefan Frederik 625495e27a measurement tooltip in graphs 2022-01-03 18:43:34 +01:00
Stefan Frederik 27a8e2246a full vertical resize applied only on active graph 2022-01-03 04:20:45 +01:00
Stefan Frederik 33ecb08c4f checks for zero range axes, removed some unused function params 2022-01-03 02:28:34 +01:00
Stefan Frederik 2c09982e5a resolve a race condition in context menu (mouse click and immediately destroy menu by exiting the area) 2022-01-03 01:38:15 +01:00
Stefan Frederik 81cbbfa39f better vertical scrolling of digital graphs 2022-01-03 00:27:15 +01:00
Stefan Frederik 104d0f8cc3 fixes for digital waves y axis scaling 2022-01-02 22:24:44 +01:00
Stefan Frederik 2a3e9ddea4 graph UI improved (unlock xaxis flag) 2022-01-02 04:42:15 +01:00
Stefan Frederik 81a7041c9f faster graph drawing by direct graph->screen transformation, avoiding double graph->xschem->screen scaling. File entry box is also a glob-search pattern in file open dialog 2022-01-01 15:46:03 +01:00
Stefan Frederik 06e84deb96 fix setting pdfmarks with directories in hierarchical pdf exports 2021-12-31 11:58:28 +01:00
Stefan Frederik 7600985557 fix various graph event handling issues 2021-12-30 23:22:13 +01:00
Stefan Frederik 9beda72ebb fix various graph event handling issues 2021-12-30 20:52:15 +01:00
Stefan Frederik c0ab0f1a61 hierarchy pdf prints have links to pdf pages of sub blocks 2021-12-30 20:11:41 +01:00
Stefan Frederik 5707b18aba wave view: added cursors for delay/time measurements 2021-12-30 15:45:38 +01:00
Stefan Frederik d6c197d108 fix BadDrawable regression in free_rawfile(): after deleting data a draw() was called, but since this function is called also in exit handler all windows are already closed. Added digital waveforms and bussed signal display 2021-12-29 05:11:39 +01:00
Stefan Frederik 5dd3f5c15d digital wave graphs, handle multiple sweep dc simulations 2021-12-27 18:42:56 +01:00
Stefan Frederik e111b2b9d6 even with multiple selected graphs apply y axis pan/zoom only on master graph. Better checks/cleanups for load/unload raw file 2021-12-27 14:12:55 +01:00
Stefan Frederik 547097f176 graph UI refinement and various fixes. Zoom in/out keeps value under mouse fixed 2021-12-27 05:22:19 +01:00
Stefan Frederik 7a286e5466 graph UI improvements (no require shift + mouse for global x-axis sliding) 2021-12-26 15:13:57 +01:00
Stefan Frederik 214070bb1c graph UI improvements (x-axis slider, do not force mouse motion to be inside graph after starting operation) 2021-12-26 14:57:12 +01:00
Stefan Frederik eff02f5f02 graph UI improvements (global x slider), various fixes 2021-12-26 14:35:13 +01:00
Stefan Frederik 30ce222b68 graph UI improvements (global x slider), various fixes 2021-12-26 14:33:54 +01:00
Stefan Frederik 37575e9404 allow button1 in addition to button2 for panning / zooming waveforms, add menu commands to insert graph, display/hide empty graphs, load raw file 2021-12-26 04:09:55 +01:00
Stefan Frederik f5a737159d axis zoom: updated examples 2021-12-25 14:43:26 +01:00
Stefan Frederik 842bcb0b93 implement zoom/move/full on y axis graphs 2021-12-25 13:44:14 +01:00
Stefan Frederik 1f44a960cb implement zoom/move/full on y axis graphs 2021-12-25 13:37:49 +01:00
Stefan Frederik 0d6a6c488b handle spice simulation files with multiple datasets 2021-12-25 05:15:52 +01:00
Stefan Frederik d423545ccc fix: missing graph borders 2021-12-24 21:17:52 +01:00
Stefan Frederik 70adb61410 Better axis label placement, smooth waves move/zoom with mouse, compile option to store sim data as floats instead of doubles, option for axis scaling (p,n,u,m,k,M,G), load waveforms command is a toggle (load / free) 2021-12-24 12:17:00 +01:00
Stefan Frederik c30ff852a2 fix missing check for loaded data when user tries a "full" zoom in a graph window (segfault) 2021-12-23 13:01:18 +01:00
Stefan Frederik 62e71a8bbe draw_graphs(): add flag to avoid copying secondary buffer areas to screen if called from main draw(). This makes things faster and removes an annoying "tearing" effect when moving around 2021-12-23 11:59:39 +01:00
Stefan Frederik b11955a3aa [experimental] better wave labels positioning in graphs 2021-12-23 03:43:34 +01:00
Stefan Frederik 8a0fc1c1df mouse actions (move, zoom) on waveforms 2021-12-22 18:25:15 +01:00
Stefan Frederik 673eb243e7 update test schematic 2021-12-22 14:15:43 +01:00
Stefan Frederik 76b537a587 [experimental] add waveform display of ngspice simulation data directly in xschem drawing area 2021-12-22 04:39:23 +01:00
Stefan Frederik 0c9eff16d9 my_round() function instead of ROUND() macro 2021-12-17 15:40:19 +01:00
Stefan Frederik 993c3a24c2 rename xschem_simulator/ n.sym and p.sym to ntrans.sym and ptrans.sym to avoid confusion with symbols in rom8k/; place tk_messageBox above right xschem window when using multiple (single process) windows. 2021-12-17 03:29:53 +01:00
Stefan Frederik 989388e14b allow panning schematic even if dialog box displayes or xschem simulation ongoing; update example simulate_ff.sch 2021-12-07 14:07:36 +01:00
Stefan Frederik e449543805 tclvareval() wrapper 2021-12-05 12:39:05 +01:00
Stefan Frederik 629917cfcd new find_inst_to_be_redrawn() implementation to recalculate area to be redrawn with/without show net names on symbol pins, simplified new_window() call in callback `x` command, code formatting in globals.c, added xschem get [xy]origin commands 2021-12-03 19:15:07 +01:00
Stefan Frederik d98c855135 remove calls to ngspice::resetdata in C code, done in ngspice annotator when reading a new file and in xinit.c when exiting the program. Some File menu item reordering 2021-12-01 00:35:52 +01:00
Stefan Frederik 0ebe36bc8f avoid quitting the program for some serious but non fatal errors, add some error reporting, some documentation updates (faq.html) 2021-11-29 17:29:09 +01:00
Stefan Frederik 887c546d00 more consistent naming for some xschem subcommands, added and updated "xschem help" command (still wip) 2021-11-29 14:37:39 +01:00
Stefan Frederik fe549c0f5c readable function pointer call syntax 2021-11-29 11:52:32 +01:00
Stefan Frederik 2442a3dfc0 runtime menu option to set undo stack on disk or in memory 2021-11-29 02:47:37 +01:00
Stefan Frederik 03f973e203 use undo function pointers 2021-11-28 14:35:55 +01:00
Stefan Frederik e77b72df9c old_winpath[] removed from globals, put as static string into callback(), fix ngspice::annotate netlist_dir fetching. 2021-11-23 23:20:10 +01:00
Stefan Frederik fddd3f84fb avoid force-saving changed schematic before doing netlist (use push/pop undo instead of load_schematic() to restore circuit after traversing hierarchy) 2021-11-21 23:04:48 +01:00
Stefan Frederik d1a922643d Bunch of function static variables moved into xctx struct for safety 2021-11-18 01:55:01 +01:00
Stefan Frederik eecc81437c flat_netlist and only_probes moved into xctx struct 2021-11-17 23:12:17 +01:00
Stefan Frederik 937261807b fix setting snap and grid values in statusbar 2021-11-17 01:30:37 +01:00
Stefan Frederik bd626427fd fix status bar info correctly swicthing when focusing multiple xschem child windows; multiple schematic window handling within one xschem instance is now working 2021-11-17 01:12:55 +01:00
Stefan Frederik ad05513838 some parameter checks in xschem commands, global var removal in simulation help window - No use for production yet 2021-11-16 22:28:10 +01:00
Stefan Frederik 59198f2dda removed a whole bunch of global UI-related variables and tcl/C redundancies 2021-11-10 13:43:08 +01:00
Stefan Frederik c3c1b39cb5 (2) full widget creation for xschem new windows, code cleanup, removed old stuff 2021-11-09 19:05:56 +01:00
Stefan Frederik c6a6d1b1dc Motion and Enter events regain focus even it toolbar is displayed and user pressed "Tab" to focus a button; toolbar button focus ordering matches display ordering 2021-11-08 16:27:07 +01:00
Stefan Frederik b62f8b57f7 removed useless assignments xctx->m[xy]_save = m[xy] in contexts where its unnecessary 2021-11-06 03:34:14 +01:00
Stefan Frederik 7985e8d22c fix some positioning glithes in UI when placing text via bindkey or menu or context menu 2021-11-06 03:24:45 +01:00
Stefan Frederik 7efc446dae Escape key (instead of Simulation menu entry, now removed) stops ongoing xschem internal simulator engine if running 2021-11-04 23:52:24 +01:00
Stefan Frederik 8281c67aed fix some UI glitches (place text/symbol and aborting operation during move will now delete placed objects) 2021-11-04 15:08:54 +01:00
Stefan Frederik 7490c80a9c fix UI bug when placing text and immediately deleting it (did not delete) 2021-11-04 13:30:50 +01:00
Stefan Frederik 966ebdc26e fix deletion of ctxmenu if user keeps right button pressed and exits window, icons in ctxmenu 2021-11-04 12:57:41 +01:00
Stefan Frederik f5f6b681e2 removed rarely used toolbar buttons, added Abort context menu command 2021-11-04 02:07:41 +01:00
Stefan Frederik b720423eb3 comment typos 2021-11-04 01:23:40 +01:00
Stefan Frederik e85559efec context menu added in drawing area (right mouse button) 2021-11-04 01:13:44 +01:00
Stefan Frederik 04e670b3cf fine tuning of previous commit 2021-10-26 00:04:13 +02:00
Stefan Frederik b81325ea00 code cleanup, comments, more globals in Xctx context structure 2021-10-25 17:05:43 +02:00
Stefan Frederik 4f8120cd2d add "update" after binding creation in xinit.c, to avoid incomplete initialization of event binding if xschem called with non-existent file 2021-10-09 10:25:24 +02:00
Stefan Frederik 205bda387a Add File menu commands to open empty schematic or symbol in new window 2021-10-09 00:41:39 +02:00
Stefan Frederik 090cc5052e added xschem X-probe to bespice (from Analog flavor) waveform viewer. Works with eval version too. 2021-09-19 00:21:20 +02:00
Stefan Frederik 00311e7ff1 update license info 2021-07-27 16:42:54 +02:00
Stefan Frederik 5880e23f94 added hierarchical ps/pdf export (File menu) 2021-06-13 23:55:17 +02:00
Stefan Frederik ddaa431144 make_sym_lcc.awk: declare "value" as local variable inside process_box_line() to avoid clashes with global "value" 2021-06-05 08:58:38 +02:00
Stefan Frederik ac99227365 fix a bug when pasting / ctrl-v into an empty schematic (instances not selected for moving) 2021-01-22 01:03:16 +01:00
Stefan Frederik e332008fa8 removed/updated obsolete keybinding descriptions, removed status check on Delete key events 2021-01-13 13:44:57 +01:00
Stefan Frederik 50028baa9f added Hi-Z in logic values 2021-01-11 19:31:47 +01:00
Stefan Frederik 2063b42613 fixed a hypotetical integer overflow issue, do increment and modulo of hilight_color , remove some spaghetti code (use propagate_hilights() ) 2021-01-08 21:25:11 +01:00
Stefan Frederik ef1f297290 more flexibility in constrained move operations (draw wires, lines, copy/move), pressing h/v again toggles constrained / unsonstrained move 2021-01-05 01:24:45 +01:00
Stefan Frederik 8eb2147b18 removed obsoleted commands (shift/ctrl Del) 2021-01-04 18:21:29 +01:00
Stefan Frederik b272080637 bind select "connected wires" to alt/ctrl-right button click 2021-01-03 12:37:15 +01:00
Stefan Frederik b63d3bec09 finalizing "select nets up to junctions" 2021-01-03 01:26:54 +01:00
Stefan Frederik cf5813970c prepare for delete connection implementation 2021-01-02 23:42:22 +01:00
Stefan Frederik cc993bfe44 added in the menu the (undocumented) "propagate-highlight" function (propagate through conductive elements) 2021-01-02 20:33:34 +01:00
Stefan Frederik d6b9740c4b specify state==0 (no modifiers) for Delete keypress events 2021-01-02 19:15:59 +01:00
Stefan Frederik 3528634124 Add Shift-Delete command that selects all nets/labels/probes physically attached to current selected wire segment/label/pin/probe 2021-01-02 18:56:42 +01:00
Stefan Frederik 46e986cc62 added "auto join/trim wires" menu option since now the trim operation is doing fast even on big designs 2021-01-02 03:24:26 +01:00
Stefan Frederik 14ead18ea4 "propagate_to" attribute for pins renamed to "goto" 2020-12-30 21:26:58 +01:00
Stefan Frederik ebaa2d932b redraw wire/line/rect/arc/poly rubbers after changing zoom/panning; do not wait for Motion events 2020-12-29 03:45:12 +01:00
Stefan Frederik 17d8db59ff num parameter to logic_set() to perform "num" toggling operations 2020-12-28 20:20:45 +01:00
Stefan Frederik 5917cd9717 added flip-flop simulation capabilities. added examples: merry xmas greeter and 7 segment display driver and counter. 2020-12-27 19:20:24 +01:00
Stefan Frederik b71199c5b8 added "xschem_simulator" sample example directory for trying logic propagation of probed nets 2020-12-26 19:26:33 +01:00
Stefan Frederik 3f452beb8e Fix: search() "unselect" function was not updating drawing 2020-12-25 15:14:41 +01:00
Stefan Frederik 582863f825 added menu option to load most recent file: ctrl-shift-o, fix menu entry "unhilight selected nets" (did unhilight all); removed a wire[].node clear in hash_wire() that caused broken connectivity. this data is cleared in delete_netlist_structs when needed. 2020-12-25 04:37:53 +01:00
Stefan Frederik 779c789100 better "xschem print" command accepting viewport and image dimensions, better zoom_full (with margin), good for embedding in script and do automatic export generation 2020-12-22 00:13:25 +01:00
Stefan Frederik 4ddc9654e8 add xschem commands for specifying image size for png and pdf: xschem print svg file.svg 800 600; svg background color taken from svg_colors variable so it can be changed like any other color 2020-12-21 04:38:57 +01:00
Stefan Frederik dfa58a0a08 spaghetti code removal, more reused code 2020-12-20 15:56:29 +01:00
Stefan Frederik a837682731 caching "lab" and "highlight" attributes for speed 2020-12-19 03:22:38 +01:00
Stefan Frederik 17124c761c each schematic windows has its own "current later" (rectcolor) 2020-12-06 16:40:08 +01:00
Stefan Frederik 4d26ce66a8 more state variables into xctx: move / create new objects 2020-12-06 16:10:22 +01:00
Stefan Frederik e7e5ad190b more schematic context in xctx: cairo surfaces and context, save buffer graphic context (GC), hilight hash tables and data, node name hash tables. Refactoring of resetwin , resetcairo routines (also used in xinit to avoid code duplication), switching schematics seems almost complete now 2020-12-06 02:10:53 +01:00
Stefan Frederik f9f9de3371 added "PWD" button in file load/place component dialog box that brings back to the directory containing current schematic. Selecting a component before doing "place component" will make the file load dialog start from the directory containing the selected component 2020-12-05 05:18:35 +01:00
Stefan Frederik 2b7e31e0d6 add utility functions to create new schematic window 2020-12-03 23:17:13 +01:00
Stefan Frederik 9588a859da cleanup in preview code 2020-12-03 11:42:06 +01:00
Stefan Frederik a64d69ed7a some code refactoring, more globals in xctx context, fixed unnoticed shift-reduce conflict in expandlabel 2020-12-03 04:20:05 +01:00
Stefan Frederik e279262f00 more globals into xctx context struct 2020-12-02 15:10:47 +01:00
Stefan Frederik d47a569f9f bussed nets/pins in hierTEDAx netlists 2020-11-28 16:41:35 +01:00
Stefan Frederik d93826f61c wrap long lines in source code, set default direction of pins to "B"(idirectional) if not specified in spice netlist (no *.PININFO information) 2020-11-22 00:51:24 +01:00