Blame view

GUI/SW2/SRC/ChangeLog 46.4 KB
886c558b   Steve Greedy   SACAMOS Public Re...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
                                              ChangeLog
                                             -----------
Start Date  : 2004-08-12
Last Update : 2016-11-10
Author      : Mike Waters
Email       : mwaters517_AT_gmail_DOT_com
====================================================================================================

gSpiceUI - A Graphical User Interface (GUI) to various freely available electronic circuit
           simulation engines.

----------------------------------------------------------------------------------------------------

 * Added a preferences option for synchronizing ambient temperature values between analysis pages
   and the OPTIONS dialogue.
 * Cleaned up the DlgPrefs class by removing all Get*( ) functions.
 * Added a preferences option to exclude the netlist file from the list of temporary files.
 * At startup, if a schematic file is open but a netlist file doesn't exist automatically generate
   the netlist file by performing an import operation on the schematic file thereby generating the
   netlist file. To date an error message was displayed.
 * Add help target to Makefile and src/Makefile, displays a help message listing available targets.
 * BugFix : Temporary files are deleted by the function FileTasks::bDelTmpFiles( ) which was
            suffering from some bit rot; it was leaving some temporary files behind.
 * When gschem is envoked by gSpiceUI command line options have been added to configure the
   appearance of gschem ie. light colour scheme, the status panel and side bar aren't displayed.
 * Added a target for cppcheck (a tool for static C/C++ code analysis) to src/Makefile.
 * Added a preferences option to enable gnetlist nomunge mode whereby component label
   prefixes are tested for correctness and if necessary the correct prefix is prepended to the
   component label eg. all resistors should have the prefix R.
 * Added a preferences option to set the tool tip delay.
 * gSpiceUI now automatically determines what gnetlist backends are available instead of using a
   hard coded list.
 * Added a preferences option to enable gnetlist verbose mode whereby debug spew is generated.
 * Added a preferences option to enable gnetlist include mode whereby model file contents can be
   inserted into the netlist file of an .INCLUDE directive be used.
 * Added a preferences option to enable gnetlist embed mode whereby .INCLUDE file contents can be
   inserted into the netlist file of the .INCLUDE directive is left untouched.
 * The configuration mechanism has been re-written and a dedicated Config claas has been introduced.
 * Updates to the usage message in class CmdLinePcr.
 * The class PrcSimEngBase inherits from the class PrcBase. The functions PrcBase::bLogOutput( ) and
   PrcSimEngBase::bSaveOutput( ) perform essentially the same job so the later has been removed.
 * The GUI controls are now properly locked out during operations that require this behaviour eg.
   import, reload, create netlist, etc.
 * In the File menu, "Exit" renamed to "Quit", seems to be more often used by other applications.
 * BugFix : Andrew Holmes has reported a bug which can result in gSpiceUI crashing. gSpiceUI is
            susceptible to entering an wxYield( ) loop when the GUI is accessed during a long
            simulation run. The GUI is now properly locked out during simulation runs and calls to
            wxYield( ) have all been replaced with calls to wxTheApp->Yield( ).
 * The result file the column width is no longer fixed at 14 chars. but is automatically set
   according to the maximum column label width or data field width. The result are now packed more
   tightly so more of the raw data can be viewed in the results file window.
 * The results plotting utility Gaw complains if the results file ends with an empty line so the
   last line is no longer empty.
 * A user (Dom) has reported that NG-Spice (and GNU-Cap) allow a DC sweep with negative step value.
   The code has been modified to allow a DC start value greater then the stop value, the sign of the
   step value is automatically adjusted in the simulation engine command.
 * gSpiceUI now displays more illuminating and consistant error messages if problems occur whilst
   running the simulation process or formatting the results.
 * BugFix : Over many the years a file named "prcbase.log" would occasionally appear amongst the
            netlist or schematic files. It is the default log file name for the PrcBase class but I
            couldn't determine why it was being used. The problem was in FrmMain::Initialize( ),
            FrmMain::InitLogFiles( ) must be called after FileTasks::Initialize( ) or the proper log
            file name wasn't set ie. "gspiceui.log".
 * BugFix : The wxWidgets class wxStringTokenizer assignment operator '=' is unreliable, in one case
            it caused a core dump. All instances of this usage of wxStringTokenizer have now been
            replaced with the function call wxStringTokenizer::SetString( ).
 * Following an inquiry from Eckard Klotz my curiousity got the better of me and I've determined a
   technique to building gSpiceUI on M$ Windoze. Basically, install MinGW, install the wxWidgets
   sources, build wxWidgets using MinGW, install the wxWidgets library, get the gSpiceUI sources and
   build gSpiceUI using MinGW. The end result : "gspiceui.exe" runs but is untested. Instructions
   have been added to the Install file in the gSpiceUI project root directory.
 * BugFix : Several Mac OSX users have reported a compiler bug caused by OnClose( ) event handlers
            in the class HelpTasks. Hiroshi Yoshikawa has offered a patch which I've used to develop
            a fix.
 * Documentation updates including basic information regarding using KiCAD and gSpiceIU.
 * Various minor updates and bug fixes.

----------------------------------------------------------------------------------------------------

2015-04-29 : M.Waters

 * Released version 1.1.00.
 * BugFix : In the NetList class the load file and load attributes operations have been separated to
            prevent redundant disk activity. SimnBase class has been modified in simpathy.
 * BugFix : In the Component class the type is determined based on the first character in the name
            eg. D1 is assumed to be a diode. If the component type couldn't be identified it was
            deemed invalid. This was a bit too harsh so now the component is assumed to be valid
            even if it's type can't be determined.
 * BugFix : The PnlValue control could be tripped up under certain circumstances if a value was
            manually entered (eg. enter 1.0V and decrement to 0.0V instead of 1000.0mV).
 * If a netlist loaded by gSpiceUI is found to be a valid simulation file it is now loaded into the
   Simulation console as well as the NetList console. Changes to FrmMain::bSimnLoad( ).
 * BugFix : In the simulation file an incorrect reference to schematic file/s could be included.
            This could occur if a .ckt wasn't derived from a .sch file.
 * gSpiceUI can now be compiled against wxWidgets v3.0.0 or v2.8.12. Hence forth development will be
   based around wxWidgets v3.0.0 so gSpiceUI may look prettier with this version of the library.
 * The delay between successive spin button control updates can now be set using the Preferences
   dialogue and the "Spin control period" parameter. Allowable values range from 20 to 400 mSec.
 * BugFix : Henry reported on 2010-10-04 that the command line option -g for importing schematic
            file/s was broken. This bug has now been rectified.
 * BugFix : If a PnlValue value outside the allowable range was manually entered, the spin buttons
            ceased to work. The event handlers now know what to do in this case.
 * Further development and testing of OPTIONS dialogue.
 * Comparison of floating point numbers isn't easy when the values are similar. Two new functions
   have been added to class CnvtType which compare floats ie. CnvtType::bIsEqual( ).
 * Significant upgrades to class PnlValue bSetValue( ) functions. This is due to testing done using
   the test application test_AppPnlValue.
 * It's not good practise to declare "using namespace" with global scope so all such declaration
   have been removed.
 * BugFix : The CnvtType class bParseFlt( ) functions could fail at certain boundary conditions
            around mantissa values of 1.0 and 10.0.
 * Added a test application directory src/tests. The first test application is test_AppPnlValue
   which is used to test the display control class PnlValue and all the classes it uses. It's
   getting too difficult to test GUI components inside gSpiceUI.
 * Support for temperature values in Degrees Kelvin and Fahrenheit has been dropped. Both NG-Spice
   and GNU-Cap only support Deg.C and the data-sheets for various electronic components I've checked
   only mention Deg.C. Supporting Deg.K & Deg.F properly in gSpiceUI would require significant
   effort which isn't justified given the maginal benefit to be gained.
 * Phase angle units are now set via the Preferences dialogue.
 * The preferences dialogue now includes an option to alter the main frame layout. Either the probes
   (nodes and components) lists extend the full height of the frame or (as normal) the text controls
   can expand to cover the full width of the frame at the expense of probe lists height.
 * BugFix : When setting a PnlValue the units where being ignored if the value to be set was zero.
            The function PnlValue::bSetValue( wxString & ) has been completely rewritten.
 * BugFix : If Source sychronization was enabled the sweep parameter units where not being updated
            for the DC analysis panels.
 * BugFix : In the class NbkNgSpice the result file width was not being calculated correctly meaning
            results could be lost.
 * In the classes CmdGnuCapOPT and DlgGcpCfgOPT have removed options which are no longer supported
   and included new options.
 * In Settings menu place Preferences item at the top.
 * Created a new class UnitsBase as a base class to ChoUnits and LblUnits.
 * Tidied up the layout of all configuration dialogues.
 * Created a new class LblUnits to be used as an attribute in the class PnlValue as the units label.
 * The layout of the analysis panels for both NG-Spice and GNU-Cap were showing a some bit rot.
   These panels have been updated.
 * Created a new class PnlLblTxt to replace some instances of the wxTextCtrl class. It provides much
   of the functionality of wxTextCtrl and adds a parameter name string displayed to the left of the
   wxTextCtrl control.
 * Created a new class PnlLblCho to replace some instances of the wxChoice class. It provides the
   functionality of wxChoice and adds a parameter name string displayed to the left of the wxChoice
   control.
 * Updates to the build system to suppress warnings when building with gcc and wxWidgets v2.8.12.
 * Convert all bool values to lower case "true" or "false" instead of upper case "TRUE" and "FALSE".
   There seems to be no reason to use upper case values hence the change.
 * BugFix : The class CnvtType was failing one test utility check. The method bIsFloat( ) was not
            detecting that a string like "123E-4" represents a float.
 * Updates to the build system for the test utilities (ie. in src/Makefile).
 * Change from the drawing package Xfig (and FIG drawing files converted to JPEG image files) to
   Inkscape (and SVG drawing files converted to PNG image files).
 * BugFix : Contributor "dcb" ran cppcheck on the gSpiceUI sources. Two non-sensical test
            expressions inside two if( ) statements were found in the file CmdGnuCapGEN.cpp. Both
            bugs have now been rectified. The rest of the sources passed the cppcheck tests OK.
 * Update to GPL license version 3.
 * Changed email address references.
 * gSpiceUI now responds appropriately if a binary file can't be found eg. gschem or gnetlist.
 * Major update of ConvertType class including a name change to CnvtType.
 * HTML documentation updates.
 * Many minor updates and bug fixes.

----------------------------------------------------------------------------------------------------

2011-09-27 : M.Waters

 * Released version 1.0.00.
 * When gSpiceUI is installed example schematic files and library files are now included (this was
   always intended but overlooked).
 * gSpiceUI has been successfully compiled against the wxWidgets library version 2.9.2 (with
   wxWidgets 2.8 compatibility enabled). This was requested by a Mac OSX user Jerry J. since "it
   works better with the Cocoa framework".
 * BugFix : The temporary file management scheme was incomplete. If more than one circuit
            descriptions were loaded in a single session temporary files could be created but not
            deleted.
 * Modifications to the functions in utility/StrUtils.cpp. Signal source names are now sorted so
   that the most used component types appear at the top of the list.
 * Modifications to the functions in utility/StrUtils.cpp. The more interesting node and component
   names now tend to be placed at the top of the test probe list boxes and the remaining names are
   sorted more sensibly.
 * In the classes NetList, SimnBase, SimnGunCap and SimnNgSpice change all Extract*( ) function
   names to Load*( ).
 * BugFix : In version v0.9.99 a reload operation would close gschem and gwave or gaw. (This was
            unintended behaviour.)
 * In class SpinCtrl hard-coded a spin button repeat period of 80 msec. This may be user
   configurable in the future.
 * Increased the maximum number of lines which can be displayed in any text control to 1,000,000
   lines and the default to 10,000. (I don't know if wxTextCtrl can cope with this but someone will
   try it sooner or later and we'll find out).
 * Objects inheriting from PrcBase (which itself inherits from wxProcess) created input and output
   streams but didn't deleted them. Eventually all available file descriptors were used up and
   gSpiceUI could no longer launch new processes. This long standing bug has been resolved
   (I think?) thanks to a contribution made by Jarno H.
 * Added a LM555 model file and demo. schematic.
 * In the classes PrcGWave and PrcGaw removed the functions bFormatLine( ) and bFormatField( )
   because these operations are already performed by PrcGnuCap and PrcNgSpice.
 * Over-haul of the ChoUnits class.
 * In the PnlValue::bSetValue( ) methods remove unnecessary complexity by eliminating the bNoUnits
   argument; it's already implemented by the PnlValue::m_bUseUnits attribute.
 * BugFix : If a node label didn't start with a digit CmdGnuCapPR::Parse( ) categorized it as a
            component label.
 * BugFix : The src/Makefile target "deps" was not correctly defined. Most of the source files where
            being overlooked.
 * In HelpTasks class removed the status bar from the HTML window, it wasn't used.
 * Disable the Stop tool and Stop menu option when no simulation is actually running.
 * In the HelpTasks class added a tool to the tool bar for moving forward in the history database.
 * In the HelpTasks class implemented wxFrame close tool for HTML window.
 * Implemented a new command-line option -d which enables debug mode. This causes console spew to be
   generated on standard error.
 * At startup error messages are held over until the the main frame of the GUI has been fully
   displayed.
 * In src/Makefile added a new variable $DESTDIR which may be used to specify the install location
   at the request of Declan.
 * BugFix : The src/Makefile install mechanism failed if the target bin/ directory didn't already
            exist.
 * In the classes PnlValue, SpinCtrl and ChoUnits the method bClear( ) is used to set defaults.
   Added a function bSetDefaults( ) to set default values and changed the bClear( ) methods to just
   clear the object attributes.
 * Replace all references to wxWindows with wxWidgets.
 * Minor updates to Install documentation.
 * BugFix : The files utility/iStrCmp.h and utility/iStrCmp.c actually contain C++ code so they have
            been renamed to utility/iStrCmp.hpp and utility/iStrCmp.cpp respectively. Also removed
            instructions for compiling C code from Makefile.
 * In the class ConvertType all function for processing double float's take only double's of long's
   as arguments. (This is to do with compile time problems under OSX.)
 * BugFix : If gSpiceUI has gschem open and a reload operation is executed, the gSchem process is no
            longer closed.
 * Added a mechanism to sch/Makefile to convert all example schematic files included with gSpiceUI
   to netlist files using gnetlist. This provides some level of validation of schematic files,
   although it doesn't guarantee that they will work.
 * Updates to the HTML documentation.
 * Minor updates to man page.
 * Various minor modifications and bug fixes.

----------------------------------------------------------------------------------------------------

2010-04-19 : M.Waters

 * Released version 0.9.99 Alpha.
 * BugFix : The Component class wasn't recognizing sub-circuits, transmission-lines or logic devices
            correctly.
 * Minor mods. so that all test utilities compile.
 * Have defined the following types in TypeDefs.hpp : ulong, uint and uchar.
 * It has been reported that "gSpiceUI opens new FIFOs every time gWave, etc. are started but never
   closes them. In a long session the user eventually runs out of file handles". In
   PrcBase::bLogOutput( ) instead of repeatedly getting the input and error streams, get input
   stream pointers once. I've not personally encountered this bug but this might fix it.
 * The sweep sources can now be synchronized. If a sweep source is selected in one analysis page,
   where possible the same source will appear in other analysis pages. This feature may be enabled
   or disabled via the Preferences dialogue.
 * In the class ConvertType replaced all calls to pow10f( ) with calls to pow( ) owing to problems
   compiling the code on OSX.
 * Simplified FrmMain::OnOpen( ), FrmMain::OnImport( ) and FrmMain::OnReload( ) so that most of the
   work is done by the class FileTasks.
 * Simplified FileTasks::bReload( ) so that it calls FileTasks::bOpen( ) and FileTasks::bImport( )
   instead of duplicating code.
 * In the class PrcGNetList remove the functions that aren't really required :
     bSetGNetList( ), rofnGetGNetList( ), szGetGuileProcCnt( ) and szGetSchemFileCnt( ).
 * BugFix : Sort out bugs in the mechanism for loading schematic file/s via the command line.
 * BugFix : Sort out bugs in the mechanism for loading a netlist file via the command line.
 * Added m_iExitCode attribute to PrcBase class to contain the exit code returned when the process
   was last run.
 * Re-organise contents of lib/ directory.
 * Implement function CmdLinePcr::bCheckFiles( ) for basic file name testing.
 * Implement function CmdLinePcr::Print( ) for debugging.
 * BugFix : If errors are encountered by gnetlist the Console tab is displayed instead of the
            NetList tab.
 * BugFix : In dialogs pressing the Clear or Defaults buttons can now reversed by pressing the
            Cancel button.
 * The function PnlValue::bSetValue( wxString, bool ) can now set the units with a value of 0.0
   eg. "0.0msec".
 * BugFix : In FileTasks::InitNetLstFile( ) simulation data was transferred from FrmMain::m_oSimnGcp
            to FrmMain::m_oSimnNgs when it had already been transferred from FrmMain::m_oSimnNgs
            to FrmMain::m_oSimnGcp.
 * BugFix : In CpntNgIndSrc::bParseValue( ) and CpntNgIndSrc::bFormatValue( ) the pulse source
            function was incorrectly formatted; the pulse width appeared ahead of the fall time.
 * Super-conductor junction components are now recognized.
 * The class name AppGSpiceUI has been changed to App_gSpiceUI.
 * BugFix : LC_NUMERIC locale problem reported by Werner H. and Viktor N. Have applied a patch
            provide by Werner : moved the locale call from the AppGSpiceUI constructor to
            AppGSpiceUI::OnInit( ).
 * Documentation updates.
 * Various minor modifications and bug fixes.

----------------------------------------------------------------------------------------------------

2009-09-14 : M.Waters

 * Released version 0.9.98 Alpha.
 * BugFix : In the <root>/Makefile the "install" target had the files ReadMe and Install in
            upper-case which caused the install to fail. Bug found by Werner H.
 * BugFix : For NG-Spice simulations columns of results where lost if more than three parameters
            where derived. Class CmdNgSpiceOPT can now set an appropriate page width for the number
            of derived parameters.
 * Updates to the text files : Authors, ChangeLog, Install, ReadMe and ToDo.
 * Add a new command line option "-c" to partially rebuild/clean the configuration file
   ie. ~/.gspiceui.conf.
 * BugFix : The command line processor was not functioning properly when the option "-g" was
            specified without an argument.
 * Some updates to the installation instructions (ie. Install).
 * BugFix : Gaw was used regardless of the setting in the Preferences dialog.
 * In <root>/src/Makefile the debug flag was set by default. This meant that the resulting binary
   was much larger than necessary. The debug flag is now clear by default.
 * There is a new parameter in the preferences dialog which allows the results precision to be
   specified; a lower value means the raw data is easier to read but a higher value provides for
   greater resolution.
 * Brought back the component names in the NG-Spice results column labels.
 * Much of the implementation of the method bMakeArgLst( ) in classes PrcGnuCap and PrcNgSpice has
   been moved to the base class PrcSimrBase.
 * The gSchem ".sym" files in the <root>/lib/ directory where mistakenly omitted from the last
   release.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2009-09-11 : M.Waters

 * Released version 0.9.97 Alpha.
 * Data is now transferred from a NG-Spice simulation object to a GNU-Cap object (and visa-versa) by
   design rather than happenstance.
 * DlgPrefs is no longer an attribute of FrmMain but is created when needed.
 * Tidy up PrcGNetList class source files.
 * Some changes to the installation instructions for wxWidgets (ie. Install).
 * Remove the restriction that the transient analyse must have a signal source.
 * Modified the class DlgGcpCfgGEN so that it is derived from wxDialog only and not CmdGnuCapGEN as
   well.
 * Modified the class DlgGcpCfgOPT so that it is derived from wxDialog only and not CmdGnuCapOPT as
   well.
 * Modified the class DlgNgsCfgSrc so that it is derived from wxDialog only and not CpntNgsIndSrc as
   well.
 * Modified the class DlgNgsCfgOPT so that it is derived from wxDialog only and not CmdNgSpiceOPT as
   well.
 * BugFix : The temporary file management strategy indicator wasn't being stored in the
            configuration file. Changes to FileTasks class and DlgPrefs class.
 * Modified the Component class to handle TABs as field separators in component definitions.
 * Updates to the About dialog.
 * Updates to the command line usage message.
 * Update the "tar" target in the project root Makefile.
 * Modified DlgNgsCfgOPT so that it inherits CmdNgSpiceOPT instead of having an instance as an
   attribute.
 * Modified DlgNgsCfgSrc so that it inherits CpntNgsIndSrc instead of having an instance as an
   attribute.
 * Updates to the class ConvertType. Can now specify a resolution for conversions from floats to
   strings.
 * Updates to the About dialogue contents particularly the licence details.
 * Major re-think and overhaul of the Simulation class to make it easier to understand and maintain.
   It's been replaced with the structures SimnBase, SimnNgSpice and SimnGnuCap.
 * Some classes have now been re-defined as structures so that most of they're attributes have
   public access. This increases they're ease of use since attributes can be accessed directly
   rather than via inline function calls. (It would be nice if C++ had a mechanism for defining
   attributes as read-only to the outside world.)
 * Created a new simulation structure SimnBase from which the new structures SimnNgSpice and
   SimnGnuCap inherit. These structure replace the single Simulation class which had become far too
   complicated.
 * Simplify NetList class.
 * Updated Component class, changed type to structure, it now permits public access to most
   attributes.
 * Added units of pico-seconds (psec) to the units of time in class ChoUnits.
 * Transient analyses may now be run without having to specify a sweep source.
 * Integrated the command classes into the simulation engine process classes.
 * Created new command classes CmdGnuCapOP, CmdGnuCapTR and CmdGnuCapFO for parsing and formatting
   GNU-Cap OP, Transient and Fourier commands.
 * Created new command classes CmdGnuCapPR and CmdGnuCapGEN for parsing and formatting GNU-Cap Print
   and Generator commands.
 * Created new command classes CmdNgSpicePR for parsing and formatting NG-Spice Print commands.
 * Created a new structure CpntNgsIndSrc which inherits from the Component structure. It processes
   NG-Spice independent voltage or current source definition commands.
 * And others things that I've forgotten.

----------------------------------------------------------------------------------------------------

2008-02-29 : M.Waters

 * Released version 0.9.65 Alpha.
 * A schematic editor (ie. gSchem) can now be envoked from within gSpiceUI via the menuing system or
   the tool bar.
 * Implemented test utilities in all command classes to facilitate debugging.
 * Create new command classes CmdGnuCapDC and CmdGnuCapAC for parsing and formatting GNU-Cap DC and
   AC commands.
 * Created new command classes CmdNgSpiceAC and CmdNgSpiceTR for parsing and formatting NG-Spice AC
   and Transient analysis commands.
 * Modify class PrcNgSpice to use the command classes ie. CmdNgSpiceDC, etc.
 * Created a new class PrcGaw to interface to the waveform viewer Gaw (which is a rewrite of gWave).
 * One of two waveform viewers may now be specified by the user via the command line or the
   preferences dialog ie. gWave or Gaw. This preference is also stored in the configuration file and
   so need only be specified once.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2007-10-25 : M.Waters

 * Released version 0.9.55 Alpha.
 * Various improvements to src/Makefile.
 * Changed the name of the Options menu to Settings to prevent confusion with the SPICE OPTIONS
   command.
 * Fixed a bug in the "make deps" process.
 * Fixed a bug where a reload operation was clearing the units of the stop value in the NG-Spice DC
   analysis. Also fixed many other bugs associated the reload operation in all other analysis
   panels.
 * Minor overhaul of the class PnlNgSpiceDC. Will do the same to all other analysis panel classes in
   the fullness of time.
 * Fixed bug 1759886 "make install: error if ../share/man/man1 is missing" submitted by Werner H.
 * Added the file TypeDefs.hpp to contain mainly the enumerated type definitions used throughout
   gSpiceUI.
 * First cut at controlling the fonts used by gSpiceUI.
 * Added a Clear button to the GNU-Cap Generator Setup dialog and the NG-Spice Signal Source Setup
   dialog.
 * A new class CmdNgSpiceDC has been introduced for parsing and formatting NG-Spice DC analysis
   commands. Ultimately all analysis commands will be processed using this mechanism.
 * The recommended version of the wxWidgets library is still v2.8.x but work has been done to
   improve support for v2.6.x. It seems that wxWidgets v2.8.x has not yet been sufficiently widely
   adopted to make it a requirement.
 * The src/Makefile has been modified so that the version of the wxWidgets library to compile
   against may be specified via the make command line or within the Makefile itself.
 * An upper limit of 9 characters has now been imposed on the number of characters which may be
   entered into a SpinCtrl object.
 * Fixed several bugs associated with the SpinCtrl class.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2007-07-05 : M.Waters

 * Released version 0.9.33 Alpha.
 * Added a sinusoid function to the NG-Spice signal source configuration dialog.
 * Tidy up of the Makefiles.
 * The title line/s in user generated circuit description files are now preserved in the simulation
   file generated by gSpiceUI. Requested by Andres M.
 * Fixed a bugs in the GNU-Cap DC and AC command parsers causing them to break when the start and
   stop sweep values where equal.
 * Adjustments to the size and position of display components.
 * For GNU-Cap the option BASIC has been appended to all analysis lines to suppress the use of alpha
   abbreviations instead of an exponent eg. 3.1u now becomes 3.1E-6. Requested by Andres M.
 * Introduced an .OPTIONS button on each analysis panel and removed the .OPTIONS option in the
   Options menu.
 * Added tooltips to the NG-Spice source component setup dialog and the GNU-Cap generator component
   dialog.
 * Improvements to src/Makefile.
 * NG-Spice negative node values in .PRINT statements were not processed correctly. Eg.
   PRINT TRAN V(0,1) V(0,2) (2 parameters) is interpreted as PRINT TRAN (-V(1)-V(2)) (1 parameter);
   I've found through experiment that PRINT TRAN 0-V(1) 0-V(2) results in the correct intepretation.
   The code has been modified accordingly.
 * Fixed warnings generated by GCC v4.1.1.
 * Added tool tips to the OPTIONS line setup dialogs.
 * gSpiceUI can now be compiled against wxWidgets v2.8.4.
 * Addition of a man page. Minor updates to the documentation.
 * The SpinCtrl control is now right justified.
 * Implement the application preferences dialog.
 * Some modifications to the PnlValue class.
 * The main frame's system close button now works.
 * Automated the creation of dependencies. Added target "deps" to the Makefile in the C++ sources
   Makefile. This target creates the file Makefile.deps which contains a list of dependencies which
   are included in the Makefile.
 * Many bug fixes.

----------------------------------------------------------------------------------------------------

2006-10-26 : M.Waters

 * Released version 0.8.90 Alpha.
 * Some modifications to the PnlValue class.
 * Fixed some subtle bugs in the SpinCtrl class.
 * The SpinCtrl class can now display positive floats with an exponent.
 * Added NG-Spice OPTIONS line setup dialog.
 * Added GNU-Cap OPTIONS command setup dialog.
 * Added selection to Options menu to access OPTIONS setup dialog.
 * All include file paths are now from the source directory. Allows reuse of file names.
 * Added TeraHz, kV and kA to the class ChoUnits.
 * If during installation $(INSTALLDIR)/bin doesn't exist it is created.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2006-05-16 : M.Waters

 * Released version 0.8.55 Alpha.
 * Fixed fault where source component requested for NG-Spice temperature sweep.
 * Fixed some faults in the parsing of floating point numbers into mantissa and exponent
   (ConvertType.cpp).
 * The last line of the console output was missing if it didn't end in a new line character.
 * The output from gNetList is now searched for errors and the user notified if any are found.
 * The application initialization process has been overhauled. It's still not perfect but is an
   improvement.
 * A progress dialog is displayed while the simulation engine is being changed.
 * The source and generator dialogs now do some validity checks before accepting the user settings.
 * Bit rot in PrcBase::Print( ) meant that the text controls weren't always being loaded properly.
 * The Simulation text control wasn't being updated when a simulation was run.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2006-02-17 : M.Waters

 * Released version 0.8.36 Alpha.
 * The rogue log file going by the name prcbase.log which some times appeared has been tracked down
   to the class PrcGNetList. The log file name wasn't being set properly and sometimes wasn't
   deleted when no longer needed. Both of these problems have been rectified.
 * The technique used to clear the save file in the function PrcSimrBase::bSaveOutput( ) has been
   much improved. Large simulations should now run noticably faster.
 * The function bExec( ) has been moved from the classes PrcGnuCap and PrcNgSpice to the class
   PrcSimrBase.
 * Cleaned up the code that formats NG-Spice results (PrcNgSpice.cpp).
 * Cleaned up the code that formats GNU-Cap  results (PrcGnuCap.cpp).
 * A new panel has been added to the GNU-Cap notebook for Fourier analysis.
 * Options for displaying the GNU-Cap and NG-Spice manuals have been dropped from the Help menu.
 * An alternative installation directory may now be specified via the base Makefile. Refer to text
   file INSTALL for a complete description.
 * Include file wx/image.h added to HelpTasks.hpp for MAC platforms as a result of feedback provided
   by Anthony W.
 * Crash caused by an attempt to access the first character in an empty string fixed as a result of
   feedback from Anthony W. - functions modified were:
     PnlNgSpiceDC::InitSwpUnts( ) and PnlGnuCapDC::InitSwpUnts( ).
 * Crash caused by attempt to set the value of a non-existent display object fixed as a result of
   feedback from Anthony W. - function modified was:
     PnlGnuCapFO::CreateOutputs( ).
 * The tool bar help icon was found to be malformed and has been fixed as a result of feedback from
   Anthony W. - file modified was:
     icons/help.xpm
 * Additions to the documentation.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2005-11-29 : M.Waters

 * Released version 0.8.08 Alpha.
 * Documentation is now included in the install process.
 * Added a tool to the tool bar linking with the gSpiceUI manual.
 * The gSpiceUI manual can now be accessed from the Help menu.
 * The application main frame close box has been disabled because when used configuration data isn't
   recorded. I will fix this at some later date.
 * Cleaned up the code run when the simulation engine selection changes.
 * Built using the infamous gcc version 4.0.1 compiler. One warning produced which has been fixed.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2005-11-16 : M.Waters

 * Released version 0.7.93 Alpha.
 * If a net list or schematic is open on exit that same file will be opened next time gspiceui is
   started.
 * The open net list and import schematic dialogs now remember the last directory accessed (these
   values are stored in the configuration file).
 * Added two minor mods. for clean compilation under Sun Solaris.
 * A alternative configuration file may now be specified via the command line using the -r option.
 * The relationship between the class AppGSpiceUI, FrmMain and CmdLinePcr has been simplified.
   Should prevent compiler errors associated with circular includes.
 * Continued implementation of the configuration file mechanism.
 * The development status has reverted to Alpha since fundamental structural changes are still being
   made and are still required.
 * The command line option "-t" which sets the temporary file management strategy hadn't been
   implemented, it has now.
 * The command line option "-d" which sets the number of lines to display in text controls has been
   dropped.
 * The main frame is now resizable.
 * Changed the layout of the main frame to make better use of the available
   space.

----------------------------------------------------------------------------------------------------

2005-09-03 : M.Waters

 * Released version 0.7.80 Alpha.
 * Rectified some bugs associated with the status bar. It now works correctly.
 * Commenced implementation of a configuration file mechanism. The configuration file name is
   ".gspiceui.conf" and is placed in the user's home directory.
 * The position of the main application frame is now recorded in the configuration file. At startup
   gSpiceUI attempts to position itself where it was last placed.
 * In class FrmMain the function OnRun( ) has been tidied up.
 * If required a .WIDTH card is now added to NG-Spice decks so that more than 5 columns of data may
   be output in the results files.
 * Net list files generated by gSpiceUI no longer have "gspiceui" appended to the file name eg. for
   a schematic "circuit.sch" the net list file name will be "circuit.ckt" and no longer
   "circuit.gspiceui.ckt".
 * The text control notebook page "Results" has been replaced with two pages "GNU-Cap" and
   "NG-Spice" which display GNU-Cap and NG-Spice simulation results respectively.
 * Added a reference to the source schematic/s in net list files created by gSpiceUI. A reload
   operation now re-imports the schematics if this reference exists in the currently open net list.
 * Added GHz to frequency units.
 * Additions to the documentation.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2005-07-21 : M.Waters

 * Released version 0.7.56 Alpha.
 * Commenced the use of layout managers to place and size display objects. This has been completed
   in the classes DlgSrcCfg, DlgGenCfg and PnlValue.
 * Development of gSpiceUI is now based on the wxWidgets library v2.6.x. wxWidgets library v2.4.x is
   no longer supported as it does not contain the class wxSizerFlags which is required for use of
   layout managers.
 * Changed references to make in all Makefiles to $(MAKE) so that gmake works on FreeBSD.
 * Implemented the tool bar and removed the simulation control buttons in the main frame.
 * Implemented the schematic/netlist reload function in the File menu and tool bar.
 * Created a new class NbkTxtCtls to contain all of the code associated with the text controls used
   by the FrmMain class.
 * Created a new class HelpTasks to contain most of the help operations required by the FrmMain
   class.
 * Created a new class FileTasks to contain most of the file operations required by the FrmMain
   class.
 * Discovered the wonders of compiling NG-Spice with XSpice extensions. Enables NG-Spice to handle
   POLY( ) statements eg. found in opamp models.
 * Added "*.cir" to the netlist file filters in the open dialog.
 * Added modifications suggested by Ezra to remove errors when compiling under Mac OSX.
 * Added Unicode support.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2005-05-18 : M.Waters

 * Released version 0.7.18 Alpha.
 * Added modifications suggested by Shahab Sanjari to remove errors when compiling under FreeBSD.
 * Dialogue added to NG-Spice Transient analysis to allow pulse source to be configured by the user.
 * Spin control precision changed from one decimal place to two.
 * Fixed some minor bugs associated with the PnlValue class.
 * In the AC analysis the default step scale has been set to "Dec" and the default source level to
   1.0V (ie. 0dBV).
 * The AC analysis complex parts radio for magnitude in dB has been changed to "Mag. in dBV" to
   highlight the units used.
 * The correct Options menu simulator item is now checked when a new simulation is opened.
 * The class PrcPlotter has been rename to PrcGWave.
 * Added two new operational amplifier models to the lib/opamp directory ie. LM324 (national) and
   LMX358 (maxim).
 * Al Davis reported that the GNU-Cap AC analysis generated by gSpiceUI was missing an .OP command
   prior to the .AC command. The operational amplifier models in the lib/opamp directory can now be
   AC analysed correctly using GNU-Cap.
 * Additions to the documentation.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2005-04-19 : M.Waters

 * Released version 0.7.01 Alpha.
 * More than one schematic files can now be imported via the command line.
 * gSpiceUI can now be compiled using the wxWidgets library v2.5.4 but at this stage the GUI looks
   better using wxWidgets v2.5.2 or earlier.
 * Command line option added to specify temporary file management strategy ie. "-t <n>", delete the
   files automatically, prompt the user or keep them.
 * Command line options which have not yet been implemented are no longer displayed in the
   application usage message which has also been tidied up.
 * The application frame now cannot be resized using the mouse but the text control display area can
   be resized with a new command line option "-d n".
 * The spin controls have been modified so that the units automatically change to the next logical
   value when appropriate eg. 1000.0mV rolls up to 1.0V and 1.0mV rolls down to 1000.0uV.
 * I have derived an opamp model on which NG-Spice can perform an AC analysis. The model is based on
   the Maxim LMX358 model. I haven't been able to find an opamp model on which GNU-Cap can
   successfully perform an AC analysis. So far I've tried models from National and Maxim.
 * Additions to the documentation.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2005-03-22 : M.Waters

 * Released version 0.6.91 Alpha.
 * Added sweep step size checks when creating simulation.
 * Work has been completed on parsing basic GNU-Cap commands contained in circuit description files.
 * Work has been completed on parsing basic NG-Spice commands contained in circuit description
   files.
 * The command line processing code has been moved from class AppGSpiceUI to it's own class
   CmdLinePcr.
 * Fixed a bug that caused net list files to be loaded twice. Load operation should now be faster.
 * Fixed a bug in the spin control which caused incorrect incrementing of negative numbers.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2005-02-22 : M.Waters

 * Released version 0.6.81 Alpha.
 * The log file created by gnetlist is now removed on Close or Exit.
 * Temporary files created by gSpiceUI to hold analysis results are now removed on Close or Exit.
 * The development status has been changed from Alpha to Beta.
 * The naming convention for the simulation file has changed from "<name>.sim" to
   "<name>.gspiceui.ckt".
 * Work has commenced on parsing SPICE commands contained in circuit description files. The GNU-Cap
   Quiescent analysis and the NG-Spice AC analysis are complete.
 * The circuit description files generated by gSpiceUI will now have the extension
   "<name>.gspiceui.ckt" instead of "<name>.sim".
 * The GNU-Cap Fourier analysis panel has been temporarily disabled. It is broken and as yet does
   nothing useful. It will be enabled again when it is fixed.
 * The spin controls have been modified so that the step increment is now dependent on the value
   shown. In most cases the control will be incremented or decremented by between 10% and 100% of
   the displayed value.
 * Sort out some bugs which have crept into the NG-Spice simulation mechanism.
 * Simulation class now inherits from NetList class. Streamlines application architecture.
 * Additions to the documentation eg. object model diagrams.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2005-01-12 : M.Waters

 * Released version 0.6.58 Alpha.
 * Allow standard power supply rail labels (ie. Vcc, Vee, Vss and Vdd) to be used as sweep sources.
 * Move source attributes and code from analysis panel classes into base class PnlAnaBase to
   facilitate reuse and maintainability.
 * Move complex parts attributes and code into class PnlAnaBase to facilitate reuse and
   maintainability.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2004-12-08 : M.Waters

 * Released version 0.6.53 Alpha.
 * Clean-up and re-arrange analysis notebook display objects to accommodate a new analysis
   temperature display control.
 * Implement new anaylsis temperature control.
 * Add units of radians and grad to phase values.
 * Move analysis temperature attribute and code into class PnlAnaBase to facilitate reuse and
   maintainability.
 * Improve the management of the i/o notebook text controls.
 * Additions to the documentation.
 * Bug fixes.

----------------------------------------------------------------------------------------------------

2004-11-10 : M.Waters

 * Released version 0.6.47 Alpha.
 * Allow ".include" directives to be specified in net list files.
 * Replaced NG-Spice field identifiers in result file with component labels.

----------------------------------------------------------------------------------------------------

2004-11-08 : M.Waters

 * Released version 0.6.45 Alpha.
 * gSpiceUI now behaves properly when sub-circuit appear in the net list.
 * As a result of the change to wxWidgets v2.5.2 the GWave process was broken. It now works again.
 * Multiple schematic files may now be selected and imported via the GUI but not yet from the
   command line.
 * Status line enhancements. Simulation engine is now displayed.
 * Improvements to the application architecture.
 * Plot process mechanism over-hauled.
 * New class introduced to display floating point or integer variables. It now behaves correctly
   near zero.
 * New choice control class introduced to display and process units.
 * Debug messages mechanism has been removed.
 * For the time being only one plotter process can be intiated at a time.
 * Additions to the documentation.
 * Bug fixes

----------------------------------------------------------------------------------------------------

2004-09-16 : M.Waters

 * Released version 0.5.76 Alpha.
 * PrcGNetList.cpp : Multiple schematic files can now be imported via gnetlist into one netlist
   file.
 * gSpiceUI is now based on the wxWidgets v2.5.2 library (it may not be backwards compatible with
   v2.4.2).
 * Added Transient analysis panel for NG-Spice.
 * Added AC analysis panel for NG-Spice.
 * Makefile : "make config" is now part of "make all" because it got left out by some users and
              appeared to be a fault.

----------------------------------------------------------------------------------------------------

2004-08-12 : M.Waters

 * Released version 0.5.63 Alpha.
 * Verbose mode option (-v) added to argument list to gnetlist.
 * Default argument in FrmMain::bImportSchem( ) was removed. Caused some compilers to barf.
 * Some additions to the documentation.

----------------------------------------------------------------------------------------------------

2004-08-05 : M.Waters

 * The initial release of gSpiceUI, version 0.5.54 Alpha.

----------------------------------------------------------------------------------------------------

2003-08-15 : M.Waters

 * Started development of gSpiceUI.

====================================================================================================