diff --git a/.gitignore b/.gitignore index 85bc6b187f..7a0c2f6897 100644 --- a/.gitignore +++ b/.gitignore @@ -32,8 +32,7 @@ Testing version.h config.h install_manifest.txt -Documentation/doxygen -Documentation/development/doxygen +doxygen/out *.bak *.pyc common/pcb_plot_params_keywords.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d9c74db8e..981b9470b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -995,11 +995,11 @@ if( KICAD_USE_SENTRY ) endif() #================================================ -# Add the documentation +# Add the doxygen target #================================================ find_package( Doxygen ) -add_subdirectory( Documentation ) +add_subdirectory( doxygen ) # Generate config.h. configure_file( ${PROJECT_SOURCE_DIR}/CMakeModules/config.h.cmake diff --git a/Documentation/changelogs/CHANGELOG-2007.txt b/Documentation/changelogs/CHANGELOG-2007.txt deleted file mode 100644 index a0d98bf06b..0000000000 --- a/Documentation/changelogs/CHANGELOG-2007.txt +++ /dev/null @@ -1,1547 +0,0 @@ -KiCad ChangeLog 2007 -==================== - -2007-Dec-29 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - First draft (and code..) about new zone handling, using polygons to define an outline. - Now currently not useable because the fill function (and many other important functions) is not implemented. - Many functions are not yet implemented: merging zones, cutout, DRC ... - Nevertheless, one can create, modify edit and save zone outlines - - -2007-Dec-23 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+all - * Because of the discussion 4 months ago about using Boost::Python, and - because of an excellent boost::ptr_vector class, I want to make some of the - boost libraries be necessary for building Kicad. These would be: - 1) boost pointer container library (immediately) - http://www.boost.org/libs/ptr_container/doc/ptr_container.html - See the work in specctra.cpp to see where this is going: - typedef boost::ptr_vector<ELEM> ELEM_ARRAY found within class PARENT. - I found that gcc 4.2.1 was complaining about the standard ubuntu libboost-dev - package and would not compile ptr_vector class. But the svn of boost - fixed this. - 2) boost::python when building python in. - * Added FIND_PACKAGE(Boost) to CMakeLists.txt - - -2007-Dec-22 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+all - added strlower() to common.h and string.cpp. - fixed compiler warnings in common/gr_basic.cpp and pcbnew/clean.cpp -+pcbnew - started the DSN file import/export for SPECCTRA routers, adding dsn.cpp and - specctra.cpp, with "stand alone" compile support for it in pcbnew/CMakeLists.txt. - - -2007-Dec-17 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - WinEDA_PcbFrame::Other_Layer_Route() was leaving in the bridging segment - when the DRC denied the via insertion. - - -2007-Dec-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - some changes about zones: enhanced dialog, and files reorganisation - - -2007-Dec-14 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - WinEDA_PcbFrame::Other_Layer_Route() now returns bool, so that if the DRC - would not allow the new via placement, then it can be checked and the layer - change can also then be aborted. Previously the layer change would happen - in mid track even if the via could not be placed. - - -2007-Dec-13 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * surbrill.cpp's int WinEDA_PcbFrame::Select_High_Light( wxDC* DC ) - was re-written to use the GENERAL_COLLECTOR, and the scanList is set to - give pads a higher search priority than tracks, vias or zones. - The objective was to use the pad if possible, rather than a track on a pad, - so the pad can be sent to eeschema. Finding the track only (even though - on a pad) would not send anything to eeschema. - - -2007-Dec-12 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * Fized zone drawing bug in svn HEAD only. - pcbnew/zones.cpp, see: - http://tech.groups.yahoo.com/group/kicad-users/message/2993 - - -2007-Dec-11 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+all - * Fixed hotkey table for '+' and '-' bug. The lookup table in - common/hotkeys_basic.cpp had bad entries for + and -. These hotkeys - were not working on Linux. - * Added polygon directory to Doxyfile. - - -2007-Dec-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+cvpcb: - listboxes.cpp FootprintListBox::m_ActiveFootprint member was not initialized. - Can crash cvpcb (WINDOWS only, i believe) - - -2007-Dec-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - changes in file organisation and classes to prepare zone redesign. No real new code. - class zone functions and definitions moved in class_zone.h and .cpp - - -2007-Dec-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew - Very minor bug in drill map : inaccurate via shapes (I believe EXCELLON drill file has no problems) - - -2007-Dec-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+all - Solved zoom key command problems (under linux and windows) - (seen http://sourceforge.net/tracker/index.php?func=detail&aid=1844960&group_id=145591&atid=762476) - -+pcbnew - solved bug when loading a footprint in modedit: invisible text attribute was lost (trunk and tag) - - -2007-Dec-4 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - added the D() macro to fctsys.h to ease conditional debug printf()s. - worked on http://sourceforge.net/tracker/index.php?func=detail&aid=1844960&group_id=145591&atid=762476 - but could not resolve it in 1/2 day. - - -2007-Dec-4 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * drc.cpp and dialog_drc.cpp update. - Added double click support on a MARKER or unconnected DRC_ITEM in the listboxes. - On Linux, it sometimes pops up the menu from PcbGeneralLocateAndDisplay() - for some reason after repositioning the cursor. That is not intended, but - after several attempts to work around it, I realized it is not so bad to - have this happen. - * Added right click popup menus to the list boxes. User must first select - the item he wants to go to, as the right click does not change the selection. - * Added WinEDA_BasePcbFrame::CursorGoto( const wxPoint& ) by factoring it - out of pcbnew/find.cpp - Done now, its ready for folks to start using it and testing it. - - -2007-Dec-02 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - Solved an annotation problem: in multiple parts per package components, - when sorted by position, parts were not grouped by package. - - -2007-Dec-2 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - drc.cpp and dialog_drc.cpp intermediate update. - - -2007-Nov-30 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * added virtual GetPosition() to BOARD_ITEM and derivatives. - * added classes DRC, REPORT_ISSUE, DRC_ITEM and rearranged drc.cpp entirely - to comprize the DRC class. The result has finer granularity of functions - and each is fairly well documented in English, see drc_stuff.h. - Keeping old stuff commented out at bottom of drc.cpp until some more usage - and testing is done. - * Made the DRC dialog modeless, so it can sit off to the side while the MARKER - are inspected one by one. - - -2007-Nov-29 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Removed a bug (function block() ) which crashes pcbnew when erasing a zone by block delete - - -2007-Nov-27 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * changed class MARQUEUR to class MARKER name only. - * Moved BOARD's MARKERs from m_Drawings to vector<MARKER*> m_markers so - they can be easily deleted and navigated to from the drc dialog. - * deprecated the MARKER::Unlink() function. - * Added - BOARD::Add( BOARD_ITEM*, int ) - BOARD::GetMARKER(int) - BOARD::Delete( BOARD_ITEM* ) - BOARD::DeleteMARKERs(); - * Changed BOARD::~BOARD() to use DeleteMARKERs(). - * Revised screen drawing routine to know about BOARD::m_markers. - * Revised BOARD::Visit() to know about BOARD::m_markers. - * Revised pcbnew/find.cpp to know about BOARD::m_markers. - * removed wxYield() from drc.cpp - - -2007-Nov-26 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - DRC code and dialog rework start. This breaks DRC, until I get out the - other end of the tunnel. - - -2007-Nov-24 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * dialog_track_options uses a portable technique for SetFocus(), namely the - function OnInitDialog( wxInitDialogEvent& event ). - * started work on dialog_drc, not checked in. basic wxHtmlListBox is working with dummied text. -+all - makefile.include's now use CXX instead of CC for compiling. - - -2007-Nov-15 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Removed a bug (function Delete_Zone() ) which crashes pcbnew when erasing a zone by popup menu - - -2007-Nov-13 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ eeschema & pcbnew - * The "Page Settings" dialog box has been enhanced; it now includes a - wxStdDialogButtonSizer, and is also now designed to be expandable. -+ pcbnew - * The "DRC Control" and "Netlist:" dialog boxes have also been enhanced. Each - of those dialogs now includes a wxStdDialogButtonSizer and a "Cancel" button, - (so each of those dialogs can now (otherwise) be cancelled by pressing the - "Esc" key), and is also now designed to be expandable. - - -2007-Nov-11 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - Fixed modedit.cpp bug which occurred when selecting a non pad item (such - as a text field) in the module editor, then selecting Dimensions -> Pad Settings - in the module editor. - - -2007-Nov-11 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ eeschema & pcbnew & gerbview - * The "Colors" dialog box has been enhanced; the distance between adjacent - controls now increases (and in both horizontal and vertical directions) - when that dialog is resized. And the "Cancel" button is no longer centre- - justified; it is now right-justifed instead. -+ eeschema - * A wxStdDialogButtonSizer is now used within the "EESchema Colors" dialog box, - meaning that the sequence of the "OK", "Cancel", and "Apply" buttons within - that dialog now depends upon which (OS) version of KiCad is being used (and - thus matching the nature of the corresponding dialogs within Pcbnew and GerbView - in that regard). (As of yet, the vertical distance between adjacent controls - does not increase when this dialog is resized, but that aspect will also be - implemented when time permits.) -+ gerbview - * The "GerbView Layer Colors:" dialog box has been updated, and is now similar - in nature to the corresponding dialogs within EESchema and Pcbnew. Tool tips - have also been provided for the "Show All" and "Show None" buttons. - - -2007-Nov-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - More comprehensive dialog in netlist plugin interface. - Eeschema configuration now shows the plugin netlist list - - -2007-Nov-09 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ 3d-viewer - * The 3d_canvas.cpp file has been updated to use a const parameter, as suggested - within (Bug) Request ID 1828487. -+ pcbnew - * Sizers have now been provided for the "Pcbnew Layer Colors:" dialog box (previously - identified as the "Colors:" dialog box), and tool tips have been provided for the - "Show All" and "Show None" buttons. - * The reglage.cpp file (which is not currently used) has been removed, and replaced - with reglage.cpp.notused. - - -2007-Nov-02 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ all - removed not used files - - -2007-Nov-07 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ all - * The common/svg_print.cpp, common/svg_print.h, and common/svg_print.pjd files (which - are not currently used) have been removed, and replaced with svg_print.cpp.notused, - svg_print.h.notused, and svg_print.pjd.notused. And common/makefile.include has - also been updated so that none of those files are now listed at all. -+ eeschema - * A "Cancel" button has now been provided within each of the "Component properties", - "EESchema Annotation", "EESchema Erc", "Global Label properties", "Label properties", - and "Text properties" dialog boxes, and each of those dialogs can now (otherwise) be - cancelled by pressing the "Esc" key. (In due course, each of those dialogs will be - refined yet further; this is just an incremental enhancement.) - * The eestatus.cpp file (which is not currently used) has been removed, and replaced - with eestatus.cpp.notused. - - -2007-Nov-05 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ eeschema - * The previously provided "Close" button within the "Netlist" dialog box has - now been replaced with a "Cancel" button, and this dialog can now (otherwise) - be cancelled by pressing the "Esc" key. General cleanup and beautification of - eeschema/netlist_control.cpp. -+ pcbnew - * The color of each text string provided within the "Swap Layers:" dialog box is - now set to blue for each string specifying that the associated layer is *not* - being swapped with any other layer, or to fushia for each string specifying that - the associated layer *is* being swapped with another layer. (This change was - made after being suggested by Dick Hollenbeck.) -+ gerbview - * The color of each text string provided within the "Layer selection" dialog box - is similarly now set to blue for each string specifying that the associated - Gerber layer is *not* being exported to any pcbnew layer, or to fushia for each - string specifying that the associated Gerber layer *is* being exported to a - pcbnew layer. - - -2007-Nov-2 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - fixed a crashing bug which happened if you "dragged" a module with - tracks. Then deleted one of the pad connected tracks, then deleted the - next track attached to the first one. Memory was being corrupted because - PcbGeneralLocate() and display was not being called on the 2nd track to - be deleted because the m_Flags test: - bool ItemFree = (GetCurItem()==0 || GetCurItem()->m_Flags==0); - was returning false. Solution was to SetCurItem(NULL) after deleting a - TRACK. This makes sense, SetCurItem() is used for designating a "selected" - item, and a deleted TRACK is not even in the BOARD anymore and should not - be selected or selectable. I think this bug may have been causing spurious - crashes for the last couple of months. - - -2007-Nov-02 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+all: - solved: eeschema, pcbnew and cvpcb did not find libraries when they were - in the default library path, but in a subdirectory - (this is because the default path was not added to the name if the name had - already a path) - - -2007-Nov-02 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ pcbnew - * Sizers have now been provided for the "Swap Layers:" dialog box, and the - previously provided radiobuttons have been replaced with buttons and static - text strings. (In the previous version of this dialog, radiobuttons were being - used in an inappropriate manner. The most "orthodox" way of implementing the - functionality within this dialog would be to provide a combobox for each layer, - but as up to 30 strings would be needed within the dropdown list associated with - each of those controls (one string for each of the layers, and another string to - deselect the layer), such controls would be less than user-friendly. Hence a - button is now provided for each layer instead (and which, like the previously - provided radiobutton, invokes the "Select Layer:" dialog box after being clicked - on). Two static text strings are also provided for each layer, with one of them - being used to identify that layer, and the other being used to identify which - layer that each layer is currently being swapped to.) The previously provided - "Select" and "Deselect" buttons are no longer required, and are thus no longer - provided. -+ gerbview - * The "Layer selection" dialog box (invoked during the "Export to Pcbnew" command) - has similarly been updated. (This dialog did use spacers before, but once again, - the previously provided radiobuttons were being used in an inappropriate manner.) - - -2007-Nov-01 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ pcbnew - * Provided new definitions of FIRST_COPPER_LAYER and LAST_COPPER_LAYER within - include/pcbstruct.h, and used those definitions within various other files. - Beautified and generally refined 3d-viewer/3d_draw.cpp and pcbnew/plotgerb.cpp. - - -2007-Oct-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+kicad: - rename mdiframe.cpp to mainframe.cpp - create commandframe.cpp to handle the command frame (which have the 4 "fast launch" buttons) - - -2007-Oct-31 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ all - * Added Doxygen configuration file, whose standard name is Doxyfile. Output - is set to go to ./doxygen directory just off the project tree. - * Added a note to todo.txt which asks folks to start using "Doxygen compatible" - comments in member functions and classes. Run Doxygen on the project, then - look at the documentation for class INSPECTOR as an example. -+ pcbnew - * zones.cpp, Trace_Pcb(), & EDGE_ZONE class: - Reversed the usage of EDGE_ZONE::Pnext and Pback in the list management to be - consistent with other classes and with BOARD_ITEM::IterateForward() and - BOARD::~BOARD(). - * Fixed a display bug when high contrast mode is enabled and the track tool - is selected. - - -2007-Oct-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+all: - gcc 4.2.1 compatibility: change char * to const char * whenever it was necessary, - mainly in .xpm files - - -2007-Oct-30 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - added BOARD_ITEM::Save() and to all derived classes as well. Made virtual - and removed all UI code from these utility functions. - removed WriteDesc() functions from all BOARD_ITEM derived classes, although - Keeping old ones in commented out form for a while for reference. - @todo: delete these from *.cpp files eventually. - zones.cpp, clean up in prep for enhancements. -+ gerbview - fixed bug which came about when BOARD::~BOARD() started deleting the objects - that a BOARD owns. export_to_pcbnew.cpp was not consistent with this - design and was crashing. Also, export_to_pcbnew.cpp now uses the simple - BOARD::Save() function. It was another place to maintain the PCB file format, - rather than simply putting that knowledge into one place like BOARD::Save(). -+ all - beautified gr_basic.cpp and made CLIP_LINE macro a static inline function. - - -2007-Oct-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+cvpcb: listboxes.cpp problem solved: exists only under windows - now apply to windows only, because this Workaround creates a problem undex linux -+others: - some very minor problems solved -+eeschema: - in B.O.M.: the footprint field can be added to the field list - - -2007-Oct-29 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+cvpcb: listboxes.cpp problem solved: Workaround for a curious bug in wxWidgets: - if we switch from a long list of footprints to a short list (a filtered footprint list), - and if the selected item is near the end of the long list, - the new list is not displayed from the top of the list box -+eeschema: - Implemented: graying in/out of "Edit/Undo", "Edit/Redo" menu items, - when Undo/Redo stack is empty/filled. -+pcbnew: - Implemented: action for ID_POPUP_PCB_DELETE_MARKER - - -2007-Oct-27 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ all: - remove unused files. - some translations -+cvpcb: - set flag wxFRAME_FLOAT_ON_PARENT when create the footprint 3D frame and the - display frame - minor other changes -+ pcbnew: - Use collector class to locate items in modedit. - This is a big enhancement, - but a small work for me because Dick made all the work. - - -2007-Oct-26 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew: - Add class_marker.cpp and class_marker.h and move MARQUEUR functions in class_marker.cpp - Change MARQUEUR::HitTest to take in account the zoom level. - change global var EDA_Appl to g_EDA_Appl - - -2007-Oct-25 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ cvpcb - * Fine-tuned contents of dialog_display_options.cpp, dialog_display_options.h, - and dialog_display_options.pjd, so that the controls within the associated - ("Display Options") dialog box now also expand if that dialog is expanded. -+ all - * The share/selcolor.cpp file (which is no longer used) has been removed, and - replaced with share/selcolor.cpp.notused - - -2007-Oct-24 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ cvpcb: - 2 missing .prj files added (and updated) - dialog_display_option.cpp is rebuild from its dialog_display_option.prj source - - -2007-Oct-23 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ eeschema - * Sizers have now been provided for the "EESchema Preferences" dialog box, - together with "OK", "Cancel", and "Apply" buttons. And an additional bitmap - button and checkbox have also been provided for the purpose of editing the - color and visibility of the grid. - - -2007-Oct-21 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ all - * Provided an MAYBE_RESIZE_BORDER field within all of the .pjd files (used by - DialogBlocks), and restored the MAYBE_RESIZE_BORDER field to cleaningoptions_dialog.h - - -2007-Oct-21 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ all - added UIpolicies.txt - - -2007-Oct-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew: - rename dialog_clean_pcb.pjd to cleaningoptions_dialog.pjd, - accordind to the corresponding cpp filename. - enter the new tool tips in cleaningoptions_dialog.pjd. -+all: - USE_RESIZE_BORDER is now defined (default) in fctsys.h. - Therefore, under windows, dialogs are now resizable (like under unix) - - -2007-Oct-21 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ eeschema & pcbnew & gerbview - * Sizers have now been provided within the "Colors" dialog box. - - -2007-Oct-19 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * "Clean tracks" changed to "Track operations". - * Housekeeping on clean.cpp completed. - Added static void ConnectDanglingEndToVia( BOARD* pcb ) in clean.cpp which - extends tracks to via centers. Call it from "extend to pads", works nice. - * Added tooltip text to cleaningoptions_dialog.cpp's m_ConnectToPadsOpt - but don't know if DialogBlocks will parse this backwards. - * Made compilable, somebody broke #define VIA_???? s throughout. Would not compile. - * SEGVIA::SetPos() & GetPos() added. - - -2007-Oct-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew: - Removed enhancements in connectivity computation because - rastnest computation does not work (errors) with short track segments - (lenght < width) . This is not a bug, but an algorithm problem, so - I must work on algos. - - -2007-Oct-17 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ pcbnew - * Rolled back previous changes (made in revision 336) that edited the values of - vias' Shape property (following feedback from Jean-Pierre Charras concerning - the true significance of that property). - - -2007-Oct-13 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew: - remove a change for Read VIA because via attributes - (TROUGH VIA, BLIND VIA or BURIED VIA) are autorisations for layer connection, - and are not a real layer indicator. - If a via connect layers from copper to component, it can have a BURIED VIA attribute. - the meaning is for this via the layer pair can be changed for other layer pair - if after editing this via connect 2 tracks which are only int internal layers, - its layer pair can be changed. - If a via has a TROUGH VIA attribute, it connects ALL layers, whenever tracks - connected to it. - Note: curenty: only TROUGH VIA are handled. - Other types (BLIND VIA and BURIED VIA) are only experimental. - A **lot** of code is needed for a full support. - enhancements in connectivity computation - - -2007-Oct-15 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ pcbnew - * Made some changes involving vias so that these would have the correct value - of the Shape property assigned to them - while being created, and while files - are being saved, and while files are being loaded. - - -2007-Oct-14 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew: - * housekeeping and translation to English on bottom third of pcbnew/clean.cpp. - No algorithm changes were intended, only improved readability. - * my todo: figure out how to intercept double clicks on a wxWidgets text control - so I can complete the work I started on MARQUEUR error tracking. - - -2007-Oct-13 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew: - ratsnest.cpp translated into english. - Many infos on the LEE algorithm used here added. - todo (by myself): connect.cpp translation. - onrightclick() bug (created by last change) solved: one could reselect an item, - while moving a previously selected item (pcbnew crashes). - - -2007-Oct-13 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ eeschema - * The previously provided "Quit" button within the "List of Material" dialog box - has been replaced with "OK", "Cancel", and "Apply" buttons. Greater consistency - has also been achieved after clicking on the "Create List" button; none of the - prevailing settings are subsequently saved (previously, some, but not all, of - the settings were subsequently saved). (However, settings can still be saved by - clicking on either of the "OK" or "Apply" buttons instead.) Assorted cleanup - and beautification of associated source code. - * The genliste.cpp file (which is no longer used) has been removed, and replaced - with genliste.cpp.notused - - -2007-Oct-12 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ all - * m_NetCode is now private or protected throughout. - added SetNet() and GetNet() to all classes which have this member name. - ditto for m_Sous_NetCode, for which there is now SetSubNet() and GetSubNet(). -+ pcbnew - added more disambiguating text to the PcbGeneralLocateAndDisplay() popup - menu for tracks. We need all the info we can get there I found after using - the software for many hours. - - - Jean-Pierre: - - I never thought I would find a greater problem in using Kicad than having to - lay down all the ground and power tracks, rather that just linking vias into - pre-established zones or "tagged layers". - - But I have, hundreds of my tracks and vias are showing - unconnected under my BGA, (where say the track or via is NetCode==0) and it - should not be, because the damn track ties the BGA pad to a nearby via. - How can the software be made to think these three items are on the same net, - without re-entering all the damn tracks? - - This issue has been coming up for months on the user list, it must be dealt with now. - There is always the same lame answer, "make sure your tracks go to the center of the pads". - Nonsense, the software picked the track end points, not me, and grid was on when it did it. - There are bugs here. - - Does Recalcule_all_net_connexion() work, and why is not called from anywhere? - - - -2007-Oct-11 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * D_PAD::Draw() refinements. - * WinEDA_DrawFrame::SetToolID() will redraw the DrawPanel if the track - button is selected or de-selected and the high-contrast mode is in play. - * If high-contrast mode is in play, the Select Layer Pair dialog completion - will redraw the DisplayPanel, now that SMD pads' colors are so dependent - on these variables. - - -2007-Oct-11 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * D_PAD::Draw() so that it shows SMD pads as greyed out when in high contrast - mode and not on current layer. Slight variation on this when laying down - tracks: m_Route_Layer_BOTTOM or m_Route_Layer_TOP layers' SMD pads are - not greyed out. - * Changed English UI text for "Cotation" to "Dimension". - - -2007-Oct-11 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ pcbnew - * The "Target Properties" and "Pads Global Edit" dialog boxes can now (otherwise) - be cancelled by pressing the "Esc" key, and the caption of the "OK" button - within the latter dialog box has been capitalised (so that an icon is now - provided within that button within the Linux version of KiCad). - * The pcbpiste.cpp file (which is no longer used) has been removed, and replaced - with pcbpiste.cpp.notused -+ cvpcb - * The affiche.cpp file (which is no longer used) has been removed, and replaced - with affiche.cpp.notused - - -2007-Oct-11 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ pcbnew - * The previously provided "Exit" button within the "Colors:" dialog box has been - replaced with "OK", "Cancel", and "Apply" buttons, and the code for editing the - visibility of the Grid layer from that dialog now is "cleaner" than before. - Details associated with buttons within that dialog box moved from set_color.cpp - to set_color.h (matching implementation for GerbView's corresponding dialog box). - * Fixed bug which previously prevented the Copper layer from being selected as the - current layer when only one copper layer is enabled (and made some modifications - to the code for selecting the next copper layer and previous copper layer). -+ gerbview - * The code for editing the visibility of the Grid layer from the "GerbView Layer - Colors:" dialog box is "cleaner" than before, and assorted other beautification. -+ eeschema - * The options.cpp file (which is no longer used) has been removed, and replaced - with options.cpp.notused - - -2007-Oct-10 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * bug fix: prevent OnRightClick() from calling PcbGeneralLocateAndDisplay() - when creating a new track. - * bug fix: popup menu was not handling Mires, because the collector was not - being asked to find them. - * added TRACK::ShowWidth() and call it from BOARD_ITEM::MenuText(). There was - not enough information in Selection Clarification at a busy junction to - make a reasonable choice. - * SEGVIA::MenuText() shows via width, rather than net_code. - * Beautified ratsnets.cpp, I would like to understand it better. It would help - if the comments were in English. -+ all - * Changed English UI text "Mire" to "Target" according to this post: - http://tech.groups.yahoo.com/group/kicad-users/message/1380 - * rewrote msgpanel.cpp so it retains wxStrings and therefore can repaint its - window when being uncovered, resized or whatever. - - -2007-Oct-9 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - changed pcbnew/onrightclick.cpp so that a right click only shows the - Selection Clarification menu if there is no selected object or if the - click is in a position different from where the selection was previously - made. - - -2007-Oct-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ eeschema: - cross-probing minor bug solved ( due to last modification): pins/pads not probed - - -2007-Oct-08 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ gerbview - Display on screen now updates properly (in Linux version) after clicking on - the "OK" button provided within the "GerbView Layer Colors" dialog box. - - -2007-Oct-7 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ eeschema - create new file cross-probing.cpp - move RemoteCommand() to cross-probing.cpp and create SendMessageToPCBNEW() - -+ pcbnew - bug in move pad fixed (could crash pcbnew) - Small change in selection clarification (side effect removed): - - Escape or click on title does not show the next popup menu. - - the title is displayed under linux - - definition CUIVRE_N translated into COPPER_LAYER_N - - -2007-Oct-07 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ all - * Various dialog boxes can now (otherwise) be cancelled by pressing the "Esc" key. - (Some dialog boxes still require attention in that regard though, so that task - is not yet complete.) And the captions of the "OK" button within various dialog - boxes have been fully capitalised (meaning that an icon is now provided within - each of those buttons within the Linux version of KiCad). - * DIALOG_STYLE (defined within include/wxstruct.h) now includes MAYBE_RESIZE_BORDER - field. (Refer to 2007-Oct-2 UPDATE notes for the relevance of this.) - * Beautification and house keeping. -+ eeschema - * The editpart.cpp and libedpart.cpp files (which are no longer used) have been - removed, and replaced with editpart.cpp.notused and libedpart.cpp.notused -+ cvpcb - * Additional "OK", "Cancel", and "Apply" buttons have now been provided for the - "Options" dialog box which lists various display options for footprints. -+ pcbnew - * Invoking the "Select Layer Pair:" dialog box is no longer possible whenever only - one (copper) layer is currently enabled. And it is no longer possible to select - the same layer to be both the Top Layer and Bottom Layer (for any Layer Pair). - * Deselecting layers during the "Swap layers" command is now more user-friendly, - due to the provision of an additional "(Deselect)" radiobutton within the (child) - "Select Layer:" dialog box (which is always invoked whenever a different - radiobutton within the "Swap Layers:" dialog box is clicked on). (It had - previously been necessary to cancel the "Select Layer:" dialog box before being - able to click on the "Deselect" button within the "Swap Layers:" dialog box.) - * Definition for NB_LAYERS changed from (EDGE_N + 1) to (LAST_NO_COPPER_LAYER + 1) - (Although EDGE_N is currently the "last" layer, that wouldn't necessarily still - be true if any additional layers are ever defined in the future.) And comparisons - to 29 (or 28) have been replaced with comparisons to NB_LAYERS (when appropriate). -+ gerbview - * The previously provided "Exit" button within the "GerbView Layer Colors" dialog - box has been replaced with "OK", "Cancel", and "Apply" buttons; and both the - visibility and color of the Grid layer can now be edited from the same dialog. - * Deselecting (Gerber) layers during the "Export to Pcbnew" command is now more - user-friendly, due to the provision of an additional "(Deselect)" radiobutton - within the (child) "Select Layer:" dialog box (which is always invoked whenever - a different radiobutton within the "Layer selection:" dialog box is clicked on). - (It had previously been necessary to cancel the "Select Layer:" dialog box before - being able to click on the "Deselect" button within the "Layer selection:" dialog - box.) - * The "Export to Pcbnew" command now requires at least one Gerber file to have been - already loaded. And Gerber files can now be loaded into any of the 32 (Gerber) - layers provided. (It had previously been necessary to avoid having any gaps within - the sequence of used Gerber layers.) - - -2007-Oct-6 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew - create new file cross-probing.cpp - move RemoteCommand() and SendMessageToEESCHEMA() to cross-probing.cpp - - -2007-Oct-3 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - made BOARD_ITEM::UnLink() virtual - added BOARD_ITEM::DeleteStructure(). - added EDA_BaseStruct::DeleteStructList() - deleted gerbview/struct.cpp, pcbnew/struct.cpp, - BOARD::~BOARD() now deletes objects that it owns. - Collectors now finds MARQUEURs also - added MARQUEURS::Display_Infos() - added MARQUEURS::HitTest() - - -2007-Oct-2 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ all - The lack of border resizing in dialogs has been a problem. In my world, - dialog boxes are resizable. I use large fonts, I like to see stuff. - So now for __UNIX__ they are resizeable, for windows not. - See fctsys.h and the #define for MAYBE_RESIZE_BORDER. For windows it defaults - to zero which means resizeable is not featured. A compiler command line - option of "USE_RESIZE_BORDER" can override this windows default. - - -2007-Oct-01 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew/eeschema - Cross-probing pcbnew to eeschema: - A left click on a pad in pcbnew moves the eeschema cursor on the corresponding component pin - A left click on a footprint ref or value in pcbnew moves the eeschema cursor on the corresponding component ref or value - A left ckick on a footprint moves the eeschema cursor on the corresponding component anchor -+ pcbnew - removed drc.cpp change line 584, and translate comments in english. - nothing broken: - -> a pad with its netcode = 0 means the pad ** must be left unconnected ** (not attached to * a net). - -> a track with its netcode = 0 means the track is not attached to a net (cannot be connected to any pad). - - -2007-Sep-30 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - Added dedicated Show() function for SEGVIA. Enhanced BOARD_ITEM::MenuText() - for SEGVIA. - - -2007-Sep-29 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * drc.c made a change near line 584 to comment out pt_pad->m_NetCode test against - zero. This was preventing me from laying out my board. It's possible that - this broke something else, but it is also clear that something was broke before - this change, because I could not put down some tracks. - * beautification, house keeping. - - - -2007-Sep-29 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew - create new file onleftclick.cpp - move onleftcligk() and onleftDcligk() from edit.cpp to onleftclick.cpp - - -2007-Sep-27 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ all - test case for OnLeftClick() handling enhancements. - TAB key removed, because is not needed for block selection and double click. - (SHIHT ou CTRL or ALT key is sufficient to suppress the popup menu - if needed for a double click ) - Some work is still needed, of course -+ pcbnew - Color grid setting now works - - -2007-Sep-26 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ all - test case for OnLeftClick() handling from a release circumstance. - a few simple changes to void WinEDA_DrawPanel::OnMouseEvent( wxMouseEvent& event ), - but they affect all programs in a subtle way. - TAB key allow double clicking, but is not needed for block selection. - -+ pcbnew - GENERAL_COLLECTOR::GetCount() returns int, not unsigned. Was tired of the - compiler complaining when using an int ndx. - - -2007-Sep-25 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * removed reference to global display options DisplayOpt.DisplayZones in - collectors.cpp so collectors.cpp can continue to be used in multiple future - (non-display related) general contexts. I don't want unnecessary dependencies - in there. The way to completely ignore a type is to exclude it from scanList. - The way to sometimes ignore a type is to add support for this in COLLECTORS_GUIDE. - * Moved TYPEZONE to end of AllBoardItems, added GENERAL_COLLECTOR::AllButZones to - provide support for DisplayOpt.DisplayZones. - * Added aHotKeyCode to PcbGeneralLocateAndDisplay() -+ gerbview - * viewer was getting stuck in a loop when loading a bad gerber file. Fixed - the bug, but line 223 through 225 of readgerb.cpp needs review. - * beautified a few files with uncrustify, (any I had to look at). - - -2007-sept-25 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew: - * add class_board_item.cpp file and move BOARD_ITEM::MenuText() and BOARD_ITEM::MenuIcon() in it - * Add zone detection, forgotten in PcbGeneralLocateAndDisplay() -+ class_collector.h: - add void COLLECTOR::Remove( unsigned int item_position ), needed by zone detection, see PcbGeneralLocateAndDisplay - - -2007-Sep-25 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ gerbview - The "Exit" button previously provided within the dialog box invoked from the - "Preferences -> File ext" menu entry has now been replaced by "OK" and "Cancel" - buttons. Similarly, the "Accept" button previously provided within each of the - dialog boxes invoked from the "Preferences -> Options" and "Preferences -> Display" - menu entries has now been replaced by an "OK" button. And each of those three - dialog boxes can now (otherwise) be cancelled by pressing the "Esc" key. - - -2007-sept-22 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ all - * small change in hotkeys handling - (Ki_HotkeyInfo: new member m_IdMenuEvent to call an existing event handler from a hotkey list) - -+ eeschema: - * added drag component in pop up menu and hotkeys - * plot svg format: incorrect arc draw fixed - - -2007-Sep-22 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - GENERAL_COLLECTOR::Collect() was skipping thru hole pads even though they - were visible. - Highlight tool now sends message to eeschema when a pad is selected. - - -2007-Sep-20 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ eeschema - * beautify, add debug Show() functions, changed ReturnFieldName() - to return "const wxString&" for speed, added GetFieldValue(). - * tracking down questionable behavior (a bug?) in erc regarding pwr_flag, still looking - - -2007-sept-20 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ all - * hotkeys handling finished -+ pcbnew - * bug fix: a subtle bug in place via : partial drc only was made. - - -2007-Sep-14 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * controle.cpp, added Function AllAreModulesAndReturnSmallestIfSo() which is - called from PcbGeneralLocateAndDisplay() - * onrightclick.cpp changed to calls to BOARD_ITEM::MenuText(), and switched - to member functions for createPopupMenus() so we can get all the state - information we need for the proper menus. - * BOARD_ITEM::MenuText() got new argument BOARD*, and elaboration for - TRACKs and VIAs and Pcb Graphics. - * Fixed a problem in GENERAL_COLLECTOR::Inspect() so it now knows that MODULEs - have their own visibility controls (same for pads and pcb texts). This - interpretation must always match the drawing code's interpretation. - * Made TRACK::TRACK( const TRACK& ) protected to enforce use of TRACK::Copy() - - -2007-Sep-13 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ kicad - * Inverted the logic associated with filters. Filters now enable a file - in the project manager. The default is to ignore all files. - * The filter for *.sch files is smarter, in that it looks to display only - top level *.sch files, rather than all *.sch files. -+ Others - More beautification - - -2007-sept-13 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ all - * EDA_BaseStruct.SetType() removed. - The m_StructType member of class EDA_BaseStruct is no more modified in kicad. - Now Virtual functions can be widely used. - * The old EDA_BaseStruct.ReturnClassName() was removed. - the virtual EDA_BaseStruct.GetClass() is used instead. - -+ gerbview: hotkeys Ok. - - -2007-Sep-13 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ eeschema & pcbnew & gerbview - A Cancel button has now been provided for the "Colors" dialog box, which also - permits it to (otherwise) be cancelled by pressing the "Esc" key; the button - whose color matches that of the color currently selected (for the layer being - edited) also has the initial focus set to it. - - -2007-Sep-11 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * Changed PcbLocateAndDisplay() to be tool specific in its search and to present - a popup menu when there are multiple items under the mouse. It is also - a framework for future enhancements. - @todo: grep for @todo and finish off those tasks. - * Introduced a formal notion of "selected item". This is done with the addition - of the WinEDA_BasePcbFrame::SetCurItem() function. So now you have to first - select an item with the left mouse button before you attempt to use the - right button popup menu. Right button no longer has an effect on the - currently selected item. The currently selected item is shown in the MsgPanel. - When none is selected, the m_Pcb is shown. - * Tweaked the OnRightClick() popup menus so that the most likely choices are - at the top. - * Added wxString BOARD_ITEM::MenuText() const and BOARD_ITEM::MenuIcon() and - both need more work, work which I will not have time to do. - - -2007-Sep-10 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * Searched and did not see any usage of TRACK::Copy(int), where int was other - than '1', so renamed it to TRACK::CopyList(int) and commented it out because - with int==1, this makes Copy(1) equivalent to the new Copy(void). - * Made TRACK::Copy() capable of copying SEGZONE too. - - -2007-sept-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ gerbview - Programmable hotkeys added. Fixed a compilation probleme in ansi mode (non unicode mode). - - -2007-Sep-8 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * Made good progress in onrightclick.cpp for multiple items under the mouse. - * Fixed some macros in macros.h so they can be followed with a semicolon and - used like simple expressions. - All changes not yet committed. - -2007-sept-6 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ eeschema & pcbnew - Programmable hotkeys update. - some features are still subject to change (mainly path for config files: see 2007-aug-30 UPDATE)) - The preference menu has a command to create and reread config hotkey files. - the hotkey ? lists the current hotkeys. - - -2007-Sep-4 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * Made GENERAL_COLLECTORS_GUIDE and GENERAL_COLLECTOR useable. They can now - serve as a fully functional replacement for PcbGeneralLocateAndDisplay(), - see DEBUG code in BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay(). - * Made GENERAL_COLLECTOR capable of Collect()ing from a MODULE as well as a BOARD. - * pcbnew/onrightclick.cpp changed English from "Free Module" to "Unlock Module". - Next I hope to add some UI to handle multiple items under the mouse in onrightclick.cpp - - -2007-sept-04 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew - better comments in editrack-part2 (the todo remark solved) -+ todo.txt: note about editrack-part2 modified (problem solved) - - -2007-Aug-31 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew & gerbview - * Added TRACK::Copy() which can copy a SEGVIA or a TRACK. - * Changed export_to_pcbnew.cpp so it created a SEGVIA properly, a significant change. - Moved and changed a big block of code in export_to_pcbnew.cpp so we can - properly construct the SEGVIA(). Not tested. - * Make EDA_BaseStruct::m_StructType private so we can trap where it is being - changed. (It should never be changed after construction, see comment above - EDA_BaseStruct::SetType().) - - -2007-Aug-30 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - * Removed SEGVIA::IsViaOnLayer, and instead implemented an override to - virtual BOARD_ITEM::IsOnLayer() called SEGVIA::IsOnLayer(). - * Tweaked TRACK::Visit() to not traverse the KICAD_T scan list and a - corresponding change to BOARD::Vist() so we can now get VIA priority - if desired. (Have to traverse m_Tracks twice, wonder if we could use - two lists: m_Tracks and a new m_Vias?) - * Changed signature of MODULE::Display_Infos( WinEDA_DrawFrame* frame ) so - it gets called virtually with any BOARD_ITEM* which is actually a MODULE*. - This was a bug. - * With virtual functions, it is now critical that the correct object type - be instantiated. This was not happening in ioascii.cpp when reading - the vias. Bug fixed. - * GENERAL_COLLECTOR getting closer to useable. - - -2007-aug-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ eeschema & pcbnew - more about programmable hotkeys. - Most existing hotkeys are programmable and displayed in popup menus or tools - Work still in progress but most features are ok. - some features are not fixed (mainly the configuration files path, which is - currently the home directory under unix systems and kicad/template under windows)) - - -2007-Aug-29 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - Started abstract class COLLECTORS_GUIDE. - Renamed classtrc.cpp to classtrc.cpp.notused - Changed some comments in class BOARD's header to english, clarifying - linked list contents. - - -2007-aug-27 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ all - Display grid size in mils or mm in popup menu according to the current unit choice - - -2007-Aug-24 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ eeschema & pcbnew - * Removed class EDA_BaseLineStruct, which brought no behavioral advantage, only data. - Classes which were based on it got its data members added and their initializers. - * Changed type of EDA_BaseStruct::m_StructType from int to KICAD_T which is an - enum. This makes debugging easier since gdb will show the name of the - KICAD_T rather than simply a number. Added NOT_USED = -1 to KICAD_T enum for - 3d which was using -1. - * More beautification using latest uncrustify and the committed uncrustify.cfg - - -2007-Aug-24 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ pcbnew - A new option has now been provided which permits Gerber files to be generated - in which the contents of the Edges Pcb layer are not also included with the - contents of each other layer. - - -2007-Aug-23 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ eeschema & pcbnew - * Fixed MODULE::Visit() and BOARD::Vist() so they traverse certain lists - only once and they are working nicely now. - * You can test the GENERALCOLLECTOR::Scan() code by compiling with DEBUG=1 on - the command line and enabling the stuff near line 124 in - pcbnew/controle.cpp, then watch Show( std::cout ) show the selected items in - xml format on your console. (launch pcbnew from command line.) - @todo: - The layer selection mechanism used by the collector is still inadequate, so - tomorrow I will add a new class COLLECTORS_GUIDE which can be used by a - COLLECTOR to control its operation. It adds the concept of layer - locking, even though PCBNEW does not support that in the UI yet. - - -2007-Aug-22 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ eeschema & pcbnew - Things are still pretty transient, should be stable a day or two: - * Fixed a filename case sensitivity problem that would show up on Linux - but probably not on Windows: bitmap/Reload.xpm needed uppercase R. - * Wedged a new class BOARD_ITEM underneath all PCB drawable classes. This is - a big change and may introduce a bug or two, but it is worth it for the - future, because we can add virtual functions there that do not impact - the entire project (since everything is derived from EDA_BaseStruct). - The corresponding class in EESCHEMA seems to be DrawPartStruct, so we had - nothing in PCBNEW like that. - BOARD_ITEM::GetLayer() and SetLayer() introduced, more functions to come. - Much of this work is geared towards making collectors.cpp's ARROWCOLLECTOR::Inspect() - very very simple, and that can be a model for future work. - * Changed min() and max() macros to MIN() and MAX() because min() and max() - are actually reserved according to the C++ standard! (and their usage prevented - the use of #include <vector>). - * Added files class_collector.h, collectors.h, and collectors.cpp. - File collectors.cpp is still unfinished. - * Started using a function and class comment style that will make sense to the - Doxygen source code documenter program. - * Beautified more un-beautified files. - - -2007-aug-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ eeschema & pcbnew - First version of programmable hotkeys by editing hotkey configuration files. - some hotkeys are not programmable (Zoom)(work in progress) - - -2007-Aug-21 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ administrative - Added copyright.h as a proposed copyright header for Mr. Charras's review. - Added uncrustify.cfg, the configuration file for the "uncrustify" C++ beautifier. - - -2007-Aug-20 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew & eeschema - * Moved allowed m_Flags values from pcbnew.h, general.h, and eeschema/delete.cpp to base_struct.h - near m_Flags itself. Several of the flags values were changed. I am only - comfortable with this change if m_Flags is not written to disk anywhere, - and we need to give that some thought. If m_Flags is a memory only usage - and not saved to disk, then this change should be safe. I could not find - any case where m_Flags was being saved to disk, but I could have missed one. - The reason for the change was to consolidate into one place the allowed values - so that as new flags are allocated there is no conflict. - * Moved most all the pcbnew/affiche.cpp functions to virtual member functions of their - respective classes with the name Display_Infos(). - * Moved GetEquipot() global function to BOARD::FindNet(). - These changes are working towards a concise locate.cpp module, on the way - to implementing the multiple choice support. Mass edits should be slowing down - in a day or so. - - -2007-Aug-20 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ eeschema & pcbnew - The comments provided within postscript files now fully comply with Adobe's - Document Structuring Convention. - - -2007-aug-20 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ eeschema & pcbnew - modify hotkeys.cpp code (large modifications). - Added: common code in hotkeys_basic.cpp (in common) and hotkeys_basic.h (in include) - In the future, i hope hotkeys will be programmed by a config file - -+ pcbnew - filename drc_dialog.prj changed to dialog_drc.prj - (according to the fulename dialog_drc.cpp and dialog_drc.h created by dialogblock from the .prj) - - -2007-Aug-19 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ all - * Made BASE_SCREEN::m_CurrentItem private so we can force usage of the new - SetCurItem() function, and use it to put a breakpoint on the only place - that m_CurrentItem is changed, namely in the new SetCurItem() function. - ( Added new function GetCurItem() as well to class BASE_SCREEN in - drawpanel_wxstruct.h.) Using a stack trace at the breakpoint we can tell - who called it. There were in excess of 450 edits to get this done so I - had to commit it asap so other folks could get on with edits without a - merge conflict. - * Started work on the COLLECTOR class which will assist in giving a choice - in PCBNEW when there is more than one click candidate at the same mouse - or cursor coordinates. COLLECTOR not committed yet. - * More beautification. - * The mouse click and part synchronization from EESCHEMA to PCBNEW would - track fine but would not always position the PCBNEW part on screen. Now - we center it unconditionally. No change was made in the reverse direction - since that code uses the long established Find support. - - -2007-Aug-14 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ eeschema & pcbnew - * Added mouse click, TCP/IP socket based, part synchronization in the reverse - of how it was working, so a mouse click on a module in PCBNEW will take - EESCHEMA to the part with the same reference. - * More beautification, working with developer of uncrustify. Almost ready - to add the customized uncrustifiy configuration file to this project. - * Fixed a bug in pcbnew/tracepcb.cpp's WinEDA_PcbFrame::Trace_Pcb( wxDC* DC, int mode ) - which was using a bool for the MaskLay variable, causing through hole pads - on modules on copper layer not to be shown when the copper components were - set to invisible. - - -2007-aug-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ eeschema - modify hotkeys.cpp code. - - -2007-Aug-10 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew & common - Improved MODULE::FindPadOrModule(). - Ran more source files through auto-beautifier. - Renamed dupltrac.cpp to dupltrac.cpp.notused. - - -2007-aug-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ eeschema - better hotkeys.cpp code. - - -2007-Aug-09 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew & common - Released the new Visitor paradigm. Wrote MODULE::FindPadOrModule() using - it. - - -2007-aug-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ eeschema - Some new hotkeys (see hotkeys.cpp). - Now, the key ? display the current existing hotkeys - - -2007-Aug-08 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew & common - * Renamed locate.cpp's distance() to DistanceTest() and moved it to trigo.cpp. - Pass more parameters to DistanceTest and removed globals that were used by - distance() in locate.cpp. - Moved and renamed DistanceTest function proto from protos.h to trigo.h. - * Implemented HitTest() for class_cotation, class_mire, and a few other classes - by factoring out existing code from locate.cpp. locate.cpp should operate - exactly the same as before. - * Improved or implemented the Show() function for several classes. - * Detected that the suspected class_module hit-testing bug was not real, - i.e. no bug found. - - -2007-aug-08 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ eeschema - bug in class_hierarchy_sheet.cpp. - -+ pcbnew - small change in block commands: - rastnest was updated for each footprint, while moving footprints. - Now it is updated at the end of changes. - enhancements in block.cpp and connect.cpp - - -2007-Aug-07 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew & common - * More searching work. Made HitTest() virtual. Factored out a HitTest() - function for both class_module and class_pad from existing code. - * Embellished the Show() function for several of the classes. Could be the - basis of a possible future XML export, but with the native format being - ascii already, this is of questionable value as an export. - * Discovered a long time existing bug in class_module hit-testing. - Still need to understand it. It could just be an improperly formatted module. - - -2007-Aug-06 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew & common - Started sketching out a new search architecture. To learn more: - look for "INSPECTOR" text in base_struct.h. - - -2007-Aug-05 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew & common - * Added some conditional DEBUG code for showing the pcb object tree in - simple XML format. See class EDA_BaseStruct's new Show() function. - * Changed the function name of Locate( const wxPoint& ref_pos ) to bool HitTest(..) - in both class_text_mod and base_struct. - * More beautification and commenting. - - -2007-Aug-04 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - Read-ability formatting, I am playing with a C++ beautifier called "uncrustify". - I had to patch it and spent 2 days getting it configured. Patch not - sent upstream yet. - Fixed a bug in "display local ratsnest pad or module": if you had a small - module and the mouse clicked its reference text, the ratnest for - the associated module would not show. The work around was to add - support to Show_1_Ratsnest() so it could take a TYPETEXTEMODULE as - the result of the hit-testing. But I think a longer term better - solution will be to create a specific search function for this kind - of hit-testing, one which could disregard text and look only for - pads and modules. - - -2007-aug-02 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew - Drc test now generates a DRC file report. - - -2007-Jul-31 UPDATE Geoff Harland <gharlandau@yahoo.com.au> -================================================================================ -+ pcbnew - Drill Map and Drill Report files now list the diameters of each drill in - the selected drill unit first, and then in the other drill unit. - Drill report files also now list the tool assigned to each drill, and - the correct hole count and oval count for each drill size; the - file creation date and the selected drill unit are also listed. - - -2007-Jul-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew - Some file are added (missing .prj files) - Better Drc test: - Zones can be tested. - better pad to pad test. - - -2007-Jul-25 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ - ** Some minor enhancements -+ pcbnew - In Drc diags, better (more explicit) messages - Change (and simplify) code in 'update' as well as 'insert' modules into main PCB from within the module editor, - because it had a bug (crashes when there was no footprint in pcb) - - - -2007-June-21 UPDATE Tim Hanson <tim@hardcarve.com> -================================================================================ -+ pcbnew - 1. added button to 'update' as well as 'insert' modules into main PCB - from within the module editor. Made them functional, of course. - 2. added control-o, control-s & control-f to pcbnew, - though I'm not perfectly happy with the implementation -- wxwidgets puts - the control-characters in alphabetical order! - - -2007-June-25 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew - minor enhancement in Edit footprint dialog (more help tool tips). - better hotkey.cpp (code cleaning and info messages) - - -2007-June-19 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - After locking a module with 'L', update the status window with the locked - status. Side step some asserts from wxWidgets which were happening when - running compiled for debug. - - -2007-June-16 UPDATE Richard A Burton <richardaburton@gmail.com> -================================================================================ -+ pcbnew - fix debug assert starting pcbnew with wx2.6 -+ build - add install targets for resources and docs - - -2007-June-15 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ pcbnew - ** only modules on the present layer are subject to individual module - moves, rotations, or layer swaps, with the 'M', 'G', 'R' or 'S' hotkeys. - ** only unlocked modules are subject to the individual module moves, - rotations, or layer swaps, with the 'M', 'G', 'R' or 'S' hotkeys. - ** implemented the 'L' hotkey to quickly lock or unlock a module, - just by hovering over it and hitting the 'L' or 'l' key. The lock is - toggled. - ** Enhanced locate.cpp's Locate_Prefered_Module(BOARD * Pcb, int typeloc) - significantly, it now has a widely ranging behavior based on the - typeloc argument. - - -2007-June-14 UPDATE Igor Plyatov <plyatov@mail.ru> -================================================================================ -+ eeschema - Added sorting by value or position in to the annotation window - (Thanks for patch to Andrey Fedorushkov). - -2007-June-13 RELEASE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+All: - merging my development with svn version - -+ pcbnew: - bug fix (problem in postscript generation due to the internationalization - of floating point number notation ) - added tool to select layer pair and monitor active layer - -+ eeschema - bug fix: - crash libedit when loading certain components (linux only) - incomplete generation of erc file list - - -2007-June-13 UPDATE Richard A Burton <richardaburton@gmail.com> -================================================================================ -+ build: - dynamic linking by default, use make -f makefile.gtk KICAD_STATIC_LINK=1 - or uncomment the bit in libs.linux for static - - -2007-June-11 UPDATE Richard A Burton <richardaburton@gmail.com> -================================================================================ -+ build: - removed several 2 line scripts for configuring wx builds and put them in - how-to-build-kicad.txt - improved KICAD_STATIC_LINK handling so it can be overridden on the command - line e.g. "make -f makefile.gtk KICAD_STATIC_LINK=0" - - -2007-June-11 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+ Started this change log file. - - -2007-June-5 UPDATE Richard A Burton <richardaburton@gmail.com> -================================================================================ -+ pcbnew: - fixed 3d-display image export (blank box in image) -+ build: - fixed makefile clean targets so they don't fail if already clean - fixed wx2.6 compatibility - - -2007-May-25 RELEASE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+ pcbnew: - bug: problem with 3D shapes. -+ Gerbview: - Better (but crude...) support to export gerber files to pcbnew. - diff --git a/Documentation/changelogs/CHANGELOG-2008.txt b/Documentation/changelogs/CHANGELOG-2008.txt deleted file mode 100644 index 17bffde446..0000000000 --- a/Documentation/changelogs/CHANGELOG-2008.txt +++ /dev/null @@ -1,1561 +0,0 @@ -KiCad ChangeLog 2008 -==================== - -2008-Dec-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++Eeschema: - Note: this is a work in progress! - Files modification. - More about italic and bold fields in libraries - Use DLIST to handle fields in lib entries - Bugs and problems solved in fields edition (some are windows only). - - -2008-Dec-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++Eeschema: - Note: this is a work in progress! - Change dialog to edit fields in libedit. - Most of code created by Dick to edit fields in shematic is reused (this was the goal). - Component dialog properties -in libedit) is not modified, and fields can be also edited with it. - New dialog box is similar to the component dialog box used in schematic. - But all features do not work (work in progress!) - TODO (by me): - use vector to handle fields in libraries, like schematic. - Finish work, and test it. - -2008-Dec-29 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all - * gr_basic.h DOXYGEN comments. made a couple functions static and removed - those from gr_basic.h since they are private to gr_basic.c. changed the - polygon code to use wxPoints since that is what the underlying wxWidgets - API uses. -++gerbview - * More work on drawing polygons, erasure of polygons completed. - * Added full support for aperture macro 6, MOIRE. - * Example 2 in RS274xrevd_e.pdf almost draws properly now. Need ARC support - in polygons, and need polygon aperture type support to complete. - - -2008-Dec-28 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++Eeschema: - More about italic and bold texts options in fields and graphic texts - - -2008-Dec-22 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++Pcbnew: - Added dialog box to edit graphic items (graphic segments, circles, arcs) - properties - - -2008-Dec-22 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++All - Cleaning code to draw/plot texts: - Now only one function is used to draw and plot texts in pcbnew in all formats - Italics texts are allowed in pcbnew (work in progress) - -2008-Dec-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++All - Cleaning code to draw/plot texts (work in progress): - Now only one function is used to draw and plot texts (not for pcbnew) - (easier to maintain and ensure texts have the same size in ploting and drawing) - In eeschema, italic and bold texts allowed (in pcbenew, texts thickness is already adjustable) - - -2008-Dec-18 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++all - * Virtualize DrawFrame class methods required to eliminate compiling - drawframe.cpp multiple times depending on the application being built. - * Move zoom.cpp and drawframe.cpp to common library and update CMake files. - * drawpanel.cpp - Extracted mouse wheel events out of mouse event handler, - generate commands for mouse wheel events, and moved panning from DrawFrame - class into DrawPanel class. - * Initial ground work for new zoom implementation. - - -2008-Dec-15 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++gerbview - Implemented most of the "thermal" aperture macro, at least so that it - displays as concentric circles OK. Still need to do the cross hairs. - Fixed a bug loading aperture macros from disk, could crash gerbview. - Switched TRACKs to after polygons in tracepcb.cpp, temporary solution until - I have more time. - - -2008-Dec-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew - Display a short net name on vias and pads (if zoom level allows it). - Short net names are net names without hierarchy path - Add m_ShortNetname and change m_Netname to private in classes D_PAD and EQUIPOT - - -2008-Dec-08 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++all - * Remove all instances of application pointers both global and embedded - member variables. Use wxGetApp() for improved readability and type - safety. - - -2008-Dec-6 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew & gerbview - * As a final migration step, made BOARD_ITEM::SetNext() and - BOARD_ITEM::SetBack() _private_, starting at BOARD_ITEM in the class - hierarchy so that the compiler will tell us where they are used illegally. - Classes derived from BOARD_ITEM then also cannot expose SetNext() and - SetPrev(), and this forces everthing related to BOARD_ITEM through DLIST for - list manipulation. The compiler turned up a couple I had missed, two of which - were the back pointers of MODULE::m_Reference->Back(), m_Value->Back(), which I - do not think are needed since the MODULE owns these texts, not the other way around. - This should be the final nail in the coffin for undisciplined list manipulation - within pcbnew and gerbview. - * Converted BOARD::Delete() into BOARD::Remove() and then added an inline for - BOARD::Delete() which deletes what Remove() returns. - * Removed BOARD::DeleteMARKER( int ) since BOARD::Delete() works. - * Removed gerbview's undelete.cpp and made gerbview use pcbnew's, - by moving the two supporting functions into the common base class - of WinEDA_BasePcbFrame, had to add some "#if !defined(GERBVIEW)"s. - - -2008-Dec-5 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew & gerbview - * Renamed Struct3D_Master to S3D_MASTER. - * MODULE::m_3D_Drawings is now a DLIST<> - * Removed AddToChain(), DeleteStructList() and replaced with calls to DLIST<> - members so that list item counting stays accurate. - - -2008-Dec-05 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++all - * Simplified and improved grid implementation. User grid will no longer - be displayed if it is the same as any of the default grid sizes. - * Removed unused grid code in BASE_SCREEN class. - * Source file share/drawpanel.cpp now compiled into common library. - * Declare WinEDA_Appl so you can use wxGetApp() instead of passing app - pointers all over the place. - * Fixed assertion in debug build of 3D viewer. - * Some general code beautification and redundant header file removal in files - changed by the grid implementation. - - -2008-Dec-3 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew & gerbview - * added g_CurrentTrackList, and made g_CurrentTrackSegment and g_FirstTrackSegment - be #defines into this DLIST<TRACK>, see pcbnew.h. - * Changed to DLIST<> for almost all the list heads in BOARD. - Switched datatype of BOARD::m_Track, BOARD::m_Zone, etc to DLIST<>. - This simplifies BOARD::~BOARD() somewhat, and adds automatic counting of list elements and encapsulation - of all list operations into DHEAD member functions, see common/dlist.cpp. - * Removed TRACK::Insert() since it no long fits with the new BOARD::m_Track and BOARD::m_Zone datatypes. - * Removed the g_UnDeleteStack support from <any>::UnLink(), this may leave a deficiency, but this code needs - to be external to UnLink() anyway. - * Made TRACK::SetNext() and TRACK::SetBack() private so they may not be used, - the only way to put a TRACK on a list is through DLIST<TRACK>::PushFront() - and other member functions of DLIST<TRACK>. - * Switched to std::vector<TRACK*> in track.cpp to hold the temporary static list. - * Renamed some KICAD_Ts to more closely match the corresponding classname. -++gerbview - * Switched to GR_COPY mode for drawing so we can see the erasures. debugged - erasures in rs274d.cpp. - * Now using order specific TRACK loading, so erasures come after objects they - are intended to erase. Still need layer ordering and polygon ordering support, my todo. - - I do not like DeleteStructList() and plan to migrate away from it, DLIST<>:DeletAll() - does something like it. - - -======= -2008-Dec-03 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew - Switch to polygons in zones (old way no more supported) - areas can be now filled using solid polygons, or using segments to fill areas inside polygons. - results are same, but using segments can be better (faster redraw time) for polygons having a lot - of segments (more than 10000) - -2008-Dec-02 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++build fixes - * Changed wxWidgets library find order so monolithic build is no longer - required (at least on MinGW). - * Changed CreateSVNVersionHeader.cmake to fall back to "build_version.h" - when 'svn info' command fails. The default macro that ships with CMake - will not create build files when 'svn info' fails. - - -2008-Nov-25 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+eeschema - edit component in schematic editor. works pretty well, I'm done. - - -2008-Nov-24 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+eeschema - edit component in schematic editor. It is not complete but further. - Keep your old eeschema binary, this one does not fully work yet, another day or so. - Switched away from wxGrid to wxListCtrl, and that class is poorly documented - so much time pioneering how to use it. Should go faster now. - - -2008-Nov-23 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+all - + Made _protected_ EDA_BaseStruct's: - EDA_BaseStruct* Pnext; /* Linked list: Link (next struct) */ - EDA_BaseStruct* Pback; /* Linked list: Link (previous struct) */ - EDA_BaseStruct* m_Parent; /* Linked list: Link (parent struct) */ - EDA_BaseStruct* m_Son; /* Linked list: Link (son struct) */ - + Split TRACK::Draw() out for SEGVIA - + Added dlist.h & dlist.cpp for DLIST<> template. All the _inline_ list manipulation - code throughout the package is rediculous. I don't mind list traversal, only - list manipulation. DLIST<> templates can be used to consolidate reliable - list manipulation operations and get this code out of the mainline. - These functions are shared/inherited for any derivation, so only one copy exists - in the final program image. To use, simply declare e.g. DLIST<D_PAD> or similar. - See dlist.h, template class DLIST for function comments. - + added EDA_BaseStruct::m_List to assist in debugging list manipulation functions. -+eeschema - Started on the edit component in schematic editor. It is not complete and - breaks the usefulness of the editor at this moment. Do not build this version - if you want to fully use eeschema. - - -2008-Nov-22 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew - Some cleanup in dialog pad edition. - Added: - Zones now have a min thickness filled area parameter - that ensure a minimun width for filled copper areas - (areas below this min thickness are removed) - Shapes also are better - - -2008-Nov-19 UPDATE Jerry Jacobs <jerkejacobs@gmail.com> -================================================================================ -++kicad-library - Moved {number}DIP packages to DIP-{number}__{WIDTH} seperated library dip_sockets.mod - Created DIP Packages board -++kicad.pro template - Added dip_sockets library to pcbnew libraries in template file - - -2008-Nov-18 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew - First version of pcbnew using polygonal filled areas in zones in rats nets calculations. - Needs more tests. - - -2008-Nov-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -kbool: - Using the last version (1.9) of kbool, downloaded from the wxArt2D project site - (see www.wxart2d.org) - But the version 1.8 bug still is here. - So using the workaround remains mandatory. - (this is not a problem because thermal shapes are better...) - - - -2008-Nov-14 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+gerbiew - + Added support for displaying most aperture macros embedded in a RS274X compatible file. - Cleanup of rs274d.cpp and added the beginning of the isDark support, which we - need to discuss. GERBER::m_ImageNegative can toggle during the course of reading - a rs274x file and sometimes this means erasing things. - + Tested pcbnew's gerber plotting, still working. Done - with aperture macros for now, but we need to handle the isDark support to - top it off after discussion. - - -2008-Nov-8 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew - Thermal shapes modification for round and oblong pads. - This is a workaround for a bug (i believe) of kbool. - New thermal shapes have NO angle < 90 degrees between 2 adjacent segments. - For shapes that have angle < 90 degrees between 2 adjacent segments, - under certains circumstances kbool drops some holes and creates a bad filled area. - (see zones_convert_brd_items_to_polygons.cpp) - - -2008-Nov-8 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+gerview - Added support for reading in aperture macros embedded in a RS274X compatible file. - Cannot display them yet. - General cleanup of gerbview. GERBER_Descr replaced with class GERBER. - ReturnToolDescr() replaced with GERBER::GetDCODE(). - D_CODEs are created lazily now. pcbnew's gerber plotting needs testing, might - have broke something there, accidentally. - - -2008-nov-5 UPDATE Andrey Fedorushkov <andrf@mail.ru> -================================================================================ -+all: - Add cyrillic font support. - Add russian GOST worksheet support. - -2008-nov-2 CLEANUP Jerry Jacobs <jerkejacobs@gmail.com> -================================================================================ -++kicad: - Cleanup comment/codestyle to make things more clear for newbie codeviewer - and developers. - + buildmnu.cpp - + commandframe.cpp - + kicad.cpp - + treeprj_frame.cpp - - -2008-oct-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++All - Use double instead float when possible, ande code cleaning. - Some changes for a better code compatibility with others compliers (MSVC) - (__MSVC__ must be defined when using MSVC) - (double round(double) and typeof unkown in MSVC) - Note: I cannot test kicad under MSVC. - - -2008-Oct-19 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+eeschema - Fixed SCH_COMPONENT() copy constructor with Jean-Pierre's bug catch. - Developed a non-functional fbp file using wxFormBuilder for the new - dialog_edit_component_in_schematic dialog which I plan on coding in the - next couple of weeks as time permits. - -2008-oct-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Solved a bug when creating a new zone outline that could crash pcbnew - More about copper zones filled without grid (by polygons) - Currently for tests only (work in progress). - now working: Thermal reliefs parameters can be set. - -2008-oct-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - More about copper zones filled without grid (by polygons) - Currently for tests only (work in progress). - now working - thermal reliefs. - texts on copper zones. - Removing insulated copper islands. - currently : not implemented: - trapezoidal pads - -2008-oct-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - More about copper zones filled without grid (by polygons) - Currently for eyes and tests only (work in progress). - now working - thermal reliefs. - texts on copper zones. - To select this feature choose No Grid in zone grid filling. - Work in progress: - currently : not implemented: - Removing insulated copper islands. - trapezoidal pads - - -2008-Oct-6 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+eeschema - First work on arbitrary number of user fields, i.e. name/value pairs, - per schematic component. Use std::vector to hold fields, added GetField() - function to SCH_COMPONENT. - - -2008-oct-02 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - First tests about copper zones filled without grid (by polygons) - Currently for eyes and tests only. - To select this feature choose No Grid in zone grid filling. - Work in progress: - currently : not implemented: - thermal reliefs (pads are always covered by copper zones). - texts on copper zones. - Removing insulated copper islands. - -2008-Oct-1 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - gen_modules_placefile.cpp: backed out of the "Cu & Cmp" centric terminology - and moved towards using layer names which are BOARD specific. - - -2008-Sep-26 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - more about use polygons in zone fill algos on technicals layers: - plot Ok. holes are handled - -2008-Sep-26 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Starting work to use polygons in zone fill algos. - Currently, use this to add zone on non copper layers (technical layers) - Only for eyes. - Plot outputs do not handle this. - Problems with holes in zones. - Also: first used of wxFormBuilder - - -2008-Sep-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Fixed a bug in modedit which crashes pcbnew when closing the properties module dialog - Both in trunk and tagged versions - - -2008-Sep-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - code cleaning - PartTextStruct class name changed to a name : SCH_CMP_FIELD - -2008-Sep-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Fixed a problem in zone filling algo: due tu differents ways to truncate coordinates - between 2 functions (one round coordinates, and others truncate coordinates), - some start points used to fill zones can be inside the zone outlines, - but placed outside when init matrix parameters when rounding them instead of truncate. - So zone was filled inside and outside when happens. - - -2008-Sep-9 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+eeschema - Fixed a bug plotting pins with circles in them from eeschema. - Added type FILL_TYPE. - - -2008-Aug-26 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+all: - subtle bug solved: no response to the first left click command after opening a dialog box - (after an item edition, for instance) - -2008-Aug-22 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - bug solved: netlist calculations could crash eeschema under very rare circumstances. - recent bug solved: background filled shapes (filled but not solid: texts are readables inside shapes) - were drawn (and plotted) as filled (solid) shapes - -2008-Aug-18 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - bug solved: Horizontal Oblong pads holes have a bad T Code size in the drill file. - - -2008-Aug-15 UPDATE Jerry Jacobs <jerkejacobs@gmail.com> -================================================================================ -+About dialog -modified: (common.cpp) GetAboutBuildVersion() is a custom build version for the about dialog - (config.h.cmake) - (CreateSVNVersionHeader.cmake) KICAD_ABOUT_VERSION macro added - -added: (about_dialog.cpp) InitKiCadAbout() initalise the about dialog - -removed: (common/infospgm.cpp) is no longer needed - - -2008-Aug-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - libedit: - solved : a bug which can crash eeschema on a double click. - modified : pin lenght edit in pin edit dialog. The value (handle by spin control) was not editable with recent wxWidgets versions - -2008-Aug-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - bug solved: pads holes not printed. - enforced controls against malformed libraries - -2008-Aug-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Removed an obsolete option in the plot menu, in gerber format. - Cleanup code. - Solved a minor bug: rastnest was not displayed after a move module - and if the command was aborted - -2008-Juil-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - Added component sheet X,Y location in BOM. - Netlist generation: now spaces in names are replaced by '_' for pcbnew (which does not accept spaces) - Bug: print all pages did not work. - Please note in complex hierarchy, the current "Print All" function needs to be enhanced, - because it does not draw all sheets but only all different sheets - -2008-Jule-08 UPDATE Andrey Fedorushkov <andrf@mail.ru> -================================================================================ -+pcbnew: - Added displayed length highlighted net to pcbnew/affiche.cpp - - -2008-June-22 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+all: - Default path kicad/share added when searching kicad data (like library, internat ...) - Kicad data Default paths are now (windows version and linux server install) - 1 - kicad/share - 2 - kicad - - -2008-June-15 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - Bug solved: Eeschema crashed when creating a new subsheet with the same - filename as an existing filename, if loading this existing file. - - -2008-June-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+all: - Online doc format changed to PDF format. - This is **very** easier to handle, because : - - Openoffice has a very good pdf export function. - - Only one file for application - - Is standart (The old html format used a zipped archive, not standart) - - the doc tree is less complex (see doc/help/fr or doc/help/en for the new tree). - - If a localized doc file is not found, the english version is automatically loaded instead. - No need to copy the same pdf file in subdirectory. - - -2008-June-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+all: - minor changes - added void SetLocaleTo_C_standard(void) and void SetLocaleTo_Default(void) - This is wrapper to the C setlocale( LC_NUMERIC, "C" ) - and setlocale( LC_NUMERIC, "" )function, - but could make more easier an optional use of locale in kicad in floating point notations - - -2008-May-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew - removed GPC library due to its unacceptable (and stupid) license - using the powerfull kbool library insteed (see polygon/kbool) -+all: - minor changes - - -2008-May-22 UPDATE Martin Kajdas <kajdas@cox.com> -================================================================================ -+all - Moved all XPM files to <kicad>/bitmaps directory and fixed all related files -+PCBnew - Changed File/Export shortcut from 'x' to 'e' - - -2008-May-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - Solved: problem in manual part selection for multiple parts per package components - - -2008-May-17 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+all - Removed bitmaps.cpp. Made a static library target named "bitmaps" which - gets linked into any app needing bitmaps. Changed bitmaps.h to simply - include an alphabetized listing of the bitmap arrays. - We can now continue to migrate all remaining bitmaps into: - > the <base>/bitmaps directory - > the <base>/bitmaps/CMakeLists.txt file there - > the include/bitmaps.h file. - - -2008-May-16 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - Solved: bad update of toolbars (eeschema and libedit): - undo/redo buttons were not always updated after a change. - -+kicad - the project tree now (as earlier) reads subdirs list files when starting - kicad. This feature can be disabled (see treeprj_frame.cpp) - -2008-May-15 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - Solved netlist problems for multiple parts per package components - in complex hierarchies. - - - -2008-May-5 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+common.c - wrote wxString& operator << ( wxString&, const wxPoint& ) by moving code - from DRC_ITEM::ShowCoord() -+pcbnew - * embellished DRAWSEGMENT::MenuText() and DRAWSEGMENT::Display_Infos() - * wrote wxString BOARD_ITEM::ShowShape( Track_Shapes aShape ) - * wrote wxPoint DRAWSEGMENT::GetEnd() which calculates the end point of an arc - * wrote DRAWSEGMENT::GetLength() - * Added S_ARC support to the specctra_export.cpp for EDGES_PCB with DRAWSEGMENTS - of arcs. Arc and lines can be intermixed, its just that they must be - contiguous. The user can now use the improved DRAWSEGMENT::Display_Infos() to - find any bad or non-contiguous DRAWSEGMENTS, since that function now shows - the two endpoints of any segment. - - -2008-May-2 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -+cmake - * Use Subversion to automatically generate build date and revision level - when building with CMake. Header file build_version.h will still need - manual updates when using the hand written make files. - - -2008-May-4 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * Added DRAWSEGMENT::GetStart(), GetEnd() and support S_ARC and S_SEGMENT - with it for now. - * Added arc support to pcb perimeter of the specctra export. - - -2008-May-2 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * Added ZONE_CONTAINER::GetBoundingBox() and used it to clean up - ZONE_CONTAINER deletion. - * For end of edge dragging activity: used full DrawPanel->Refresh() - to clean up all XOR artifacts. - - -2008-May-1 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * Fixed bugs in layer name handling within the BOARD - - -2008-Apr-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - made in some dialogs the ESC key working (linux version, already working under windows) - screen number and screen count now are set - - -2008-Apr-29 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * Added WinEDA_PcbFrame::UpdateToolbarLayerInfo() by factoring it out of - ReCreateLayerBox(). - * Changed call in void WinEDA_PcbFrame::SetToolbars() from ReCreateLayerBox() - to UpdateToolbarLayerInfo(). - * Removed calls to SetToolbars() from: - > share/drawpanel.cpp's void WinEDA_DrawPanel::OnMouseEvent( wxMouseEvent& event ) - > void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse ) - - -2008-Apr-28 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * Layer names were not being set into the htoolbar listbox properly if the - BOARD was loaded via the command line as happens when kicad chain loads - pcbnew. Also, layer names were not being set if a second board was loaded - that had the same number of layers as the previous board. The solution was - to comment out the listbox rebuild test in WinEDAChoiceBox* - WinEDA_PcbFrame::ReCreateLayerBox( WinEDA_Toolbar* parent ) - * files.cpp: added Clear_Pcb( false ) to LoadOnePcbFile() and call it if - not appending. This way a user can get into the file selection dialog and - still abort (change his mind) without losing the current board. Removed calls to - Clear_Pcb() where LoadOnePcbFile() would now do that. - * edtxtmod.cpp: fixed the drawing relics when moving and rotating module texts. - - -2008-Apr-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew - PS output: now shows oblong holes with the true shape. - - -2008-Apr-22 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+eeschema - * Spent a 1/2 day tracking down two linked list bugs in deleting a - DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE. I cannot believe in the year - 2008 we should have to debug a linked list function. This is stuff I expected - to do 20 years ago, not today. The function - void WinEDA_SchematicFrame::DeleteSheetLabel( wxDC* DC, - Hierarchical_PIN_Sheet_Struct* SheetLabelToDel ) never worked as - far as I can tell. - Should switch to boost::ptr_vector ASAP everywhere, and leave linked lists in the 1980's. - * Hierarchical_PIN_Sheet_Struct::Hierarchical_PIN_Sheet_Struct() was not - setting the m_Parent. - - -2008-Apr-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - * Added WinEDA_LibeditFrame::GeneralControle( wxDC* DC, wxPoint Mouse ); - * Added WinEDA_ViewlibFrame::GeneralControle( wxDC* DC, wxPoint Mouse ); - Needed: Move redundant code to WinEDA_DrawFrame::GeneralControle - - ** Current sheet only Annotation and clear annotation now works for complex hierarchies - - -2008-Apr-17 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+all - * Made a little more sense out of the GetScreen() problem by making it - non-virtual, and having the two types of frame classes (eeschema's and pcbnew's) - each return their respective types of screens {SCH,PCB}_SCREEN*. - * Added GetBaseScreen() as the virtual function which always returns BASE_SCREEN*. - * Made WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint Mouse ){ dummy } - * Added WinEDA_SchematicFrame::GeneralControle( wxDC* DC, wxPoint Mouse ); - * Moved to void <class>::Place( WinEDA_SchematicFrame* frame, wxDC* DC ) from - void <class>::Place( WinEDA_DrawFrame* frame, wxDC* DC ) so that these - functions can use the new SCH_SCREEN* WinEDA_SchematicFrame::GetScreen() - function (the non-virtual one that returns SCH_SCREEN* not BASE_SCREEN*). - * Made some menus conformant to UIpolicies.txt regarding uppercase. - * Beautified 5-10 files. - - -2008-Apr-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - very small bug in display component info removed -+pcbnew -+cvpcb - removed bug: forgotten paths when adding lib files when not in the default lib path - (same problem as in eeschema, solved in 2008-Apr-09 Update) - - -2008-Apr-16 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - In complex hierarchies, multiples parts per packages now should work, - without restrictions - Update and use annotate_dialog.pjd to create annotate dialog - - -2008-Apr-15 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - More code cleaning and Files cleaning and reorganization. - change DrawSheetLabelStruct class name to a better name: Hierarchical_PIN_Sheet_Struct - For simple Hierarchies, files are now compatables with old eescheam versions - In complex hierarchies, multiples parts per packages have still problems, - but i hope to solve that soon - (in fact all the last changes were made for that) - - -2008-Apr-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - code cleaning. SCH_ITEM class used for all schematic items in eeschema. - Files reorganization. - - -2008-Apr-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - code cleaning. - - -2008-Apr-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - removed bug: forgotten paths when adding lib files when not in the default lib path - Also: adding SCH_COMPONENT.m_PartPerPackageSelections to handle multiple parts per package selection - in a complex hierarchy, but yet, no other code to do that. - - -2008-Mar-30 UPDATE Jonas Diemer <diemer-at-gmx.de> -================================================================================ -+eeschema -+pcbnew - Display a warning on a file format version mismatch. - -2008-Mar-31 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+all - Tweaked class MsgPanel so that the screen drawing only happens from - its OnPaint() function. -+pcbnew - Added virtual BOARD_ITEM::Draw() and forced all BOARD_ITEM derived classes - to implement it so that all these functions are also virtual. - Made the offset argument default to the new wxPoint BOARD_ITEM::ZeroOffset. - Coded DRAWSEGMENT::Draw() from Trace_DrawSegmentPcb() and removed the latter. - Coded EQUIPOT::Draw(), and BOARD::Draw(). Both are dummies for now, but - both can be reasonably implemented in the future. - - -2008-Mar-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - Solved: eeschema crashes when create a new sheet, using the default filename and enter it. - Solved: eeschema crashes when delete a sheet label (pin sheet), undo this and move the label. - (bad value (not updated) for the DrawSheetLabelStruct.m_Parent member after redo command in sheet edit). - -+all: - Added comments in gestfich.cpp to explain the default paths used by kicad to find help files and lib files - - -2008-Mar-30 UPDATE Jonas Diemer <diemer-at-gmx.de> -================================================================================ -+eeschema - Removed artifacts resulting from redraws in XOR-Mode. - -2008-Mar-24 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew - Ensure graphic and footprint texts have a sufficient size to be seen on screen. - (bug 1909165, due to text on edge layer with a 0 value for X size) - -2008-Mar-22 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew - Netlist dialog redesigned, netlist.cpp code modified - and added an option to remove not locked footprints - when not found in netlist - - -2008-Mar-21 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - pcbplot.cpp now saves the selected layers as wxConfig options, - i.e. retentitively. The ESC key now works in that dialog. - Make upper/lower case conformat to UIpolicies.txt - Put buttons at bottom, "Close" as bottom button. - - -2008-Mar-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - Removed an very old bug in onrightclick.cpp which crashes eeschema when - right clicking in a field inside a component. - Old code should never works, but ... - - -2008-Mar-20 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew - refined the dialog_freeroute_exchange - If possible (i.e. if freeroute.jnlp is found in kicad binary directory) javaws is called insteed of the default browser) - So @todo removed - -2008-Mar-19 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+eeschema - Renamed some classes and their corresponding KICAD_T types so they are both - simpler, shorter and more closely match each other: the type and the classname. - Wedged a class SCH_ITEM underneath most eeschema drawable items, and this - class came from DrawPartStruct which was largely disfunctional. Eeschema - now more closely matches what we have in pcbnew with the BOARD_ITEM base class. - The corresponding class in eeschema is now SCH_ITEM. Put in some of Jonas' - patch for the dragging of a block. Needs testing, especially dragging - text since there is no GetBoundingBox() for that yet. As an interrim solution - we could make SCH_ITEM::GetBoundingBox() return a HUGE rectangle so that any class - not implementing GetBoundingBox() in eeschema will get properly re-drawn, - in theory. - - We are currently using XORing for dragging a single object and using full - redraws for dragging a block. I suppose this can be an experiment for a - week or so. I would not expect that dragging a block of labels with no - other object to work currently (i.e. *visually* correctly). - - -2008-Mar-19 UPDATE Igor Plyatov <plyatov@mail.ru> -================================================================================ - * Support for Gnome/KDE menu added. - * install.txt rewritten and must be used as main source of information for - KiCad installation. - * how-to-build-kicad.txt deprecated. - * how-to-build-for-windows.txt deprecated. - - -2008-Mar-18 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - refined the dialog_freeroute_exchange.pjd file, adding tooltips, wording - changes, wxID_CANCEL so ESC key closes, and added this comment also: - // @todo: - // 1) add freeroute.jnlp to the Kicad project - // 2) change this next C++ line simply run $ "javaws freeroute.jnlp" as a system - // command, bypassing the browser altogether. Merely need a PATH to javaws. - - -2008-Mar-18 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew - MODULE::GetBoundingBox() takes in account the clearence around the pads - (the clearence limit shape around pads (when shown) was not always erased ) - - -2008-Mar-17 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * Fixed a crashing bug which occured when you run the module editor, select - "Update module in current board" and then run the DRC checker after that. - * Changed to void CreateSortedPadListByXCoord( BOARD* aBoard, std::vector<D_PAD*>* aVector ) - So caller can safely forget to delete the array of pad pointers and the vector's - destructor handles this automatically. - * Delete pad from within PCBNEW, not module editor, now uses PostDirtyRect() - - -2008-Mar-14 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+eeschema - * cleaned up some xor artifacts, see eeschema/getpart.cpp's comment: - // switch from normal mode to xor mode for the duration of the move, first - // by erasing fully any "normal drawing mode" primitives with the PostDirtyRect(), - // then by drawing the first time in xor mode so that subsequent xor - // drawing will fully erase this first copy and then the previous copy. - * redraw the entire screen at end of a component move. - * added many calls to Refresh() to eeschema/onleftclick.cpp and in such cases - I now pass a NULL DC to TestDanglingEnds() - - -2008-Mar-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ - some code cleaning and comment translations. - added: - /** EDA_Rect::Merge( EDA_Rect & aRect ) - * Modify Position and Size of this in order to contain the given rect - * mainly used to calculate bounding boxes - * @param aRect = given rect to merge with this - */ - - -2008-Mar-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew - Added a tool to the upper toolbar which gives and easy access to freeroute - Solved a bug in plot postscript format when drawing oblong pads: - Bad oblong pad size after drawing a round pad - - -2008-Mar-13 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew - Dirty rect used in footprint rotation, flip and delete. - Better calculation of the footprint dirty rect. - - -2008-Mar-13 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+all - Added bool EDA_Rect::Intersects(). -+eeschema - Added provisionary calls to eeschema/eeredraw.cpp for - if( panel->m_ClipBox.Intersects( item->GetBoundingBox() ) ) - - -2008-Mar-11 UPDATE Per Uddén <p.udden@telia.com> -================================================================================ -+3d-viewer - * Fix TODO: Add S_ARC and S_CIRCLE shape render to board edge and module edge. - Ex. Now is a board with arcs at corners showing correctly. - - -2008-Mar-10 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * Improved some comments on new functions dirty area functions - * Changed - void ConvertPcbUnitsToPixelsUnits( EDA_Rect& aRect ); to - void ConvertPcbUnitsToPixelsUnits( EDA_Rect* aRect ); - which I prefer because it is clearer to the human reader of the calling - context that the passed argument is to be modified. References as function - arguments are fine, but if they are to be modified, passing by pointer - gives human reader a clearer picture when looking at the calling context. - * TRACK::GetBoundingBox() now (1) rounds up the radius, and (2) returns a bounding - box which is [pos,dim) in nature, [inclusive, exclusive). - * Changed from "new wxDCClip()" to use an automatic wxDCClip() variable in - drawpanel.cpp - * Removed a printf() from "release" build of drawpanel.cpp - * Added WinEDA_DrawPanel::PostDirtyRect() - * Renamed Supprime_Une_Piste() to Remove_One_Track() and it now uses - PostDirtyRect(). - * void WinEDA_PcbFrame::Delete_net( wxDC* DC, TRACK* Track ) now redraws - the screen after a net deletion. - * eeschema/dialog_find.cpp: set the initial keyboard focus to the text control - - -2008-Mar-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew - Pcbnew can import footprints in gpcb format in Nelib format only - Pcbnew automatically recognizes pcbnew or gpcb format when importing a footprint. - Due to differences between pcbnew and gpcb, - only gpcb newlib files containing only one footprint (one element) are useables. - Dirty rectangle calculation debugged. - WinEDA_DrawPanel::ConvertPcbUnitsToPixelsUnits( EDA_Rect& aRect ) can be used to convert a bouding box to a clip box - (see example in deltrack.cpp) -+eeschema: - restored: missing lines in schedit.cpp (problems in a lot of commands) - - -2008-Mar-06 UPDATE Igor Plyatov <plyatov@mail.ru> -================================================================================ -+help - Eliminated bug "help files not found!". - - -2008-Mar-5 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew - Solved problem in fill zone calculations when using buried or blind vias (like micro vias) - - -2008-Feb-18 UPDATE Igor Plyatov <plyatov@mail.ru> -================================================================================ -+common - Path for the help files changed to doc/help. -+help - help moved to the doc/help. -+doc - Separated from KiCad source code to the trunk/kicad-doc. -+library -+modules - Separated from KiCad source code to the trunk/kicad-library. - - -2008-Mar-3 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * Completed transision to BOARD::GetLayerName() and away from ReturnPcbLayerName(). - LayerNames and LAYER_T are saved in the *.brd file and may be edited - there with a text editor until the UI is in place to edit them in PCBNEW. - To understand the strategy, see BOARD::GetLayerName() in class_board.cpp - and see WinEDA_BasePcbFrame::ReadSetup(). I will be adding "Board" menu - item to Preferences, but there is more to come before the UI gets done: - net classes. - * Clear_Pcb() now deletes the existing BOARD() and new's a new BOARD() so that - the default BOARD::m_Layer[] values can be set in the new BOARD's constructor. - - -2008-mars-03 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -3d display: - Added Jonas Diemer's patch (enhanced movings from mouse and tools) - - -2008-Mar-1 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - Changed ioascii.cpp to save and load board specific layer names, for DEBUG - build only. I want to add class LAYER, see below. Added - BOARD::SetLayerName(), BOARD::SetLayerType(), and BOARD::GetLayerType(). - Will add a UI for editing those soon as soon class LAYER is stable. The - BOARD::SetLayerXXXX( int layerNdx, VALUE ) functions would simply route to - LAYER::SetXXXX( VALUE ). Then layer specific global variables would migrate - to the BOARD::LAYER[]s. - - Jean-Pierre please have a look at pcbstruct.h's class LAYER which is just a - prototype for now. EDA_BoardDesignSettings::m_LayerColor would go away, - and then I would add LAYER[] to EDA_BoardDesignSettings or BOARD. - Whether EDA_BoardDesignSettings or BOARD I don't have a strong preference. - I understand this is a bunch of work, and there are tricks needed to handle - adding and deleting the number of layers.... - - -2008-Feb-29 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - controle.cpp: fixed the magnetic track if tracks are parallel. - - -2008-Feb-29 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - Renaming the sheet filename now works in simple and complex hierarchies. - Use carefully because this can change the whole schematic structure. - Gen Bom List now works in unicode build version - (label list generation crashed eeschema in unicode build version) -+all - Display filename and full sheet name ("sheet path") in sheet reference - the full sheet name has no meanning in pcbnew. - - -2008-Feb-28 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - Fixed: problem which could crash eeschema when a sub schematic file in a hierarchy was not found. - - -2008-Feb-27 UPDATE Wayne Stambaugh <stambaughw{at}verizon{dot}net> -================================================================================ -+ eeschema - * fixed escape key handling and add accelerate keys in annotate dialog. - * factored out eeschema frame class to prevent rebuild of entire project - when making changes to eeschema frames. - * refactor main eeschema event loop by factoring out most of the non-drawing - events. -+ cmake - * small fix to root CMakeList file to prevent GCC flags being used with - other compilers. - - -2008-Feb-26 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - changed in class DrawSheetStruct m_s member name to m_AssociatedScreen - some others minor problems solved. - some files "uncrustified" - Major problem in undo/redo when a sheet is deleted not yet solved - Only for a complex hierarchy, could lost data. - When a sheet is deleted by block delete. it is put in undo list. - It is really deleted after 10 changes (when the undo list is full). - At this time, the associated data is also deleted. - If another (not deleted) sheet shares the same data, this data is lost. - Need work to solve this problem and keep the undo/redo feature. - - -2008-Feb-25 UPDATE Wayne Stambaugh <stambaughw{at}verizon{dot}net> -================================================================================ -+eeschema - * converted annotate_dialog layout to Gnome HIG per UIPolicy.txt factor - out dialog code from annotate.cpp. - * refactor and uncrustify schframe.cpp and schedit.cpp - * modify eeschema CMakeList.txt to reflect code changes. - - -2008-Feb-22 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * specctra_export.cpp: added DSN 'outline' support from EDGE_MODULEs. - lines and circles, not arcs. - * factored out EDGE_MODULE::ShowShape() from EDGE_MODULE::Show(). - * drc.cpp changed AsSecondItem to HasSecondItem and test it in generating - the file report and when making the popup menu in the dialog_drc and - when generating the html list item. - - -2008-Feb-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - added : full text conversion between text, label, global label and hierarchical label - some problems fixed: - - annotation incorrectly cleared. - - reference not copied in component copy. - - incorrect redo when changing the chip name in component edition - - bugs not fixed: - - incorrect annotation in complex hierarchy with multi parts per package (duplicates created). - - -2008-Feb-20 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - Fixed bug in getpart.cpp: - eeschema crashed when aborting a new component place command - Global Symbols now have their shapes - Bad global label shape fixed when reading a schematic file - - -2008-Feb-20 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - specctra_export.cpp fixed the offset problem with freerouter.net. - http://tech.groups.yahoo.com/group/kicad-devel/message/1076 - - -2008-Feb-19 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - Add ZONE_CONTAINER support to the ID_PCB_HIGHLIGHT_BUTT tool and - WinEDA_PcbFrame::DrawHightLight(). Added TYPEZONE_CONTAINER to - GENERAL_COLLECTOR::AllButZones[] so that containers are editable even - when the "Show Zones" toggle is off. This came from using the software - and realizing that if something is visible (zone containers remain visible - even when Show Zones is off) then it should be selectable. Otherwise it is - confusing and frustrating. - - -2008-Feb-18 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * Start to use BOARD::GetLayerName() in anticipation of configurable layer - names per board. - * Comment out a printf() which will lock up pcbnew when - it is run under kicad project manager and the interprocess fifo gets filled. - * Cross probe was not showing the not found message properly. wxString was - being used for two purposes, input and Printf() destination. -+gerbview - Now loads all gerber files given on the command line, not just one. The - first file is loaded into layer 1 (index 0), the second one is loaded - into layer 2 (index 1) etc. - - -2008-Feb-18 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema - Fixed bug in gen bill of material (dialog_build_BOM.cpp): - eeschema crashed when created a B.O.M. (i think: unicode version only) - - -2008-Feb-18 UPDATE Igor Plyatov <plyatov@mail.ru> -================================================================================ -+eeschema - Added menu View with all possible elements from the top toolbar. - Find item added in to the Edit menu. -+all - Translated part of IDs to english. - - -2008-Feb-15 UPDATE Igor Plyatov <plyatov@mail.ru> -================================================================================ -+eeschema - Added item "Delete" in "Edit" menu. - Added menu "Place" with all possible elements from the right toolbar. - - -2008-Feb-13 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - specctra export: now generate unique pin names from module padnames in the - case where there are non-unique pad names within a module. Tested with - Electra demo, and *.dsn files load OK in there as well as in freerouter. - Stopped using reserved layer name "signal" and instead output a full - padstack consisting of all pertinent layers for via, pads, and keepouts. - - -2008-Feb-12 UPDATE Tim Hanson sideskate@gmail.com -================================================================================ -+eeschema - * commiting my changes to allow multiple instances of a given schematic file within a hierarchy: - ** internally, m_currentScreen has been replaced with m_currentSheet, - which is a list or 'path' of screens. The path of screens is used to generate - a series of timestamps, which is converted to flat component reference via a look-up - table in the schematic files. - ** this means that m_currentScreen is no longer used -- use GetScreen(). - ** GetScreen is virtual, as some of the dialogs keep around a WinEDA_BaseScreen pointer. - ** all sub-sheets in a given schematic must have different names to generate a meaningful netlist. - - -2008-Feb-12 UPDATE Igor Plyatov <plyatov@mail.ru> -================================================================================ -+eeschema - Added item "New" in "File" menu -+all - Russian translation update. - - -2008-Feb-11 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * Added case TYPETRACK, TYPEVIA, and TYPEMODULE support to Board::Add() so - that we can over time hide more of the storage architecture of a BOARD and - isolate those dependencies in fewer places. - * Fixed some pad orientation issues in specctra_export. - * Added VIA_MICROVIA & VIA_BLIND_BURIED support to SPECCTRA::makeVIA(). - * Commented out the specctra design import menu choice for now, don't have - time or need for this import. - * Specctra export adds 1/2 mil to clearance rules for freerouter so that - the routed board clears our DRC checker OK. - * Session import seems done now. - - -2008-Feb-7 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - added "const" to SEGVIA::GetDrillValue() const; - added GetDrillValue() to DRC instead of accessing SEGVIA::m_Drill directly. - changed specctra_export so it aborts if all reference designators are not - unique. Unless they are unique we cannot import the routed session. A - good example is the xylinx board which now fails to export. - first rough work on SEGVIA::makeVIA() but needs much more work. Simple - session files with vias at least import. Now encode drill diameter in - padstack name for later session import. - updated todo.txt file. - - -2008-Feb-7 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - specctra import of *.ses, did tracks and components. - renamed copy_track.cpp to copy_track.cpp.notused - removed copy_track.cpp from pcbnew/CMakeLists.txt - added setlocale() around import and export for float text style. - - -2008-Feb-6 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - started specctra imports of *.ses and *.dsn, by adding menus to File | Import. - - -2008-Feb-4 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - specctra_export.cpp now supports blind/buried/microvias. Fixed how modules - are displayed on back of board. Added a circle keepout for each copper-less - through hole. - - -2008-Feb-3 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew - * specctra_export.cpp was not exporting the nets correctly, now fixed. - * Had a problem with an isolated pad modification on a single module instance - in the context of several unmodified instances of same module, now fixed. - * Fixed oval pads to make freerouting.net happy. - See: http://www.freerouting.net/usren/viewtopic.php?f=3&t=317#p408 - Done with specctra export for now, will think about adding controls (by dialog) - on the export later. - * Beautification of a few modules. - - -2008-Jan-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - remove the old EDGEZONE class. - A ZONE_CONTAINER class is used instead to handle the creation of a new zone outline - - -2008-Jan-29 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew: - SPECCTRA export does most items now, except existing tracks. Soon will - need testing. - - -2008-Jan-28 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - - Better criteria to find starting poind in zone filling: the filling alg. uses - pads, vias and track ends to find where start the filling. - - Added a tool + option in popup menu in track mode (select track width): - when creating a track, if activated: if we starts on an existing track, - the new track takes the width of the existing track - - -2008-Jan-27 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+all: - I got a patch from Mr. Wayne Stambaugh which makes it possible to compile - infospgm.cpp once and link the same *.o file multiple times. - Jean-Pierre, if you not yet using CMake, you should edit your make.include - so that infospgm.cpp is only compiled once for everything, not once per - program. Wayne is a competent developer who contacted me about contributing. - I consider him a welcome addition to the developers, Dick. - - -2008-Jan-25 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew: - * SPECCTRA export does padstacks ok, except that oval pad's arcs need to be split - into quarter circle arcs, and no consideration is given to "layer types". - See page bottom of page 74 of the SECCTRA Design Language Reference, May 2000. - * HISTORY_NUMBER was spelt with a zero. - * Width was spelt as Widht - - -2008-Jan-25 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - - void Change_Side_Module( MODULE* Module, wxDC* DC ) is now member of class BOARD. - - - Better support for micro vias and buried vias (drill files now are useable for board manufacturers) - But not yet tested by a board manufacturer. Be carefull. - Todo: tools to conversion between via through and buried via and buried viad optimisation. - But must works for micro vias (needed for my next board) - (in pcbnew micro vias are blind vias between 2 adjacent layers: micro vias must be enabled - in Dimensions/track and via menu, and placed by ctrl v. - They are intended to connect small pitch BGA pins to the inner layer, and can be drilled by laser - if the hole diameter is small < 0.2mm. A laser can only drill a hole between 2 adjacent layers ). - - ** Currently use buried via for tests only, not for production **. - - -2008-Jan-24 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew: - * Export a specctra *.dsn file includes some padstacks, not ovals yet. - * Many many refinements to specctra.cpp and specctra.h. - * added COLLECTOR::BasePtr(), which is used in qsort. Could have used - * std::sort() instead. - * Wrote D_PAD::Compare() - * updated todo.txt - - -2008-Jan-24 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Bugs about fill zones removed (not all, of course). - Fixed an old bug in block delete (could crashes pcbnew after deleting footprints). - -2008-Jan-23 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew: - * Export a *.dsn file includes ZONE_CONTAINERs, was actually able to load - a board with zones into the freerouter.net package! No components, traces yet, - just zones and layers. Fixed parsers and Format()ers. - * Rewrote SPECCTRA_DB::readTIME() to dodge a missing strptime() on windows. - - -2008-Jan-23 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Plot option in GERBER format Plot (Exclude Edge Pcb layer) modification: - - the default is OFF (like odl pcbnew versions) - - this setup is now save in config (is persistant) - - In Zone creation, now delete last created corner works. - -2008-Jan-22 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew: - * Actually able now to export a *.dsn file, but the contents of the file - is incomplete, not a complete input BOARD. - * Added DRAWSEGMENT::Show() for debugging. - * Changed specctra.h's POINT to use double for coordinates. Changed format - string for Format()ing a double. - * Changed specctra_export.cpp to actually output an incomplete file. - * Added BOARD::GetCopperLayerCount() and BOARD::GetLayerName(). - - -2008-Jan-21 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew: - Added specctra_export.cpp, specctra.cpp, specctra.h, dsn.cpp, and dsn.h to - pcbnew's link requirements. Updated CMakeLists.txt to reflect this. This - increased pcbnew's size by 175kb so far. Started the actual export (i.e. - BOARD to DSN::PCB copying logic) which is going into specctra_export.cpp's - void WinEDA_PcbFrame::ExportToSPECCTRA( wxCommandEvent& event ) so that the - huge header file, specctra.h need only be included in one or two *.cpp - files. The specctra export menu support was added to id.h, wxPcbStruct.h, - menubarpcb.cpp, and pcbframe.cpp. After dsn export, I intend to add an - import, and a session file feedback merge. See the revised - how-to-build-kicad.txt for the new boost c++ libraries requirement. - - -2008-Jan-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - labels and texts display changed when rotated 180 degres: - horizontal text are now right justified insteed of 180 degree rotated, and are readable. - -+pcbnew: - bug 1874663 solved (edit a pad netname does not work very well) - -2008-Jan-20 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - On line DRC when creating a zone outline. - Needs more work to display errors DRC. - - -2008-Jan-18 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+all: - filtering small mouse moves ( < 5 pixels) when clicking. - Starting a wire or a track is now more easily because these small moves do not start a block commnad. - -+pcbnew: - rework of drill filles creation (excellon and reports) - needed to have a clean implantation of buried vias and mainly microvia - which involve a more complex drill files generation - This is better to continue work on zones because : - hight density boards = use of BGA = microvias + good zones handling - When a board has buried or blind vias (microvia are blind vias), - pcbnew creates a drill file per layer pair. for a 4 layer board: - drill file for layer1 to layer 2 - drill file for layer2 to layer 3 - drill file for layer3 to layer 4 - - -2008-Jan-18 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ - how-to-build-kicad.txt: added the Boost C++ Libraries installation info - and requirement. - - -2008-Jan-16 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Move Zone outlines added - Zone outline DRC works (needs improvements) - some bugs solved, but polyline.cpp still needs work. - gendrill: code cleaning. - -2008-Jan-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - code cleaning: - DRAWSEGMENT class functions moved in the new files class_drawsegment.cpp et .h - - -2008-Jan-12 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+eeschema: - missing footprints in export netlist (bug 1867321) - Affected: PadsPcb converter did not list all footprints - -+pcbnew: - fixed: memory not freeed in block copy (minor bug) - Support for micro vias (generation of drill files not finished) - -2008-jan-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Block commands now works with zones. - Some code cleanning. - - -2008-Jan-5 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -+pcbnew: - * Added pad_shapes.h and blended it into class_pad.h and PolyLine2Kicad.h. - Renamed the pad shapes in there to avoid namespace conflicts. - RECT became PAD_RECT, CIRCLE became PAD_CIRCLE, etc. - * common.cpp's ReturnPcbLayerName( int layer_number, bool omitSpacePadding ) - has commented out code that I tested as part of a possible new scheme to support - custom layer names per project. - * More specctra dsn import export work. - - -2008-jan-05 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - Added: Delete cutout outline in zone popup menu - the GUI about zones is now working. - Some work is needed ( a zone in a zone of the same net is not merged ) - Currently No DRC for outlines - - -2008-jan-04 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+pcbnew: - More about zones: - Outlines can be edited. Outlines are merged if needeed. - Currently No DRC for outlines - - -2008-jan-01 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -+all - wxstruct modified and wxPcbStuct.h added: - classes relatives to pcbnew, cvpcb and gerbview are moved in wxPcbStuct.h - diff --git a/Documentation/changelogs/CHANGELOG-2009.txt b/Documentation/changelogs/CHANGELOG-2009.txt deleted file mode 100644 index d58d79ff65..0000000000 --- a/Documentation/changelogs/CHANGELOG-2009.txt +++ /dev/null @@ -1,1013 +0,0 @@ -KiCad ChangeLog 2009 -==================== - - -2009-Dec-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - Added option to use some usual Gerber files extension, depending on the layer - Do not allow in plot menu to output files for non enabled layers. -++Kicad and Gerbview - Display Gerber files that use usual files extension (in tree project or dialog files) - (See http://en.wikipedia.org/wiki/Gerber_File) - -2009-Dec-20 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - Renamed dialog_layers_setup* files. - Got rid of the header file since there was only one file including it. - Auto-position the column titles based on flexgridsizer column widths. - Added m_TitlePanel with contrasting background color (whose color value may not - be ideal for all platforms). - - -2009-Dec-11 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - Finished the Layer Setup Dialog. I assumed that the new layer order will - be in place soon. It works fine now, but the layer order is probably - misleading, since it does not reflect the current stackup but rather the - future stackup. I dropped support for a single layer board. The minimum - is two copper layers. Avoid the side you don't want anything on. - - Within a month I should have the layer visibility and selection widget - in place. - - -2009-Dec-10 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all - * Factored out the DSNLEXER class so it can be re-used more generally. The - constructor takes a keyword table, so it can be used for arbitrary DSN - syntax files of your own chosing. Simply create an enum {} with all your - unique tokens in it. Then create a KEYWORD table. See SPECCTRA_DB::keywords[]. - The reason you want an enum is to give the C++ debugger better type information - so it can show symbolic integer symbols. - * Factored out common richio.cpp and richio.h - which is what DSNLEXER uses. - * Fixed some minor issues with reading circuit descriptor from a *.dsn file. - - -2009-Dec-6 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew & gerbview - * Moved ReturnLayerName() to static BOARD::GetDefaultLayerName() and migrated - to a Specctra DSN compatible default layer naming scheme: - Component becomes Front, Copper becomes Back. - * set_color.h: Cmp becomes Front, Cu becomes Back. - * D_PAD::DisplayInfo() changed to use actual copper layer names. - * more layer setup dialog work, moved all programmatic wxControl instantiation - into the wxFormbuilder environment, but this is fraught with danger: - wxFlexGridSizer used the tallest control to establish the row heights, so - be careful about changing control borders in the scroll panel. The vertical - size can explode since just a couple of pixels times the number of rows - is substantial. Currently I am setting a 5 pixel border only left, top, and right - but not bottom. - * Set copper layer count is back in place as a hack until I can get the enabled - layer bit map fully operational. - - -2009-Dec-3 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - Make the source file to the specctra freerouter help panel be html, not *.h - This makes it easier to preview the page in a browser. Then autogenerate - the *.h file from the html using a CMake script. - -2009-Dec-2 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -Compiler warning, object name, bug, and string fixes. -* Fixed EESchema options dialog focus bug so escape key now works in GTK. -* Rename schematic objects for improved readability. -* Fixed GCC compiler warnings in plot code. -* Added paragraph in UIpolicies.txt about setting dialog box sizes. -* Lots of message box string clean up. - -2009-Nov-05 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - control of masks clearance: Pad Editor Dialog rewritten to handle mask clearances - and a locad Net clearance - -2009-Nov-5 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all - CMakeLists.txt support for AUI. - - -2009-Nov-04 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - Added: control of masks clearance - - Solder mask clearance can be now defined at footprint and pad level - - Solder paste clearance can be now defined as a global value - and also at footprint and pad level. - The clearance is defined by a constant value and a value proportional to the pad size. - The final value is the sum of the 2 partial values - Note: this is a work in progress: - currently, the pad dialog is not finished and does not - have an option to enter the mask values - Planned: - option to define a net clearance at pad level and footprint level, - as an alternate value to the Netclasses values. - this option could be useful to create fiducials, and for very small footprints. - - -2009-Nov-1 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - * Added exporting of netclass vias to specctra_export. - * DIALOG_DESIGN_RULES now remembers its last selected TAB and screen position and - window size, and its grid columns are automatically expanded to fit the - column titles. Remembering screen position and size allows someone with - multiple monitors to have a given window always come up on the monitor last chosen - for it. - - -2009-oct-30 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -Replace library editor pin properties dialog box and minor update. -* Replaced library pin properties dialog with wxFormBuilder version. -* Remove DialogBlocks version of pin properties dialog. -* Add pin properties dialog support code to pin object. -* Create single event handler for displaying pin properties dialog. -* Remove left over DialogBlocks project file for annotate dialog. -* Fixed escape key bug in library editor new component dialog. -* Add GetUnitsLabel() to get human readable units for dialog labels. -* Translate French comments in all modified files. -* Some minor clean up of Doxygen comments. - -2009-oct-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - Rewrite the GUI relative to the tracks widths and vias diameters and drills selection - and edition, for compatibility with new netclass approach. - Now vias dimensions are defined by their diameter and drill values - (This is also a simpler an better way than the old one that considers - via diameters and drill values as independant parmeters) - When set a via to a "custom" value, the diameter and the drill values are set. - (of course one can use the drill defualt value of the netclass) - So the via hole edit options (in popup menu) does not exist no more. - The global tracks widths and vias diameters and drills changes are now - accessible by a specific dialog frame. - - -2009-oct-27 UPDATE Jerry Jacobs <xor.gate.engineering@gmail.com> -================================================================================ -++common - Doxygen output directory changed to Documentation/doxygen - Cleanup of HOTKEY IDs - Creation and cleanup of hotkey submenu - -++misc - Moved pcbcfg.cpp to pcbnew_config.cpp - Moved eeconfig.ccp to eeschema_config.cpp - Fixed typos - -2009-oct-23 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - Rework on print function: fixed the fully broken print function in Modedit - and better code. - Removed the display vias option tool in Modedit and Gerbview left toolbar, - because this option has no sense here. - -2009-oct-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - * Work on Net Classes: tracks and vias sizes, vias drill - come from netclass netclasses values. Global values removed. - * Added for DRC drill vias and microvias min drill value - -2009-oct-20 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -Replace component library editor draw item dialog box. -* Created new component library editor draw item dialog box with - wxFormBuilder. -* Removed previous DialogBlocks version of the draw item dialog box. -* Removed some additional global variables used in component library - editor. -* Add IsFillable() method to draw item base object. - -wxWidgets 2.9 string fixes and other minor updates. -* Replace all known instances of (const wxChar*) casts to GetChars() for - wxWidgets 2.9 compatibility. -* Cleaned up get component dialog so last part gets saved on wild card - selections. -* Remove redundant schematic component drawing code. -* Added SCH_COMPONENT constructor to create new component from library - component object. -* Add message panel helpers to WinEDA_DrawFrame and update old message - panel access code. -* Using library viewer to add component to schematic now respects unit - and body style selection. - -2009-oct-14 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -Fix save last grid size and other minor updates. -* Create single event handler for grid size events. -* Fix all frame windows to use new grid size event handler. -* Use offset relative to ID instead of ComboBox index to save last grid size. -* Move last grid size load/save setting into WinEDA_DrawFrame. -* Add equality and assignment operators the GRID_TYPE. -* Add current grid helper methods to BASE_SCREEN. -* Add GetPins helper to LIB_COMPONENT to replace GetNextPin where applicable. -* Add AppendMsgPanel helper to WinEDA_DrawFrame. -* Improve rounding for display of coordinates when millimeter units are selected. - -2009-oct-01 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -* Component library viewer restores state between uses. -* Fixed automatic zoom calculations in library viewer. -* Make library entry list dialog restore previous selection. -* Fix bounding box calculation for vertical field and text draw objects. -* Changed library draw object comparison to test for greater and less than. -* Initial preparation for merging separate library component draw item lists. - - -2009-sept-29 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -* Eliminate external direct manipulation of component draw item pointer. -* Add draw item remove, add, and locate methods to library component object. -* Remove redundant locate pin, field, and draw item code. -* Fix add new pin drawing bug that left initial pin draw in place. -* Improved best zoom calculations for small components. -* Library component bounding box calculation now includes fields. -* Removed unnecessary header file "libcmp.h". -* Fixed potential locate draw item bug in library editor hot key handler. - -2009-sept-27 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - * make pcbnew compatible with last changes - (Delete base screen in WinEDA_DrawFrame destructor to prevent potential memory leak.) - * Starting complementary work on Net Classes (moving target) - -2009-sept-25 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -Component library editor improvements and minor bug fixes. -* Component library objects renamed for improved readability. -* Fields now move when selected in library editor. -* Add copy constructor to all library draw and library component objects. -* Added copy constructor to EDA_BaseStruct. -* Delete base screen in WinEDA_DrawFrame destructor to prevent potential memory leak. -* Fixed memory access bug when replacing and adding a component to library. -* Moved library component block manipulation code into component object. -* Removed all of the global variables used by the library editor main window object. -* The usual code cleaning and refactoring. - -2009-sept-22: -Command ID refactoring and other minor improvements. -* Split out application specific command IDs to prevent unnecessary rebuilding. -* Eliminate duplicate menu and tool bar command IDs. -* Split component library editor and viewer definitions to separate header files. -* More component library and document file merge code. -* A bunch of minor string readability and consistency fixes. - -2009-sept-18: -Component library object and other minor improvements. -* Create static component library methods to manage library list. -* Rename component library, component, and alias objects to more readable name. -* Use pointer to component instead of root name to prevent redundant library searches. -* Add append message helper to message panel that calculates string length. -* Initial ground work for merging library and library document files. -* Improved component library file load error checking. -* Minor component library editor improvements. - - -2009-sept-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - Speed up ZONE_CONTAINER::Copy method - Speed up NETINFO_ITEM* BOARD::FindNet( const wxString& aNetname ) by using afast binary search - Switch to kbool V2.1. This version solves others problems in zones calculations. - Adding another way to generate thermal shape; DO NOT USE: this is for kbool tests only - (I am thinking some bugs are remaining, so i am always working on kbool tests. - Klaas Olwerda is supporting me) - - -2009-sept-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - moved copper layers properties (layers couns anf layers names) from Design rules - to a specific dialog. - This must be seen as a TEMPORARY work, until a volunteer creates a better dialog box, - because there is currently no other way to change copper layers names. - -2009-Sep-10 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - Finished initial NETCLASS work, along with UI. Put NETCLASS support - into DRC. Fixed DRC dialog so progress during DRC is sensible and visible. - The specctra_export probably still needs a little work regarding VIAs. - I compiled wxformbuilder from source, so you may need to upgrade to - load my *.fbp files. - - Jean-Pierre @ todo: pcbnew/zones_test_and_combine_areas.cpp needs to - use NETCLASS and not g_DesignSettings.m_TrackClearance - - -2009-sept-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - Work on undo/redo in pcbnew finished. - Switch to kbool V2.0. This version solves some problems in zones calculations but not all. - The Kbool's author, Klaas Holweda, is still working on these problems - Thanks to Klaas - - -2009-aug-23 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - Work on undo/redo in pcbnew almost finished. - -2009-Aug-16 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - * first of my work on NETCLASSes, more to come. - wrote: BOARD* BOARD_ITEM::GetBoard(), int BOARD_CONNECTED_ITEM::GetClearance( BOARD_CONNECTED_ITEM* ), - rewrote: classes NETCLASS, NETCLASSES, BOARD::SynchronizeNetsAndNetClasses(), - added: NETCLASS::m_ViaDrillSize, NETCLASS::m_Description. Removed netname from - EQUIPOTs in *.brd file (were redundant with NETCLASSes in *.brd file). NETCLASSes - now follow EQUIPOTs in *.brd file. - NETs and NETCLASSes are linked by pointer from class NET. - BOARD::SynchronizeNetsAndNetClasses() will validate pointers, NETs and NETCLASSes. - * Pay particular attention to the new: - int BOARD_CONNECTED_ITEM::GetClearance( BOARD_CONNECTED_ITEM* aItem ) const - which considers two netclasses and finds the largest distance from the two - involved. - * I would love to see class NETINFO_ITEM renamed to NET. - - -2009-Aug-6 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - MsgPanel is dynamically sized based on system gui font. Before this fix - the window height was hardcoded and was too small on systems with large - fonts. See WinEDA_MsgPanel::GetRequiredHeight(); - - -2009-aug-08 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - Work on undo/redo in pcbnew in progress. - SEG_ZONE is now deprecated. - When a zone is fille by segment, the ZONE_CONTAINER handles these segments - -2009-july-29 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - Starting work on undo/redo in pcbnew. - Currently, undo redo commands are only delete one item (and only for some items) - - -2009-july-25 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++all - Rework on undo/redo and block functions - Better and simpler coding of block and undo/redo functions - The goal is to have the same functions in eeschema and pcbnew. - and have a full undo/redo in pcbnew. - -2009-july-18 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - First work about net classes. This is a work in progress and a moving target. - Manual routing and DRC do not use yet this feature - - -2009-Jul-13 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - added support to specctra import for the <structure_out> descriptor. - <route_descriptor> had confused <structure_descriptor> with the <structure_out_descriptor> - The fix facillitates round tripping from the TOPO-R router. - - -2009-july-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Eeschema: - Enhanced netlist creation and ERC tests for component having multiple parts per package - Connecting power pins of all parts is no more needed. - Usually, these components have in schematic duplicated power pins. - Op amps having 4 parts have also 4 duplicated pins per power input, - and therefore the user must place 4 power symboles per physical power pin - Now Only one power is needed (now eeschema search for a connected pin - between duplicated power pins) - Note this is a work in progress because the ERC does not check if these duplicate - are connected to the *same* net. - -2009-july-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++All: - Use a common class for markers in pcbnew and eeschema: - created a basic class called MARKER_BASE - class DRC_ITEM is also common to pcbnew and eeschema - class MARKER (in pcbnew) and class MARKER_SCH (eeschema) are derived - from this basic class. - The main goal is to use a common class for pcbnew and eeschema to handle - errors and to have similar dialogs - and have more comprehensive ERC messages errors in eeschema - This is a work in progress - - - -2009-july-05 UPDATE Jerry Jacobs <jerkejacobs@gmail.com -================================================================================ -+ Closing bug 2802441, No single error messages any more, 2009-06-07 over2there. - Fixed this both in eeschema and cvpcb, for now printing wxstring in a - messagebox. Should make a nice textctrl dialog. -+ Added cvpcb directory to Doxyfile - -2009-june-19 UPDATE Jerry Jacobs <jerkejacobs@gmail.com> -================================================================================ -Added Hauptmech patch. -I Updated doc to match this patch. - -++Pcbnew: -> * Board thickness in the 3D view can be set in *.pcb files (hand edit) -> * Hotkey files bug: incorrect file extension as default in some open/save dialogs. -> * Hotkeys made available for pcbnew [add track] and [add module] tools. -> * Drag and Move hotkeys extended to drag tracks and move nodes/vias when the [add track] tool is active. -> * Show/Hide Invisible Text button added to lefthand menu -> * Dropdown list of clearance history available next to trackwidth history. - - -2009-june-18 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew: - Added: in DRC tests: tests for vias min size and tracks min width. - Added: Option to show the via area while creating a new track. - Useful in compact designs to know how to place a via during track creation. - -2009-june-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Eeschema: - Added text justification for graphic texts in libedit - Minor bug 2803506 fixed (error when mirroring bus entries) - Some code cleaning. - Better locating algo for arcs in libedit - -2009-may-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Eeschema: - Changes about thickness of lines in draw/plot functions. - Now there is only one thickness parameter for plot and print. - This is now the default thickness value, - used for items that have a line thickness = 0, - and NOT the minimum thickness. - reasons: - - Obviously, differents parameters to draw and plot are bad. - (what you plot is NOT what you see) - - small texts are not readable with an minimum thickness value - that could be good for others items. - - -2009-may-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++All: - Cleaned and optimized code about new hershey fonts and bold texts handling. - Bold texts use now the same font as normal texts. - Only the pen size used to draw them is bigger. - - The max pen size allowed depending on texts sizes is now tested - when loading boards and modules, and clamped if too large. - - - -2009-may-28 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew: - Finished code cleaning about ratsnets calculations and handling - Obscure code removed ( I hope) - Better names for some members of BOARD class. - -2009-may-24 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew: - clean code in ratsnet calculations (work in progress) - The old code was very difficukt to understand, and was sometime very ugly. - Mainly, the list of nets (RATSNEST_ITEM class, formerly EQUIPOT class) - are now handled in a std::vector, and not a linked list. - This is better, because nets identifiers for pads and tracks are a number called netcode. - now, this is the index of the given net in this list, and the code to find a net given by its netcode - is very fast. - - -2009-may-12 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++All: - Rework on TEXTE_PCB, SCH_TEXT and EDA_TextStruct classes. - Code seriously cleaned, obscure and duplicated code removed, - and some oddities removed ( like different .m_Orient values in eeschema and - pcbnew, for the same text orientation ) - Multiline texts (in comments and Pcb texts) are now supported. - In pcbnew text justifications could work (but not yet used and tested) - - -2009-may-01 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew: - Better dialog options for zones on technical layers. - Zones on silk screen filled with segments are now plotted - Better support of multiline texts (work in progress) - -2009-apr-25 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++ Eeschema: - When annotating: tests and repairs bad (duplicated) time stamps. - Can be found in old schematics or converted from others tools ... - -2009-apr-24 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew: - Fixed: fully broken netlist import from eeschema when using time stamp. - (normal operation worked fine) - Added: alawys print diags in dialog window when reading a netlist - -2009-apr-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++ALL: - Code clarification: There were 3 functions to display info: - - DisplayInfo (displaying a message info) - - class members DisplayInfo and Display_Infos doing the same thing - (and sometimes these 2 functions were existing in some classes) - This was *very* confusing and created minor bugs - (info in eeschema was not always displayed, because the "bad" function was used) - Now DisplayInfo is renamed DisplayInfoMessage - Ann class member DisplayInfo is used in all classes ( replaces all Display_Infos instances) - -2009-apr-12 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++eeschema: - Default libraries path are now differents for pcbnew and eeschema (as it do) - Fixed: bad library search path for schematic component docs (docs were not found) - Added: display actual lib paths in eeschema lib config dialog. - - These next fix give the same behavior than "old" version - Use relative paths in libraries and doc filenames when possible - i.e when a file is found in a sub path in a default path - (very important for Windows/linux/mac compatibility of projects and their configs) - - TODO: allows user to add paths in list. Currently the user path for lib is broken - (but the new code could allow the user to add more than one user path) - - TODO: do the same for pcbnew and cvpcb - -2009-apr-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++eeschema: - - Viewlib: listboxes for lib or component selection are now resizable - - library cache name changed from <root_name>.cache.lib to <root_name>-cache.lib - Needed by the new code using wxFileName. - When wxFileName calculate the filename, it returns <root_name>, - and the old code returns <root_name>.cache - So to avoid problems or ugly code, the lib cache name is now <root_name>-cache - Old cache is used if the lib cache with the new name is not found. - - -2009-apr-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew: - fixed: bug 2738052 (Delete tool does not delete zones outlines) -++eeschema: - fixed: void history file list in menu -++All: - made GetAssociatedDocument() compatible with last changes in kicad path handling. - Get PDF doc associated with a component now works - Some work still needed. - -2009-apr-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++common: - overbar patch merged in drawtxt.cpp and mainly in eechema/class_pin.cpp - some cleanup and some compiling problems fixed. - -++eeschema: - changed dialog_eeschema_config.cpp to use wxFormBuilder to create - the corresponding equivalent dialog in dialog_eeschema_config_fbp.cpp - -2009-apr-05 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++All - * Removed all instances #ifdef eda_global, COMMON_GLOBL, and MAIN in order - to unobfuscate global variables. - * Moved global variables common to all applications into common.cpp. - * Moved global variables common to Pcbnew, Gerbview, and Cvpcb into - pcbcommon.cpp. - * Create pcbcommon library to prevent compiling shared PCB drawing object - files multiple times. - * Replaced round() with wxRound and eliminate MSVC specific implementation. - * Moved project configuration files into the application class. - * Moved editor name global variable into the application class. - * Created load and save settings methods for basic frame class and begin - putting global variables in the class where they are used. - * Start replacing obsolete wxWidgets file functions and redundant Kicad - file name manipulation code with wxFileName. - * Initial library search path implementation using wxPathList. - * Define correct wxFileDialog wild cards. - * Apply patch Fix typo in about box to keep MAC folks happy. - * Lots of general code clean up, spelling error fixes, and uncrustification. - * Renamed Affiche_Status_Box to UpdateStatusBar. -++EESchema - * Defined Load() method so library file drawing objects can load themselves. - * Defined GetBoundingBox() method so library file drawing objects can - calculate their own bounding box. - * Fix arc library drawing object bounding box calculation. - * Remember last import and export library path in library editor. - * Add new library search path support. -++Kicad - * Eliminate the one giant case statement to rule them all command event - handler and create per command event handlers. -++CvPcb - * Add new library search path support. - * Add message dialogs to prompt user of library file load errors instead of - failing silently. - * Fix NULL pointer bug were display frame would crash CvPcb when - WinEDA_DisplayFrame::Get_Module() could not find foot print module. -++PcbNew - * Add new library search path support. - * Add message dialogs to prompt user of library file load errors instead of - failing silently. - - -2009-mar-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew: - added BOM generator (in postprocess menu) - - -2009-mar-28 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++All - code cleanup in project_config.cpp. - Now parameters common to all projects are saved on exit. - (they are usally options like colors, draw options ...) - -++pcbnew: - added option to show or not netnames on pads and tracks - - -2009-mar-23 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew: - in DRC: added test pads to holes. -++Al: - minor changes. - - -2009-mar-16 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew: - Fixed: - bug that crashes pcbnew when removing all footprints - (in connection calculations, pointers to pads not reset) - - bug that crashes pcbnew when filling a zone - if a module has a trapezoidal pad - (trapezoidal pads are not yet implemented in zone filling, - they are now calculated as rect shape (todo: a better handling) ) - - -2009-mar-12 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++eeschema: - Added: option to print ALL users fields in B.O.M., - so if more than 8 fields, they are printed. (issue 2680640) - -++pcbnew: - Added 5 metric grids (1mm, 0.5mm 0.25mm 0.2mm and 0.1mm) in default grid list. - Minor bug in drill map creation (PS format) fixed - -2009-mar-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew: - fixed: a bug that can delete an existing zone after creating a new zone, - if the new zone contains this existing zone - This is a DRC error, buf can be temporary possible when creating complex zones - -2009-mar-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew: -++gerbview: - print,plot: error message displayed when no layer selected. - - -2009-Mar-5 UPDATE Vesa Solonen <vesa.solonen@hut.fi> -================================================================================ -++pcbnew: - bug fix in zones_convert_brd_items_to_polygons.cpp: - Fixes "thermal stub bleed" in zone fill. Small (compared to thermal width) pads are handled properly now. - - -2009-mar-05 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew: - bug fix in move_or_drag_track.cpp: - function SortTrackEndPoints() broken: does not handle pointers to pads for start and end and flags relative to these pointers - MergeCollinearTracks( ) broken, because it merge segments having different width or without any connectivity test. - 2 collinear segments can be merged only in no other segment or vais is connected to the common point - and if they have the same width. See cleanup.cpp for merge functions - These functions break the connectivity calculations. - So they are temporary disabled (see my comments in these functions) - bug fix in Marque_Une_Piste(): the last segments created can be see as part of the flagged track: - so delete track (or edit track width) deletes the track and some others segments (last created) - bug fix 2660689 Unconnected pads in RC4. Also fixed some no deletion of the old track when creating a new track - - -2009-Feb-25 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++EESchema - * Fixed hot key bug that caused undo and redo events in the library editor - to be passed to the schematic frame. Fixes bug #1896790. - * Fixed hot key bug that allowed new wire to be placed during block move - causing a manage cursor message box to pop up. - * Fixed hot key bug that allows an object in block to be deleted during - a move or drag operation. - - -2009-Feb-25 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - * Markers were not shown when on top of a high-lighted pad. Moved highlight - drawing function into class BOARD and out of Frame. Call BOARD::DrawHighLight() from - within BOARD::Draw() to fix. - * Gerbers were not generated if you had EDGE_MODULEs on a copper layer, such as in - a MuWaveBasicShape. The line thickness was not being put into the gerber via a DCODE. - These gerber files were bad, and geda gerbv would also complain. - * A few window titles were not conformant with UIpolicies.txt. - * You could not load a *.pro file from another project into PCBNEW if your current - project had none. Changed wildcard mask. - * Deleted gen_self.h and moved that code into muonde.cpp - - -2009-Feb-24 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - * dialog boxes calling OnInitDialog are flashing because these functions - change the size of controls that are already on screen. This leads to - an annoying resize operation. So I renamed OnInitDialog(event) to - void init() and call it from the constructors. Did this for - dialog_general_options.cpp and dialog_display_options. - * dialog_general_options was not setting g_MagneticPadOption and g_MagneticTrackOption - - -2009-Feb-24 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew: - bug fix: - 2628615 Error message after right click into zone - 2625434 Crash after trying to edit a line/drawing -++cvpcb - fix: 2625090 CVpcb - language selection - - -2009-Feb-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++gr_basic.cpp - Added: Function ClipAndDrawFilledPoly() - Used to clip a polygon and display it as Filled Polygon - uses the Sutherland and Hodgman algo to clip the given poly against a rectangle. - This rectangle is the drawing area - this is useful under Linux (2009) because filled polygons are incorrectly drawn - if they have too large coordinates (seems due to integer overflows in calculations) - Could be removed in some years, if become unnecessary. - - -2009-Feb-17 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - Loading a module into the module editor was changing the layer count - of a loaded board. This is because void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) - calls bool WinEDA_BasePcbFrame::Clear_Pcb( bool query ) - which then sets the global g_DesignSettings.m_CopperLayerCount = 2; - This is terrible. - We need a layer count in each board, not as a global. For now, comment out the assignment in initpcb.cpp. - - -2009-Feb-17 Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew: - Dialog track options redesigned with wxFormBuilder - Alt via drill renamed Specific via drill in dialog and popup menu. - Added tips in dialog. - - -2009-Feb-09 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++eeschema - Changed dialog_edit_label so that it is UIpolicies.txt compliant. Proper case - on window titles, resizeable dialog border, minimum text width handling. - - -2009-Feb-7 Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++All: - change grid size type from integer to double (using wxRealPoint insteed of wxSize) - This is mandatory in Pcbnew to handle metric user grids without error - (was unusable before, using integer grid size). - A lot of footprints uses not metric grid. - refinements for user grid (mainly in read/write config). - - -2009-Feb-06 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - added "cutout" from a ZONE_CONTAINER capability to the SPECCTRA export. - added "netless zone" support to SPECCTRA export. - - -2009-Feb-6 Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ - Added a forgotten contributor (Tim Hanson) to kicad contributor list. - -++pcbnew: - Zoom factors in 1.5 progression, and limited to 18 values - (near to to Wayne Stambaugh's changes: 15 values are not enought for pcbnew) - removed minor problems in zoom box selection (removed blank line). - Added user grid selection in modedit and refinements when user grid is selected. - - -++eeschema: - Zoom factors in 1.5 progression, and limited to 15 values according to Wayne Stambaugh's changes. - -2009-Feb-05 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++All - * Change CMakeList.txt so that all PCB object classes that do not need built - separately for pcbnew, gerbview, and cvpcb only get built once and added - to the common library. - * Override all classes derived from WinEDA_BasePcbFrame so that the source - code file basepcbframe.cpp only gets compiled once and added to the common - library. - * Prevent cursor movement keys from moving outside of client area by - automatically scrolling the drawing. - - -2009-Feb-4 UPDATE Vesa Solonen <vesa.solonen@hut.fi> -================================================================================ -++pcbnew: -++eeschema: - Zoom factors in 3th root series of 2. So two intermediates between half/double scale. - -2009-Feb-04 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++All - * Refactor header files to reduce the number of files that need recompiled - when making changes to base classes. - * Move sine and cosine look up tables from trigo.h to trigo.cpp to avoid - multiple recompiles. - - -2009-feb-01 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++All: - change filename drawpanel_wxstruct.h to class_drawpanel.h - and move class BASE_SCREEN description from drawpanel_wxstruct.h to a new file: class_base_screen.h - minor enhancement for window zoom command. - refinements in 3D zones drawing. - -2009-jan-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++All: - Print functions and display zoom level modified to use the new zoom implementation - Comments added in some functions. - Code cleaning - some bugs fixed. - Added contributors to list in about Kicad. - -2009-Jan-29 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++All - * Replace zoom implementation with a more flexible ( and hopefully useful ) - design. - * Removed gr_basic.h from fctsys.h so that the entire project doesn't get - rebuilt unnecessarily. - - -2009-Jan-29 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all - common.c added EnsureTextCtrlWidth() -++eeschema - * dialog edit component in schematic: make sure chipname text control is wide - enough to handle unusually long chip names. - * Retain and re-use user's desired dialog edit component window size. - Did not have time to look at dialog edit component in library. - - -2009-Jan-27 UPDATE Vesa Solonen <vesa.solonen@hut.fi> -================================================================================ -++pcbnew: - Zone arc approximation starts with half increment offset from v/h for pads and vias - to get more fill space between rows. - -2009-Jan-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++pcbnew: - Found why remove unused thermal stubs fails sometimes: - Only the first filled area in a zone was tested. - Solved. - -2009-Jan-18 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++All - * Replace Kicad file history implementation with wxFileHistory. - * Laid groundwork for search paths using wxPathList in EDA_Appl. - * Made ReCreateMenuBar actually recreate the menu bar. Now language updates - to menus can be changed without restarting program. - * Lots of general housekeeping, simplification, and code beautifying. -++EESchema - * Fix zoom and pan bug in library viewer panel due to incorrect DrawPanel - rectangle. - * Add zoom accelerator keys to library viewer (works in GTK, not Windows). - * Add Postscript header to new print dialog so Linux build works. -++PcbNew - * Add Postscript header to new print dialog so Linux build works. - - -2009-Jan-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++All: - Cleaned code in print dialogs. - They are now specific to eeschema and pcbnew. - Gerbview uses pcbnew dialog. - The code is now a lot more easy to understand. - - -2009-Jan-15 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++Pcbnew: - Added: patch from Rok Markovic (rok@kanardia.eu) to remove unused stubs in thermal pads - Modified: print boards when printing in color mode layers on one sheet: - now printed in OR mode like drawings on screen - Also in SVG mode, but OR mode seems not work very well in SVG mode (tested with inkscape). - - - -2009-Jan-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++Pcbnew: - Added: print SVG format. - SVG print/plot function uses WRITE modeinsteed of OR mode as graphic mode. - todo ? uses OR graphic mode with black background color (wait and see) -++eeschema: - Code cleanup for Print SVG format, and used wxFormBuilder in SVG print dialog - - -2009-Jan-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++Pcbnew: - Calculations to create filled areas in a zone modified and uses 2 pass: - 1 - filled areas are calculated with pads in zone. - 2 - If thermal shapes are wanted, they are added (i.e. copper removed after ). - Seen comments in zones_convert_brd_items_to_polygons.cpp - The initial method was calculate filled areas in one pass. - With the 2 pass calculation, the calculation time is more expensive but: - - Kbool seems now works correctly in cases where the one pass way does not work - - Thermal reliefs can have a better shape (todo..) because when calculating them, the filled - areas are known (this was not the case in one pass way) - - -2009-Jan-08 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++Eeschema: - Print and plot functions now properly prints all sheets in a complex hierarchy - plot files created have now a new filename in order to be compatible with complex hierarchies - - -2009-Jan-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++Eeschema: - Print function now properly prints all sheets in a complex hierarchy - Note: plot functions are not updated and do not plot all sheets. - - -2009-Jan-07 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++all - * Don't pan or zoom on mouse wheel events when the cursor is not in the - drawing area. - * Reduce all zoom code to a single zoom command handler. - * Eliminate redundant zoom command identifiers. - * Move pop up zoom command handler from DrawPanel to DrawFrame. - * Change hot key zoom handlers to use command events. - * Added DrawFrame event table to replace COMMON_EVENTS_DRAWFRAME macro. - * Added locale path relative to binary path for development purposes. - * Minor code clean ups and duplicate header removal in files that were - updated. - - -2009-Jan-04 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all - wxPcbStruct.h: made m_Pcb private, added GetBoard(). Am considering - putting each gerber layer into its own BOARD. - - -2009-Jan-02 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> -================================================================================ -++Eeschema: - Code cleaning. - LibDrawPolyline uses now std::vector<wxPoint> to handle corners. - DrawPolylineStruct uses now std::vector<wxPoint> to handle corners. - diff --git a/Documentation/changelogs/CHANGELOG-2010.txt b/Documentation/changelogs/CHANGELOG-2010.txt deleted file mode 100644 index 40f5d1bc27..0000000000 --- a/Documentation/changelogs/CHANGELOG-2010.txt +++ /dev/null @@ -1,1010 +0,0 @@ -KiCad ChangeLog 2010 -==================== - -2010-dec-31 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++all - * Exclude boost header include path from Doxygen files. - * Coding guide line and doxygen warning fixes. -++EESchema - * Rename OBJ_CMP_TO_LIST to SCH_REFERENCE. - * Move code related to SCH_REFERENCE into the object where it belongs in hope - that some day the object members can be made private instead of public. - * Add GetComponent method to sheet path and sheet path list objects. - * Move screen list code into screen list object. - - -2010-Dec-28 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++richio: - * Deleted kicad_exceptions, because it required the big #include <wx/wx.h> and - that was slowing down compiling. Moved that stuff back into richio.h where - it came from. - * Enhanced IO_ERROR to format an errorText. - * Added THROW_IO_ERROR() and THROW_PARSE_ERROR() macros to capture the - the call site of the thrower. If you have problems compiling, it is probably - due to the definition of __LOC__ in richio.h. Some compilers may not support - __func__ in C++ yet. Find a macro that identifies your compiler, and we can - work out something in the #define of __LOC__. - -2010-Dec-28 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++new: - Completed most of /new class LIB_TABLE. - Completed all of /new class LPID. -++common: - Tricked xnode.h into not issuing deprecation warnings. -++richio: - * Added support of DSNLEXER( LINE_READER* ) to TokenList2DsnLexer.cmake, which - allows the chaining of different grammars on top of a common LINE_READER. - * Changed OUTPUT_FORMATTER::Quoted() to return a std::string and not modify - its input parameter. - - -2010-dec-21 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++all - * Doxygen comment warning fixes. - * Coding policy fixes. -++common - * Add clone method to EDA_ITEM object. -++EESchema - * Replace GenCopy() method with Clone() in all items derived from SCH_ITEM. - * Simplify repeat last schematic item with new Clone() method. - * Simplify duplicate schematic item method with new Clone() method. - * Separate objects in sch_items.h/cpp into separate files per object. - - -2010-dec-20, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -common: - Rename EDA_Rect::Inside to EDA_Rect::Contains - ( EDA_Rect::Inside( const EDA_Rect& aRect ) was very ambiguous ) - Fix some Doxygen warnings and erroneous comments - - -2010-Dec-19 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++new: - Completed a good portion of /new class DIR_LIB_SOURCE. - Added an autonomous CMakeLists.txt file to /new, with new-docs target and - test program target. - -2010-dec-15, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -Gerbview: - Added: in file dialog, multiple file selection. - Added: Draw mode selector (in left toolbar): - Raw mode: - a Gerber image is drawn on screen without buffering. - Artifacts happen if there are negative items drawn, if more than one - Gerber file is shown. - Stacked mode: - each Geber image is drawn in a buffer and after drawn on screen - No artifact with negative items. - Each Gerber image covers previous images. - OR mode (transparency mode): - each Geber image is drawn in a buffer and after drawn on screen - No artifact with negative items. - Each Gerber image is "ORed" with previous images, like in Pcbnew. - Try to optimize Draw function in buffered modes. - (Useful for PC that have problems with "blit" graphic function) - Fix minor issues. - -2010-dec-13 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ - * Remove deprecated options and quoted project name option in Doxygen file. - * Make Bazaar ignore the files generated by Doxygen in the new folder. -++EESchema - * More schematic component encapsulation work. - * Doxygen comment fixes. - - -2010-Dec-13 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++eeschema: - Committed a new design for a "Distributed Library System". - To make the html docs, run doxygen in <kicad_base>/new with that as your - current working directory, or run the shell script in there. You need - Doxygen installed. - - -2010-dec-13 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++common - * Make base marker hit test method const. -++EESchema - * Improve hit testing for schematic components. - * Add initial support for hit test filtering. - * Moved static function CountConnectedItems() into SCH_SCREEN object. - * Add IsConnected() method to SCH_ITEM object. - - -2010-dec-10 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++All - * Make a whole bunch of object methods const in order to make HitTest() const. - * Lots of coding policy fixes. -++common - * Add Inside override to EDA_Rect to test if another EDA_Rect is inside. - * Add additional parameter to EDA_TextStruct GetTextBox method to support - Y axis inversion and non-default thickness. - * Add accuracy parameter to EDA_TextStruct TextHitTest method. -++EESchema - * Refactor schematic object hit testing to provide coherent object interface. - * Remove redundant GetBoundaryBox from schematic component object. - * Remove redundant layer member from schematic text object. - * Create hit test override to check for rectangle intersection and - containment. - * Simplify schematic block selection hit testing. - * Make schematic and component library object enum naming consistent. - - -2010-dec-08 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++All - * Coding policy object naming and formating fixes. -++GerbView - * Fix compiler warnings. -++Common - * Change item list type from SCH_ITEM to EDA_BaseStruct in BASE_SCREEN - object. - * Encapsulate BASE_SCREEN drawing item list member. - * Change grid container from wxWidgets to standard C++ container. - - -2010-dec-07 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++EESchema - * Finish encapsulating LIB_FIELD object. - * Encapsulated all members currently in use in LIB_PIN object. -++Common - * Add SetModified() helper to EDA_BaseStruct object that checks for a parent - object and sets it's modified status as well. - - -2010-dec-02 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++EESchema - * Move color configuration dialog to dialogs folder. - * Simplify color configuration dialog design, remove enable grid checkbox( I - think we have enough places to do this), and remove abbreviated labels. - * Restore changing value field behavior to create new component from the - current one and handle all of the potential library naming conflict issues. - * Create a toolbar button perform the same function as renaming the value - field for improved usability. - * Add new copy component bitmap contributed by Jean-Pierre Charras. - - -2010-dec-02, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -Pcbnew: - For zone filling algo, change the default polygon library from Kbool to Boost::polygon. - - -2010-dec-01, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -Gerbview: - Added support for complex definitions of parameters in aperture macros and primitives macro - (a complex definition in a parameter that is calculated by an arithmetical expression) - Gerbview should now have a decent support of Gerber language. - Currently only the obscure knockout command is not supported (I have no motivation to do that) - Other "bug": - scale in A and B axis is poorly supported: coordinates are scaled, but shapes can have problem: - fro instance, a circle is drawn as a circle when A and B scales are different, - and perhaps should be an ellipse. - On the other hand, Gerber doc is not clear about the meaning of A and B scale. - (Alas! Gerber doc is not clear about most of advanced commands) - - -2010-nov-19 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++EESchema - * Move library new component and schematic edit sheet dialogs to dialogs - folder. - * Set library new component and schematic edit sheet dialogs default button. - * Create wxFormBuilder version of edit sheet label dialog and remove hand - coded version. - * More coding policy fixes. - - -2010-nov-19 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++EESchema - * Move library dimension, schematic configuration, and schematic options - dialogs to dialogs folder. - * Set library dimension, schematic configuration, and schematic options - dialogs default button to OK button. - * Kicad coding policy clean ups. - - -2010-nov-17 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++EESchema - * Move library text edit, library draw item edit, SVG print, and BOM dialogs - to dialogs folder. - * Rename library text edit dialog file and object names to comply with - coding policy. - * Set default button in library text edit, library draw item edit, SVG print, - and BOM dialogs. - * Move BOM dialog code into BOM dialog object source file. - - -2010-nov-11 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++EESchema - * Make schematic object file naming consistent. - * Move annotate dialog to dialogs subdirectory and set the "Annotation" - button as the default. - * Move ERC dialog to dialogs subdirectory and set the "Test Erc" button - as the default. - * Move the print dialog to dialogs subdirectory and set the "Print" button - as the default. - * Create print dialog header and move the OnPrint() method into - schframe.cpp. - - -2010-nov-10 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++EESchema - * Header file rationalization. - * Move schematic object load code into the appropriate schematic object. - - -2010-nov-3 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++common - * Initial ground work for using Boost container for storing draw items - instead of internal linked list. -++EESchema - * Move tests for dangling end code back into schematic objects. - * Add clear draw object state helper to SCH_SCREEN object. - * Add support for schematic objects to keep temporary list of connection - objects for dangling end and other connection related tests. - * Rearrange schematic label object code. - * Remove duplicate error message boxes when loading schematic items. - - -2010-oct-28, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -PolyLine.cpp: - remove unused method CPolyLine::TestPointInsideContour() which was a duplicate of - TestPointInsidePolygon(). - In CPolyLine::TestPointInside(); replace curious algo (which have a problem) - to test a point inside a polygon by TestPointInsidePolygon() -++Pcbnew: - fix a bug in Drc and clearance calculations when using a dummy pad - ( in zones calcualtions and to test holes ot tracks and holes to pads DRC). - -2010-oct-26 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++EESchema - * Change screen list object array type from wxARRAY to std::vector. - * Move all SCH_SCREEN methods into file class_sch_screen.cpp. - * Move find dialog files to dialogs sub-directory. - * Remove hallucinatory save and restore methods I wrote from component - library draw objects. - * Merge external TstAlignSegment function to SCH_LINE::MergeOverlap method. - * Move save schematic method to files-io.cpp and remove empty file - save_schemas.cpp. -++include - * Remove unused internal link list next and back methods from base screen - object. - - -2010-oct-25 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++EESchema - * Remove common library component and alias base class CMP_LIB_ENTRY. - * Derive LIB_COMPONENT and LIB_ALIAS directly from EDA_BaseStruct. - * Encapsulate most library draw item object members. - * Make most library draw item get methods constant. - * Merge two edit component properties methods into a single method. - * Update double click left mouse button to use merged edit component - properties method. - * Set schematic find dialog find button as default button. -++include - * Add in-line flag state helpers to EDA_BaseStruct. - - -2010-oct-22 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ - Component library editor bug fixes and other minor fixes. - * Fix bug that prevented component from being replaced in library when - the component root name was changed. - * Fix drawing bug when changing text or field item string while move in - progress. - * Fix drawing bug when rotating text item while move in progress. - * Prevent undo or redo when editing a component draw item. - * Fix assert bug when replacing component in library when the component - root name was changed. - * Fix bug in field editor caused by new root alias implementation that - prevented any field from being changed. - * Fix minor spacing issues with EESchema find dialog. - * Deprecate remaining internal linked list code from component library - objects. - * Rename pin object files to match new library object file naming - scheme. - * Move LIB_TEXT object definition into it's own header file. - -2010-Oct-20 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++richio: - LINE_READERs will now allocate a smaller initial size buffer, say 5000 bytes, - and then resize their buffers up to some provided maximum, after which an - exception is thrown should a line exceed that maximum line length. - - -2010-oct-15, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++gerbview: - Added support for gerber commands: - SR (Step and Repeat) - multiple MOIN and/or MOMM in file (switch units from inch to mm and mm to inch) - -2010-oct-09, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++gerbview: - Fixed some issues: - Now aperture macro with parameters works. - Note: complex parameters (like $1 + 4) are not supported - - other commands not yet supported: - SF (scale factors) - Offsets (image and layer) - Rotations (image and layer) - Axis definition - Mirroring - SR (Step and repeat) - KO - -2010-Oct-5 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++richio: - * LINE_READER now has a GetSource() function which is used in error - reporting. This is typically the name of the file which is supplying the - lines of text, or string "clipboard" if the text is coming from the clipboard. - Derived classes FILE_LINE_READER and STRING_LINE_READER's constructors both - need an additional parameter which identifies the source. - * FILE_LINE_READER now owns the source FILE and will close it in its destructor. - This resulted in the removal of several fclose() statements that had been - there to close a file associated with a FILE_LINE_READER. - * DSNLEXER now supports an internal LINE_READER* stack which is used to handle - nested s-expression files, with the ability to resume from the proper place - in the containing file. There is now PushReader() and PopReader() functions - in DSNLEXER to handle this. No protection is provided against circular - inclusions, but this could be done by searching the stack and comparing - GetSource() values for anything already on the stack before pushing. - Each s-expression grammar is free to define one or more keywords that cause - nesting to occur. That policy choice is not part of DSNLEXER's job. - One example might be: - (inherit (footprint library_uri ftprintname)) - -2010-oct-04 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ - Initial work on new component library stucture. - * Use C++ map in component library instead of boost::ptr_vector. - * Drop Boost pointer containers for standard C++ containers. - * Moved duplicate name user interface elements from library object to - library editor. - * Added code to support direct addition and replacement of component - alias objects into libraries. - * Removed temporary strings used to add and remove alias objects. - * Libraries only store alias objects, components now accessed thru alias. - * Simplify library API for adding, removing, and replacing components. - * Updated edit component in library dialog and library editor to reflect - component library object changes. - * Fixed bug in library viewer when displaying alias name. - * Made a few header files compile stand alone per the new coding policy. - * Remove some dead code and the usual code formatting fixes. - - -2010-oct-03, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++gerbview: - finished Draw functions for aperture macros. - Now aperture macros are draww correctly. - Known bug: aperture macros having parameters are incorrect: parameters are not transmited correctly. - Work still in progress. - -2010-sept-28, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++gerbview: - Important changes: - graphic functions rewritten. - graphics items are now specific to gerbview (added a GERBER_DRAW_ITEM class) - and do not use tracks from pcbnew. - The way used to draw them is also new. - Apertures are now correctly drawn for round, oval, rectangular and regular polygon shapes - (with or without holes) - Aperture definition type Polygon is not yet handle. - Polygons are correctly drawn. - TODO: - Draw functions for aperture macros. - Work in progress. - - -2010-Aug-9 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++CMakeModules: - Revise TokenList2DsnLexer.cmake to take outCppFile and outHeaderFile optinally - and enum mandatorily. Standardize the script's invocation technique within - all the CMakeLists.txt files. - -2010-Aug-8 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++CMakeModules: - Revise TokenList2DsnLexer.cmake to make an entire derived lexer class that - returns the proper enum type for superior debugging. -++eeschema - * netform.cpp now outputs the allowed footprint filters for a given library - component. - * There is an auto-generated class called NETLIST_LEXER which is defined in - from netlist.keywords by TokenList2DsnLexer.cmake into netlist_lexer.h, that - may be the basis of loading a S-expression form of the generic netlist format - which is written from netform.cpp. - - -2010-Aug-7 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++common - * add xnode.cpp and xnode.h which can be used to output either an XML or - S-expression document file. - * Add class STREAM_OUTPUTFORMATTER which is a richio class which can write - to any of the wxOutputStream derivatives, such as file, socket, zip, tar. - * Added netlist.keywords -++eeschema - * netform.cpp can now output S-expression OK, although I have it commented out - pending the addition of a UI for it. - - -2010-Aug-4 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++eeschema netform.cpp: - * Finish up first working version of the XML export. - -2010-Aug-3 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++eeschema netlist.cpp and netform.cpp: - * Found several speed optimizations in the netlist export code. - * Now sort the pins properly if they have pin numbers like A1 and A10, - i.e. alphanumerics in them. - - -2010-Jul-30 & 31 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++eeschema: - * Now link with XML support within wxWidgets. - * Export the generic netlist in XML. Only the libpart elements are missing now. - Still need to rework the chain loaded netlist plugin, but may do that in XSL. - * OBJ_CMP_TO_LIST class now uses a std::string to hold the 8 bit string m_Ref, - but hides this behind accessors which provide for both Unicode and 8 bit - set and get functions. - * build_BOM.cpp retains the selected filename on subsequent runs as a default. - * Code cleaning, especially in build_BOM.cpp. - - -2010-jul-27, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++all: - Updated boost to version 1.44 - Added boost::polygon (experimental) -++pcbnew: - Added experimental zone fill calculations with boost::polygon - old file zones_convert_brd_items_to_polygons.cpp has now 2 versions: - zones_convert_brd_items_to_polygons_with_Boost.cpp use boost::polygon to calculate filled areas - zones_convert_brd_items_to_polygons_with_BKbool.cpp use kbool (code cleaned). - - >>> to use boost polygon version: - call cmake with option: -DUSE_BOOST_POLYGON_LIBRARY=ON - -2010-jul-12, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew: - Added grid origin patch from Lorenzo Marcantonio. - Converted set grid dialog from DialogBlocks to wxFormBuilder, - and added in this dialog the grid origin parameters settings. - -2010-jun-24 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -++EESchema component library and hierarchical sheet label object improvements. - * Continue component library class clean up and encapsulation work. - * Change hierarchical sheet label container to boost::vector_ptr. - * Encapsulate hierarchical label handling in hierarchical sheet class. - * Convert some missed occurrences of wxString::GetData() to GetChars( wxString ). - * Fix some minor code formatting issues. - -2010-jun-23, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++eeschema: - In netlist generation, changed the rule to calculate netnames of nets with labels: - Previously, named nets (i.e. nets with local, hierarchical or global labels) have their name - defined by the first label found in list. - So net names could be changed without really changing the schematic. - Now the names are calculated from the rules (by priority order) : - 1 - use the most top level labels in hierarchies. - 2 - use global labels first, local labels next (hidden power pins names are global labels). - 3 - use alphabetic sort (so, if GND and AGND are connected, the net will be always named AGND, - and adding a VSS connection cannot change the net name) - So power nets and nets that have more than one label cannot have their netname changed - if there is no actual change relative to these nets names in schematic - - -2010-Jun-17 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++eeschema: - Added "template fieldnames" to eeschema. Thanks to - Brian Sidebotham <brian.sidebotham@gmail.com> for the origins of this patch. - https://lists.launchpad.net/kicad-developers/msg04828.html - - A template fieldnames are a list of template elements - consisting of {name, value, visibility} which you want shown in the eeschema - component fieldname (property) editors (both schematic and library versions - of the editors). Template fieldnames are forced into the editors' - presentation of the fields even though those fields may not exist in the - component. Entering a non-blank value while in a field editor will cause the - field & value to be retained in the component. Therefore it is unusual to - provide a non-blank '.value' in a template, because a trip through the field - editor will invariably add that field to the component since the template - being applied has initially a non blank 'value'. The current template editor - is only going to last about a week and it does not support adding non-blank - template values yet, nor visibility control, only field '.name'. But the - template fieldnames configuration storage and component field editors do - know how to handle template.visible and template.value already, in addition - to template.name. See the file .eeschema in your home directory for the - configuration storage, keyword: FieldNames. e.g. only field Manufacturer has - a '.value': - - FieldNames=(templatefields (field (name "Manufacturer")(value "IBM 12")) (field (name "Vendor")) (field (name "Installed")) (field (name "Ralphy") visible)) - - DSNLEXER is used to parse the FieldNames record, & OUTPUTFORMATTER to generate it. - - -2010-jun-15, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -bitmap2component: - Use wxWidgets. - Better user interface - More bitmaps file format import (from wxWidgets) - This tool does not use Kicad classes. So it can be hacked by guys who do not know kicad sources. - -2010-jun-10, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -Added an experimental tool (bitmap2component) to create logos from .bmp bitmaps. Added Potrace library to convert bitmaps to polygons - This tool uses potarce library that converts a bitmap picture (.bmp or .pgm format) to a set of polygons. - bitmap2component converts a bitmap to a .emp footprint (that can be imported by modedit) or a .lib component that can be - imported by libedit. - Note: imported bitmaps logos are vectored by potrace, so there is no pixelation effect. - Scale is 1:1 for 300ppi pictures. - bitmap2component currently runs only is command line mode - run - bitmap2component bitmapfile.bmp bitmapfile.lib 1 to create a schematic component logo - (import this file using libedit) - or - bitmap2component bitmapfile.bmp bitmapfile.emp 1 to create a footprint logo - (import this file using modedit) - - -2010-may-18, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++All: - Set minimum cmake version requirement to 2.6.4 - (does not works with 2.6.1) -++Pcbnew, Module Editor: - Added footprint name edition in the module properties dialog. - Until now, the footprint name used to retrieve a footprint in lib was - set only when saving the footprint in lib, and could not be edited without saving - the footprint in lib. - -2010-may-01, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew: - Board and footprint editors: - Auto update 3D display after footprint or board edition. - (board or footprint is reloaded only when the 3D frame is reactivated, so - no extra time is needed during edition) - -2010-apr-29, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew: - Fixed a crash that happens sometimes when opening the design rule dialog. - (due to the sorting function by netclass then by netname) - The sorting by netclass then by netname is now working well. - - -2010-apr-23, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew: - Fixed minor problems. - Changed French word COTATION to DIMENSION in class COTATION (now class DIMENSION) - -2010-apr-22, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew+Gerbview: - Fixed minor problems in printing. - -2010-apr-19, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew: - * Added VRML export, from the patch sent by Lorenzo Marcantonio ( october 2009, 11) - * Fixed : - options to control vrml export. - flipped footprints - * Tested using Cortona and Blender. - - Needs more testing and refinements - -2010-apr-16, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Cvpcb: - Fixed a bug in footprint display frame (coordinates not displayed). Windows only. - Added right toolbar to select display options - Can now read netlists using UTF8 encoding. - Convert dialog_display_option from DialogBlocks to wxFormBuilder -++Pcbnew: - Fixed a very minor bug. -Cvpcb+Pcbnew: - Code cleanup in read netlist functions: use now FILE_LINE_READER. - -2010-Apr-12 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all: - Switched the source code repository from subversion at sourceforge.net to - launchpad using bazaar. - - -2010-apr-08, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew: - Drc: take in account the clearance "local parameters" for pads that have local parameters. - Until now, only NETCLASS clearance values were used. - (local parameters are used in zone filling) - But because a pad (or a footprint) can have a specific clearance value - Drc used now this value, and NETCLASS value only if no local value specified. - -2010-mar-31, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew - Fixed an issue in GERBER file creation, under Vista and W7 only for non administrator users - Plot files were 0 byte length. - This was due to use of function tmpfile() in a GERBER function - to create a temporary file that seems not working using mingw. - Replaced by more usual files functions. - -2010-mar-29, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew - enhancements in printing or plot in SVG format: - When printing technical layers, pads on solder mask or solder paste layers - where printed in sketch mode. - Now they are printed as solid shapes, with dimensions according to - solder paste or solder mask clearances. - - -2010-mar-18 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Eeschema - Some bugs fixed - Starting enhancements in Libedit: menubar and commands to "plot" - current component in PNG or SVF file (SVG file not fully working, must be refined) - -2010-mar-13 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++ All: - Stable verion for kicad release - -2010-mar-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Pcbnew: - Added (see dialog_layers_setup.cpp) compilation options to - -hide non active copper layers - -show inner layers in same order than the layer manager - Currently these options are 2 define - HIDE_INACTIVE_LAYERS - // if defined, displays only active copper layers - // if not displays always 1=the full set (16 layers) - USE_LAYER_MANAGER_COPPER_LAYERS_ORDER - //if defined, used the layer manager copper layers order - // (from FRONT to BACK) to display inner layers. - // if not, use the default order (from BACK to FRONT) - - Currently not active, can be changed if the correponding lines are uncommented in dialog_layers_setup.cpp - -2010-Mar-3 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++common - * DSNLEXER now owns an abstract LINE_READER by pointer so that polymorphism - can be used in alternative LINE_READERS. - * Write FILE_LINE_READER and STRING_LINE_READER. The latter can be used - to parse text coming from the clipboard or other string source. - - -2010-Feb-20 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++common - DSNLEXER now supports: - 1) nested quotes. This is in anticipation of broader usage of the - file type/syntax. A string like this in the file: - "my ""favorate"" string" - can be returned as - my "favorite" string - 2) CommentsAsTokens is implemented, so you can ask the lexer to return - comments as tokens, so they can be preserved. The default is to ignore - them. A comment is defined as any line that has # as its first - non-blank character. (This means comments cannot follow anything else - on a line.) - - -2010-Feb-19 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -kicad: fixing an annoying problem: - * Building the tree project can be *very* long if there are a lot of subdirectories - * in the working directory. - * Unfornately, this happens easily if the project file *.pro is in the home directory - * So the tree project is built "on demand": - * First the tree is built from the current directory and shows files and subdirs. - * > First level subdirs trees are built (i.e subdirs contents are not read) - * > When expanding a subdir, each subdir content is read, - * and the corresponding sub tree is populated on the fly. - - -2010-Feb-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -kicad: - * Building the tree project can be *very* long if there are a lot of - * subdirectories in the working directory. - * Unfornately, this happens easily if the project file *.pro - * is in the home directory - * when subdirs are not loaded, double click on a directory to load its files and subdirs - * #define ADD_FILES_IN_SUBDIRS was used until now. - * It is now commented, so one must double click on a subdir name to load its files - * See treeprj_frme.cpp for more info - -2010-Feb-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -Eeschema, libedit: fixed last problems when editing alias info. - Now alias changes can be undone, and are correctly updated in lib - when updating the current edited component in memory - New code could be a good starting point to store all aliases info in the - root component, - and also easily store it to the *.lib files and remove the .dcm associated files - (most of code is done) - - -2010-Feb-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -Eeschema, libedit: fixed add/remove alias functions, broken -All: added in popup menus hotkeys info for zoom commands - - -2010-Feb-14 UPDATE Jerry Jacobs <xor.gate.engineering[at]gmail[dot]com> -================================================================================ -++ KiCad - Check if project is noname.pro so we don't get a error if kicad is first run. - Removed double separator in file menu. - Moved recent project to submenu in Open recent. - -++ Common - Added CTest/CDash support file - Moved helper tool to helper subdirectory - -++ OSX - Update compiling doc - -2010-Feb-07 UPDATE Vesa Solonen <vesa.solonen@hut.fi> -================================================================================ -++ all: - Finnish translation, take one. - -2010-Feb-04 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++ gerbview: - Use layer_widget to manage gerber layers colors and visibility. - -2010-Jan-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++ pcbnew: - More about work on color selection and items visibility: - removed global variables and a lot of redundancies - Now Modedit does not uses the visiblity options of the board editor - (That can create a problem if hide modules is activated) - work in progress but almost finished - - -2010-Jan-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++ pcbnew: - More about work on color selection and items visibility - work in progress - -2010-Jan-29 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ - ++ All: - added a test to solve a problem when cross compiling Kicad under Linux for Windows - Specific to countries that use a comma as separators in floating point numbers notation: - Depending on wxWideget version: - printed as 0,5 and read as 0.5 - or - printed as 0.5 and read as 0,5 - So float values are always broken in dialogs (many are seen as 0) - Now a test is made, and if there are problems relative to floats - (write/read conversion error), - use the C convention (always a point as separator) - - ++ eeschema: - Removed metrics grid values, that cannot be handled in schematic. - (because 2 items are seen as connected if they have the same coordinates - mixing mm and mils with internal units = 1 mil break netlist - and ERC calculations - So grid value *must* be an integer (in 1/1000 inch). - And metric grid is not very useful in schematic. - (Also 1 mil and 0.025 mm can be seen as the same value for a schematic that do not - needs precision in dimensions, so no need to have mils and mm in grid values) - -++ pcbnew: - Starting work on color selection and items visibility - * code cleaning and removing global values. - * Separe visibility options for board editor and module editor - (work in progress, just starting) - - -2010-Jan-28 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ - *fixed eeschema crash when using the hotkey m (move) command. -* Pcbnew :added option to show/hide footprints values and/or references - See if show/hide footprints texts option is now always useful. - -2010-Jan-27 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++ Pcbnew: - Code cleaning about visibility variables (duplicates) in draw functions. - Removed old color and visiblity dialog - work in progress - -2010-Jan-24 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++ Pcbnew: - in variable names, change non existent word Hight to High - Remove redundant tool in left toolbar (option toolbar) - (this option is now in layers manager) - Show layers in horizontal combo box in same order as in layer manager. - -++all: - minor code cleaning. - -2010-Jan-23 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew's PCB_LAYER_WIDGET - Removed wxformbuilder dependency from LAYER_WIDGET, thus killing off - layer_widget_base.* and panel_layer_select.fbp. - Added aPointSize to LAYER_WIDGET constructor so it uses that font size. - Removed layer_widget.h from wxPcbStruct.h for faster compiles with less - dependencies, and this meant moving the class LYRS out of - class WinEDA_PcbFrame. While doing that I renamed it to PCB_LAYER_WIDGET. - Integration of PCB_LAYER_WIDGET into WinEDA_PcbFrame to fully support - the layer change logic. Added syncLayerWidget(), - * WinEDA_PcbFrame: - Added syncLayerWidget(), syncLayerBox() (via a rename), setActiveLayer(), - and getActiveLayer(). - Use a font size in PCB_LAYER_WIDGET 80% of the system font size for systems - with screen resolution height <= 900, or 100% if not. See WinEDA_PcbFrame - constructor. - * See TODO.txt for more things that need to be done. - - -2010-Jan-23 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++ Pcbnew: - Update Layer manager display when changing active layer (from hotkey or menus) - fixed minor problems and fixed Layer Alignment Target bug. - -2010-Jan-22 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -Minor fixes and code cleaning. - -* Remove redundant background redrawing RedrawActiveWindow. -* Remove redundant managed cursor callback in RedrawActiveWindow. -* Use refresh to redraw instead of directly calling RedrawActiveWindow. -* Remove unused SetDrawBgColor for drawframe.cpp. -* Fix compiler warning in cvpcb/cvframe.cpp. -* Fix menu spelling and syntax errors in pcbnew. -* Rename Trace_Curseur to DrawCursor in common/drawpanel.cpp. - -2010-Jan-21 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - Integration of LAYER_WIDGET into WinEDA_PcbFrame. See - TODO.txt for more things that need to be done. - - -2010-Jan-17 UPDATE Jerry Jacobs <xor.gate.engineering[at]gmail[dot]com> -================================================================================ -More work to make kicad more Mac OS X compliant. -* Workaround for wxAboutDialog bug. -* WXMAC needs wxID_EXIT to make closing the application function properly. -* Workaround for hotkeys, on Mac OS X we can't use Fx keys. - This needs to be further implemented and is a work in progress. - We need to modify the hotkey code to display Mac OS X the - special modifier keys in the hotkey list. - - -2010-Jan-18 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++any - Finished up complete implementation of class LAYER_WIDGET and am now ready to - integrate it into PCBNEW. This class was kept as general as possible by - omitting as many Kicad document structures as possible, and so can be used - in GERBVIEW. For GERBVIEW it could benefit from some minor additional - work such as a "move up" function for layer order changes. This is a matter - of rearranging wxWindows within the m_LayersFlexGridSizer. - Integration into PCBNEW should be done in just a few days. - - -2010-Jan-17 UPDATE Jerry Jacobs <xor.gate.engineering[at]gmail[dot]com> -================================================================================ -+ EESchema - + Added Torsten Huter's patch for hotkeys - + Moved recent opened documents to submenu - -+ Pcbnew - + Big (re)organisation of pcbframe menubar and cleanup - -2010-Jan-13 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ -Minor bug fixes, compiler warning fixes and code cleaning. - -* Fix debug asserts when passing NULL pointers to wxAuiPaneInfo. -* Fix Kicad main window sash sizer bug when using wxAui. -* Remove specctra_test from Visual Studio builds to prevent build errors. -* Add WIN32 to layer widget test so it will build properly on Visual Studio. -* Fixed compiler conversion warnings in PCBNew. -* Fixed worksheet print scaling in PCBNew. -* Minor code renaming. - -2010-Jan-12 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++All - Use wxAutoBufferedPaintDC in OnPaint event - Seems solves slow grid redraw on some PC (tested under Window 7) - and is faster than use wxPaintDC, not buffered - (note MACOSX has natively a double buffer, so no change for MACOSX) - -2010-Jan-08 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++Gerbview - Added support of arcs in polygons outlines. - Needed to show copper areas in some gerber files - Not fully tested but works better than without this support... - - -2010-Jan-03 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - - fixed a potential bug in a fill zone function: AddClearanceAreasPolygonsToPolysList() - - Try to fix a problem with AddClearanceAreasPolygonsToPolysList() under Window Vista and Window 7 - This is perhaps a problem in kbool library - (a bug in Bool_Engine destructor ?) - It happens when: - - a lot of polygon corners are added in group A - - nothing in group B - - No operation asked in kbool engine ( that also has a bug if an operation is asked - with no polygon in group B) - - and call the Bool_Engine destructor. - Could be a stack error or overflow, very hard to locate and debug. - - Under Vista seems create always a crash. - - Under Window 7 sometimes create a crash. - - No problem under XP and Linux. - -Workaround: - Leave the group A void if group B is void. - I am not sure this change fix the problem. - Just it solves this problem with 2 samples boards that crash Pcbnew without this change. - -2010-Jan-01 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -++pcbnew - Rewrite plot dialog using wxDialogBlocks. - Display layers list according to the Setup layers dialog order. -++Gerbview - Write Gerbview plot dialog using wxDialogBlocks. - Do not use anymore the Pcbnew one. - diff --git a/Documentation/changelogs/CHANGELOG-2011.txt b/Documentation/changelogs/CHANGELOG-2011.txt deleted file mode 100644 index 8752fc7808..0000000000 --- a/Documentation/changelogs/CHANGELOG-2011.txt +++ /dev/null @@ -1,297 +0,0 @@ -KiCad ChangeLog 2011 -==================== - -Please add newer entries at the top, list the date and your name with -email address. - - -2011-Dec-19, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -Pcbnew: - Enhanced algorithms to calculate board connections: - - A track is seen connected to a pad if the track end is inside the pad shape. - - Pads inside pads are now seen connected, if the center of the pad is - *inside* the other pad. - (this is made to be sure a large copper area is shared by the 2 pads, - and to keep algorithm fast). - Algorithm to calculate pads connections is still very fast. - However some other functions (drag pads, track len calculation ...) - still need the track end exactly on the pad position. - - -2011-Dec-13 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++common - * changed all the RotatePoint() functions in trigo.{h,cpp} to take a double as the - angle, which is still in tenths of degrees for now. - * EDA_TEXT::m_Orient is now double, still in tenths of degrees (for a short while), - but the double means parsing files and saving them use a different format string. -++pcbnew - * DRAWSEGMENT::GetStart() and GetEnd() do not operate for S_ARC like they used to. - They are now simply accessors for m_Start and m_End. Use DRAWSEGMENT::GetArcStart() - and GetArcEnd() and GetCenter() for arcs. specctra_export.cpp was the only - source file dependent on the old behavior. - * DIMENSION::m_Text is now contained, not dynamically allocated. - * more kicad_plugin work. - - -2011-Dec-9 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++PCBNew - * added BOARD::GetPad(int), made BOARD::m_NetInfo private, and contained - within the BOARD, not dynamically allocated and owned via pointer. - * added BOARD::GetPadCount() - * changed NETINFO_LIST::GetCount() to GetNetCount() - * added BOARD::GetNetCount() - * more kicad_plugin work. - -2011-Dec-5 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++PCBNew - * Removed Pcb_Frame argument from BOARD() constructor, since it precludes - having a BOARD being edited by more than one editor, it was a bad design. - And this meant removing m_PcbFrame from BOARD. - * removed BOARD::SetWindowFrame(), since BOARD::m_PcbFrame gone. - * Removed the global BOARD_DESIGN_SETTINGS which was in class_board.cpp - * Added BOARD_DESIGN_SETTINGS to the BOARD class, a full instance - * A couple of dialogs now only change BOARD_DESIGN_SETTINGS when OK is pressed, - such as dialog_mask_clearance, dialog_drc, etc. - * Removed common/pcbcommon.cpp's int g_CurrentVersionPCB = 1 and replaced it - with build_version.h's #define BOARD_FILE_VERSION, although there may be a - better place for this constant. - * Made the public functions in PARAM_CFG_ARRAY be type const. - void SaveParam(..) const and void ReadParam(..) const - * PARAM_CFG_BASE now has virtual destructor since we have various ways of - destroying the derived classes and boost::ptr_vector must be told about this. - * Pass const PARAM_CFG_ARRAY& instead of PARAM_CFG_ARRAY so that we can use - an automatic PARAM_CFG_ARRAY which is on the stack. - * PCB_EDIT_FRAME::GetProjectFileParameters() may no longer cache the array, - since it has to access the current BOARD and the BOARD can change. - Remember BOARD_DESIGN_SETTINGS are now in the BOARD. - * Made the m_BoundingBox member private, this was a brutally hard task, - and indicative of the lack of commitment to accessors and object oriented - design on the part of KiCad developers. We must do better. - Added BOARD::GetBoundingBox, SetBoundingBox(), ComputeBoundingBox(). - * Added PCB_BASE_FRAME::GetBoardBoundingBox() which calls BOARD::ComputeBoundingBox() - - -2011-Dec-04, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -Pcbnew: - Enhanced algorithms to calculate board connections: - Previously, a track was seen connected to a pad only if the track end is - exactly on the pad position. - Now a track is seen connected to a pad if the track end is inside the pad shape. - Algorithm to calculate pads connections to track is still very fast. - However some other functions (drag pads, track len calculation ...) - still need the track end exactly on the pad position. - -2011-Nov-27 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++PCBNew - * Add PLUGIN and IO_MGR classes. - * Remove one argument from BOARD constructor, - * add BOARD::SetWindowFrame() - -2011-sept-13 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ - PCBNew locate code refactoring. - - * Move various locate functions into the appropriate board item object. - * Unified best zoom for all frames derived from PCB_BASE_FRAME. - * Remove track.cpp as it is no longer needed. - * Dead code removal. - * Remove scary frame window pointer member from board item objects. - * Add draw bounding box to gerber draw item for debugging purposes. - -2012-Sept-8 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all - * Write an automatic bitmap generation script in cmake, PNG2cpp.cmake - * Write an infrastructure generate *.png files from inkscape files, and do - it maintaing the "as needed" change detection support. - * Support an *.SVG maintainer mode, AND an *.SVG user mode. - * Engineer a seemless switchover from old style xpm files, with minimal - impact to system wide source code. - -2011-Sept-07, UPDATE Andrey Fedorushkov <andrf@mail.ru> -================================================================================ -Pcbnew: - Add hotkey "P" - place item - Add Roman Bashkov patch for record/play sequence hotkey macros - Add record and play macros for sequence hotkey. - Macros set to numeric key 0..9: - <Ctrl>+<numkey> - start record macros - <hotkey> <mouse move> ... <hotkey>|<mouse place> - <Ctrl>+<numkey> - end record macros - <numkey> - play macros - Add menu save/read macros to/from xml-file - Add configure rotate angle for rotate module: 45 or 90 deg. - Fix segfault when move/drag segment if disconnected to pad - -2011-Sept-01, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ - Add Fabrizio Tappero <fabrizio-dot-tappero[at]gmail-dot-com> in contributors list. -Eeschema: - Graphic texts ans labels: fix fully broken undo/redo code relative to the way undo/redo command - handles changes (maintly move) for labels - Fix minor bug for undo command relative to block rotate - Remove dead code. - Add new class BITMAP_BASE, and (for Eeschema) SCH_BITMAP to handle bitmap images in schematic. - Remember plot Bitmaps in not possble with all plotters. - - -2011-Aug-19, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -Pcbnew: - Add support for not plated through holes (NPTH) pads - * These NPTH pads are used for mechanical purpose only, and cannot be connected to a net. - * When these pads have a same size and shape for the hole and the pad, the pad is not plotted - in GERBER files. - -2011-Apr-12, UPDATE Jerry Jacobs <xor.gate.engineering@gmail.com> -================================================================================ -Minor UI changes that affect OS X platform. - - Fix for opening the help contents - - Fix for opening files with the default editor - - Fix for opening PDF files - -Solved all with the BSD open command, for other OS'es which have X11 and -utilities they can use the xdg-open command which I added to the pdf viewer tries -list. - -Kicad projectview: -Remove not-existing files when a empty project is created, this confuses when -users try to open it. Show a entry that the project is empty instead of these -void files. - -2011-Apr-6, UPDATE Jerry Jacobs <xor.gate.engineering@gmail.com> -================================================================================ -Cleanup of all the menubar code to have the same style, remove the C comments. -Make the wxMenu behave native on OSX for KiCad, CvPCB and Gerbview and remove -unneeded ifdefs when using the wxIDs. Add a OnQuit for the gerber frame. -Change item->SetBitmap( item ) to use macro SET_BITMAP for menu items. - -2011-Apr-4, UPDATE Jerry Jacobs <xor.gate.engineering@gmail.com> -================================================================================ -More native OSX changes, this removes some WXMAC defines replaced by wxID -macros. These are handled by wxWidgets itself and reduces in-app platform -defines. More work needs to be done for CvPCB and Gerbview. - -All: - Hotkey names in menu's all have tabs, this looks more uniform and pretty. - -EESschema & PCBNew: - Fix about and preferences wxMenu to be more native (remove unneeded WXMAC ) - Disable all icons in wxMenu on OSX with macro SETBITMAPS - -jp charras: - SETBITMAPS is incorrectly used here. change to SET_BITMAP - -2011-Mar-25 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ - EESchema multiple item hit testing and other minor improvements. - - * Add item clarification context menu to EESchema when multiple unresolved - items are found at the current cross hair position. - * Add collector class EE_COLLECTOR for supporting multiple item hit testing. - * Removed bit wise masked filtering from schematic item hit testing. - * Removed all old hit testing functions and methods scattered about the - EESchema source code. - * Move terminal point test function into SCH_SCREEN object. - * Fixed bug in terminal point test when terminating a bus to a label. - * Define the < operator for sorting schematic items. - * Add area calculation method to EDA_Rect item. - * Add method for returning an item's bitmap for menu display purposes. - * Add method for returning an item's menu text for menu display purposes. - * Changed EDA_ITEMS container from boost::ptr_vector to std::vector. - * Factor coordinate string conversion code from EDA_DRAW_FRAME to function CoordinateToString(). - -2011-Mar-16, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -Gerbview: - Added: read Excellon files created by Pcbnew. - The full Excellon command set is not supported, but drill files created by Pcbnew are supported. - -2011-Feb-05, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> -================================================================================ -CvPcb: - Code cleanup. Rename WinEDA_CvpcbFrame to CVPCB_MAINFRAME, - according to coding style policy. - Change in CvPcb: - CvPcb does not use now .dcm files, only .mod files, - to read modules keywords and doc - - -2011-Feb-2 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++common: - * macros.h now has TO_UTF8() and FROM_UTF8() which are working converters - to and from UTF-8 encoding for any wxWidgets build mode. We can switch to - them at any time. I am using them now for specctra conversions and - elsewhere where I wanted gauranteed UTF8 encoding. - * added OUTPUTFORMATTER::Quoted( const wxString& ) to simplify converting - to UTF8 encoded s-expression atoms. The recommended technique is now simply: - out->Quoted( wxString ).c_str() - -2011-Jan-30 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all: - * DSNLEXER::NextTok() now uses two separate modes to parse quoted strings. - This gives us the freedom to control our own destiny separate from the - constraints put on us by the Specctra DSN spec. - * Added Documentation/s-expressions.txt to explain all this. - * Enhanced our quoting protocol by moving away from doubling up double quotes - to a C like escape mechanism. - * Now support multi-line strings, which when properly escaped, can still be - read in as a token originating on a single line. - -2011-Jan-21 UPDATE Wayne Stambaugh <stambaughw@verizon.net> -================================================================================ - EESchema code refactoring and coding policy naming fixes. - - * Move schematic wire and bus break code into schematic screen object. - * Move schematic test for dangling ends into schematic screen object. - * Remove left over debugging output in schematic screen object. - * Remove unused file eeschema/cleanup.cpp. - * Fix bug in schematic line object hit test algorithm. - * Fix a string concatenation compile error added in r2752. - * Rename class WinEDA_BasicFrame to EDA_BASE_FRAME. - * Rename class WinEDA_DrawFrame to EDA_DRAW_FRAME. - * Rename class WinEDA_DrawPanel to EDA_DRAW_PANEL. - -2011-Jan-19 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all: - * TokenList2DsnLexer.cmake now supports comments, which start with a leading - # character, and may be either on their own line or on a line after a token. - * DSNLEXER::PopReader() now pops even the last LINE_READER* and returns it. -++pcbnew: - * SPECCTRA_DB now inherits from new class SPECCTRA_LEXER, which led to a great - deal of simplification and code factoring. - * Moved specctra keywords into specctra.keywords. - -2011-Jan-17 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all: - * TokenList2DsnLexer.cmake now wraps each token enum in its own namespace. It - also no longer setup of the "using" directive in the header file, which was - bad behavior. C++ enum values will have name collisions unless the enums - themselves are different namespaces. -++new: - * Sweet library is now a DSO/DLL. - * Brought in SWIG to do a wrap of the Sweet DSO/DLL for unit testing - and scripting. The SWIG DSO/DLLs are built separate from the Sweet DSO/DLL - and are also optional. - -2011-Jan-1 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++new: - * Added the basic structure to the Sweet parser in sch_part.cpp. - * Got inheritence working off of the 'extends' keyword and PART::inherit() - * Tossed the units support out of sweet.keywords, since we agreed to go dimensionless. -++richio: - * Added the problemInputLine support to PARSE_ERROR, so UI can show the - offending line of bytes. Yes bytes, not even guaranteed to be characters. - - diff --git a/Documentation/changelogs/CHANGELOG-2012.txt b/Documentation/changelogs/CHANGELOG-2012.txt deleted file mode 100644 index 2bce31be3c..0000000000 --- a/Documentation/changelogs/CHANGELOG-2012.txt +++ /dev/null @@ -1,204 +0,0 @@ -KiCad ChangeLog 2012 -==================== - -Please add newer entries at the top, list the date and your name with -email address. - -2012-Nov-19 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -Eliminate many assumptions in Pcbnew's library manager, pertaining to locality of libraries and -their type, by using the more abstract PLUGIN::Footprint*() functions. - -This is an intermediate phase only, other changes will be necessary as library table support comes in. -Encapsulate usage of library path searching, since that will go away as library table support comes in. -Add FOOTPRINT_EDIT_FRAME::{get,set}LibPath() and FOOTPRINT_EDIT_FRAME::{get,set}LibNickName() functions -to provide this encapsulation. - -2012-Nov-14 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -1) Switch to boost hashtable support from wx macros which did not handle std::string. - This required the additional compiler command line option "-std=c++0x". - -2) Switch to unique_ptr from auto_ptr which is C++ deprecated. - -3) Change to new English layer names per mailing list discussion, see class_board.cpp. - -4) When saving to *.kicad_pcb or *.kicad_mod, identify opportunities to use wildcard - layer sets, for pads so far. - -5) Switch to two std::string hashtables in pcb_parser.cpp, away from one wxString based one - for layer names and layer sets mapping. One hashtable holds the mask, the other the index. - Layer sets are only in the mask table. - -6) Move "LOCALE_IO toggle" into PCB_IO::Format() since it is a public API function and - caller should find it as convenient as possible to use. LOCALE_IO should handle - nesting OK in the case where public Format() is called from one of the Footprint*() - functions. - -7) Drop support for "export module to new library". Creating new libraries will have to - be handled in concert with library table entries, and we've talked recently about - creating a better footprint library manager, one that resides in a DLL/DSO. So - this kind of functionality needs to be handled in there in the near future. - -8) Change name of exported PCB_IO module/footprint to *.kicad_mod and not *.emp. - - - -2012-May-5 UPDATE Jerry Jacobs <jerry@xor-gate.org> -================================================================================ -++ common - * Update about dialog to more native size so the notebook is not squeezed - * Increment copyright year to 2012 - * Fix mousezoom jumping to center for Mac OS X and other platforms - * Remove lowercase application name because Mac OS X menubar was inconsitent - -2012-Mar-11 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - * Add PCB_EDIT_FRAME::syncLayerVisibilities(), PCB_LAYER_MANAGER::SyncLayerVisibilities(). - * Save all visibilities, layer and render, in BOARD and restore on load. - - -2012-Feb-19 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - * Remove virtual BOARD_ITEM::{Get,Set}Position() which in turn means all - derived classes' implementations of these functions become non virtual and - can be truly _inlined_ for speed! All GetPosition() in derived classes were also - changed to return const wxPoint&, that is, a reference rather than a - full copy of the position wxPoint. There was no need for polymorphism in - {Get,Set}Position() since we never call these functions via generic pointer. - * Remove BOARD::{Get,Set}Position() since they were only there to satisfy - the pure virtuals established in BOARD_ITEM, which are now gone. - * Added const wxPoint& CPolyLine::GetPos(), made CPolyLine::Get{X,Y}() inline. - * Derive CPolyPt from wxPoint so we can return "const wxPoint&" from - CPolyLine::GetPos(). - - -2012-Feb-19 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - * remove global g_Pad_Master and put it into BOARD_DESIGN_SETTINGS - which is in turn already within BOARD. - * encapsulate class D_PAD with accessors, making data private. - * make D_PAD::GetBoundingRadius() do its longer calculation lazily, based on - m_boundingRadius == -1. - - -2012-Feb-5 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - * Changed classs ZONE_SETTING to class ZONE_SETTINGS, better English. - * Changed ZONE_SETTINGS::Import() to operator << ( ZONE_CONTAINER ) - * move globals into BOARD: - bool g_Zone_45_Only, is now in BOARD::m_zoneSettings.m_Zone_45_Only - ZONE_SETTINGS g_Zone_Default_Setting is now in BOARD::m_zoneSettings - * Added BOARD::{Get,Set}ZoneSettings(). - * Added PCB_BASE_FRAME::{Get,Set}ZoneSettings(). - * Save/load BOARD::m_zoneSettings.m_Zone_45_Only to/from BOARD file. - * Removed PCB_EDIT_FRAME::InstallDialogNonCopperZonesEditor() in favor of - ::InvokeNonCopperZonesEditor() declared in zones.h - * Added ::InvokeCopperZonesEditor() declared in zones.h - * Removed dialog_copper_zones.h since DIALOG class is now declared in *.cpp. - * Renamed to enum ZONE_EDIT_T in zones.h - * SetVisibleAlls() is not called as it was in two previous cases for several - reasons. BOARD_DESIGN_SETTINGS constructor controls what is visible initially, - and in the near future so will the *.brd file. I believe the user should - have visibility setting rentention accross editing sessions of zones, - fields, etc. - * BOARD_DESIGN_SETTINGS constructor initializes hidden text as not visible. - * Added PCB_EDIT_FRAME::syncRenderStates() and PCB_LAYER_WIDGET::SyncRenderStates() - so the checkboxes can be set after loading a BOARD file containing previous - visibility settings. - -2012-Feb-2 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++pcbnew - * move globals into BOARD - -wxSize g_ModuleTextSize; /* Default footprint texts size */ - -int g_ModuleSegmentWidth; - -int g_ModuleTextWidth; - But now the module editor is left hanging. I'll have to figure out - a way to pass from board editor to module editor these values, still. - - -2012-Feb-01, UPDATE Jean-Pierre Charras <jp.charras@wanadoo.fr> -================================================================================ -Pcbnew: -Cvpcb: - more about new netlist format: - Cvpcb can now read new netlist format. - There is a big change in Cvpcb: now Cvpcb just creates or updates a .cmp file - Before this change, Cvpcb recreated the netlist (adding footprint info) - and updated the .cmp file. - But there is no reason to modify the netlist, because Pcbnew uses always the .cmp file - (when exists) to know the footprint selection for components. - Currently the netlist is used only when the corresponding .cmp file is not fount - to select footprints. - So users should not notice this important change. - -2012-Jan-26, UPDATE Jean-Pierre Charras <jp.charras@wanadoo.fr> -================================================================================ -Pcbnew: - First draft to use a new netlist format (using S expressions) - Eeschema can generate this netlist format. - Pcbnew can use (automatic identification) the current format or the new format. - Cvpcb does not use yet the new format. - To do: - New format in Cvpcb: how to use the .cmp file with the new netlist format - - -2012-Jan-22 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all - * Switch to C++'s true and false and away from C" TRUE and FALSE. - * Enhance class PLUGIN's comments to improve their value as instructional. - * Switch #includes from "file.h" to <file.h>, and fiddle with search paths - by using include_directories(BEFORE ...) - * dialog_page_settings did not have symmetrical space on its right border. - And it now remembers it last position and size within a program session. - * base_screen.cpp is now compiled twice, once for {pcbnew,cvpcb} and once - for eeschema, in preparation for "compile time" support of internal units - rather than "runtime" support. - - -2012-Jan-15 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all - Add "portrait" support to the page size settings for all standard paper - sizes. Tested with postscript output only. Required minor file format changes - to reflect the "portrait" setting. common/dialogs/dialog_page_settings.cpp - uses a checkbox but its name is "Landscape", which is inverted from portrait, - but since it is the more common choice, I used that rather than portrait. - The tooltip for that checkbox makes it clear. No portrait mode is supported - for "User" paper size. - - -2012-Jan-9 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all - * Carve out TITLE_BLOCK from BASE_SCREEN - * Add include/hashtables.h and put class PROPERTIES in there. - Change PROPERTIES to use "const char*" as the key instead of wxString. -++eeschema - * Add shim class SCH_BASE_FRAME which introduces the data model SCH_SCREEN - to the frame EESCHEMA frame class hierarchy and allows sharing of: - SCH_SCREEN* GetScreen() const; // overload EDA_DRAW_FRAME - void SetPageSettings( const PAGE_INFO& aPageSettings ); // overload EDA_DRAW_FRAME - const PAGE_INFO& GetPageSettings () const; // overload EDA_DRAW_FRAME - const wxSize GetPageSizeIU() const; // overload EDA_DRAW_FRAME - const wxPoint& GetOriginAxisPosition() const; // overload EDA_DRAW_FRAME - void SetOriginAxisPosition( const wxPoint& aPosition ); // overload EDA_DRAW_FRAME - const TITLE_BLOCK& GetTitleBlock() const; // overload EDA_DRAW_FRAME - void SetTitleBlock( const TITLE_BLOCK& aTitleBlock ); // overload EDA_DRAW_FRAME - - -2012-Jan-5 UPDATE Dick Hollenbeck <dick@softplc.com> -================================================================================ -++all - Ki_PageDescr was re-written as a proper C++ class and renamed to PAGE_INFO. - It describes paper. The m_Offset field was dropped since it was only used - in HPGL plotting within EESCHEMA. PAGE_INFO instance was moved out of - BASE_SCREEN (which is on its way out) into both SCH_SCREEN and BOARD. - - diff --git a/Documentation/kicad_doxygen_logo.png b/Documentation/kicad_doxygen_logo.png deleted file mode 100644 index 68f058a7ef..0000000000 Binary files a/Documentation/kicad_doxygen_logo.png and /dev/null differ diff --git a/Documentation/notes_about_pcbnew_new_file_format.odt b/Documentation/notes_about_pcbnew_new_file_format.odt deleted file mode 100644 index 9616f2bc00..0000000000 Binary files a/Documentation/notes_about_pcbnew_new_file_format.odt and /dev/null differ diff --git a/Documentation/CMakeLists.txt b/doxygen/CMakeLists.txt similarity index 87% rename from Documentation/CMakeLists.txt rename to doxygen/CMakeLists.txt index 583e192d8b..ce6a1f4478 100644 --- a/Documentation/CMakeLists.txt +++ b/doxygen/CMakeLists.txt @@ -23,10 +23,10 @@ if( DOXYGEN_FOUND ) add_custom_target( doxygen-docs - ${CMAKE_COMMAND} -E remove_directory Documentation/doxygen + ${CMAKE_COMMAND} -E remove_directory out COMMAND ${DOXYGEN_EXECUTABLE} - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - COMMENT "building doxygen docs into directory Documentation/doxygen/html" + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/doxygen + COMMENT "building doxygen docs into directory doxygen/out" ) # Add the docset targets diff --git a/Doxyfile b/doxygen/Doxyfile similarity index 99% rename from Doxyfile rename to doxygen/Doxyfile index 250f3e24d8..fd560de06f 100644 --- a/Doxyfile +++ b/doxygen/Doxyfile @@ -51,14 +51,14 @@ PROJECT_BRIEF = # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. -PROJECT_LOGO = Documentation/kicad_doxygen_logo.png +PROJECT_LOGO = kicad_doxygen_logo.png # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. -OUTPUT_DIRECTORY = Documentation/doxygen +OUTPUT_DIRECTORY = out # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and @@ -152,7 +152,7 @@ FULL_PATH_NAMES = NO # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. -STRIP_FROM_PATH = +STRIP_FROM_PATH = ../.. # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which @@ -780,21 +780,21 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = 3d-viewer \ - bitmap2component \ - bitmaps_png \ - common \ - cvpcb \ - eeschema \ - gerbview \ - include \ - kicad \ - libs \ - pagelayout_editor \ - pcb_calculator \ - pcbnew \ - plugins \ - qa +INPUT = ../3d-viewer \ + ../bitmap2component \ + ../bitmaps_png \ + ../common \ + ../cvpcb \ + ../eeschema \ + ../gerbview \ + ../include \ + ../kicad \ + ../libs \ + ../pagelayout_editor \ + ../pcb_calculator \ + ../pcbnew \ + ../plugins \ + ../qa # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses @@ -1125,7 +1125,7 @@ HTML_FILE_EXTENSION = .html # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_HEADER = +HTML_HEADER = header.html # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard @@ -1160,7 +1160,7 @@ HTML_STYLESHEET = # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = +HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -1170,7 +1170,9 @@ HTML_EXTRA_STYLESHEET = # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_FILES = +HTML_EXTRA_FILES = doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js \ + doxygen-awesome-css/doxygen-awesome-paragraph-link.js \ + doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to diff --git a/DoxygenLayout.xml b/doxygen/DoxygenLayout.xml similarity index 100% rename from DoxygenLayout.xml rename to doxygen/DoxygenLayout.xml diff --git a/Documentation/docset/CMakeLists.txt b/doxygen/docset/CMakeLists.txt similarity index 97% rename from Documentation/docset/CMakeLists.txt rename to doxygen/docset/CMakeLists.txt index dd085c17b3..2bd2ac92c8 100644 --- a/Documentation/docset/CMakeLists.txt +++ b/doxygen/docset/CMakeLists.txt @@ -38,10 +38,10 @@ if(DOXYGEN_FOUND AND DOXYTAG2ZEALDB AND SED) set(DOCSET_BUNDLE_ID KiCad) # The source for the doxygen config - set(SRC_DOXYFILE ${CMAKE_SOURCE_DIR}/Doxyfile) + set(SRC_DOXYFILE ${CMAKE_SOURCE_DIR}/doxygen/Doxyfile) # A new doxyfile with the original, plus some extra config - set(DOCSET_DOXYFILE ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) + set(DOCSET_DOXYFILE ${CMAKE_CURRENT_BINARY_DIR}}/doxygen/Doxyfile) # Various pieces of the docset set(DOCSET_LOC ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html/${DOCSET_BUNDLE_ID}.docset) diff --git a/Documentation/docset/icon-16.png b/doxygen/docset/icon-16.png similarity index 100% rename from Documentation/docset/icon-16.png rename to doxygen/docset/icon-16.png diff --git a/doxygen/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js b/doxygen/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js new file mode 100644 index 0000000000..f2c5853f7b --- /dev/null +++ b/doxygen/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js @@ -0,0 +1,157 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +class DoxygenAwesomeDarkModeToggle extends HTMLElement { + // SVG icons from https://fonts.google.com/icons + // Licensed under the Apache 2.0 license: + // https://www.apache.org/licenses/LICENSE-2.0.html + static lightModeIcon = `<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FCBF00"><rect fill="none" height="24" width="24"/><circle cx="12" cy="12" opacity=".3" r="3"/><path d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg>` + static darkModeIcon = `<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FE9700"><rect fill="none" height="24" width="24"/><path d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27 C17.45,17.19,14.93,19,12,19c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z" opacity=".3"/><path d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg>` + static title = "Toggle Light/Dark Mode" + + static prefersLightModeInDarkModeKey = "prefers-light-mode-in-dark-mode" + static prefersDarkModeInLightModeKey = "prefers-dark-mode-in-light-mode" + + static _staticConstructor = function() { + DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.userPreference) + // Update the color scheme when the browsers preference changes + // without user interaction on the website. + window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { + DoxygenAwesomeDarkModeToggle.onSystemPreferenceChanged() + }) + // Update the color scheme when the tab is made visible again. + // It is possible that the appearance was changed in another tab + // while this tab was in the background. + document.addEventListener("visibilitychange", visibilityState => { + if (document.visibilityState === 'visible') { + DoxygenAwesomeDarkModeToggle.onSystemPreferenceChanged() + } + }); + }() + + static init() { + $(function() { + $(document).ready(function() { + const toggleButton = document.createElement('doxygen-awesome-dark-mode-toggle') + toggleButton.title = DoxygenAwesomeDarkModeToggle.title + toggleButton.updateIcon() + + window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { + toggleButton.updateIcon() + }) + document.addEventListener("visibilitychange", visibilityState => { + if (document.visibilityState === 'visible') { + toggleButton.updateIcon() + } + }); + + $(document).ready(function(){ + document.getElementById("MSearchBox").parentNode.appendChild(toggleButton) + }) + $(window).resize(function(){ + document.getElementById("MSearchBox").parentNode.appendChild(toggleButton) + }) + }) + }) + } + + constructor() { + super(); + this.onclick=this.toggleDarkMode + } + + /** + * @returns `true` for dark-mode, `false` for light-mode system preference + */ + static get systemPreference() { + return window.matchMedia('(prefers-color-scheme: dark)').matches + } + + /** + * @returns `true` for dark-mode, `false` for light-mode user preference + */ + static get userPreference() { + return (!DoxygenAwesomeDarkModeToggle.systemPreference && localStorage.getItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey)) || + (DoxygenAwesomeDarkModeToggle.systemPreference && !localStorage.getItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey)) + } + + static set userPreference(userPreference) { + DoxygenAwesomeDarkModeToggle.darkModeEnabled = userPreference + if(!userPreference) { + if(DoxygenAwesomeDarkModeToggle.systemPreference) { + localStorage.setItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey, true) + } else { + localStorage.removeItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey) + } + } else { + if(!DoxygenAwesomeDarkModeToggle.systemPreference) { + localStorage.setItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey, true) + } else { + localStorage.removeItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey) + } + } + DoxygenAwesomeDarkModeToggle.onUserPreferenceChanged() + } + + static enableDarkMode(enable) { + if(enable) { + DoxygenAwesomeDarkModeToggle.darkModeEnabled = true + document.documentElement.classList.add("dark-mode") + document.documentElement.classList.remove("light-mode") + } else { + DoxygenAwesomeDarkModeToggle.darkModeEnabled = false + document.documentElement.classList.remove("dark-mode") + document.documentElement.classList.add("light-mode") + } + } + + static onSystemPreferenceChanged() { + DoxygenAwesomeDarkModeToggle.darkModeEnabled = DoxygenAwesomeDarkModeToggle.userPreference + DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.darkModeEnabled) + } + + static onUserPreferenceChanged() { + DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.darkModeEnabled) + } + + toggleDarkMode() { + DoxygenAwesomeDarkModeToggle.userPreference = !DoxygenAwesomeDarkModeToggle.userPreference + this.updateIcon() + } + + updateIcon() { + if(DoxygenAwesomeDarkModeToggle.darkModeEnabled) { + this.innerHTML = DoxygenAwesomeDarkModeToggle.darkModeIcon + } else { + this.innerHTML = DoxygenAwesomeDarkModeToggle.lightModeIcon + } + } +} + +customElements.define("doxygen-awesome-dark-mode-toggle", DoxygenAwesomeDarkModeToggle); diff --git a/doxygen/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js b/doxygen/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js new file mode 100644 index 0000000000..7d06b348d6 --- /dev/null +++ b/doxygen/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js @@ -0,0 +1,85 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +class DoxygenAwesomeFragmentCopyButton extends HTMLElement { + constructor() { + super(); + this.onclick=this.copyContent + } + static title = "Copy to clipboard" + static copyIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>` + static successIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"/></svg>` + static successDuration = 980 + static init() { + $(function() { + $(document).ready(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const fragmentWrapper = document.createElement("div") + fragmentWrapper.className = "doxygen-awesome-fragment-wrapper" + const fragmentCopyButton = document.createElement("doxygen-awesome-fragment-copy-button") + fragmentCopyButton.innerHTML = DoxygenAwesomeFragmentCopyButton.copyIcon + fragmentCopyButton.title = DoxygenAwesomeFragmentCopyButton.title + + fragment.parentNode.replaceChild(fragmentWrapper, fragment) + fragmentWrapper.appendChild(fragment) + fragmentWrapper.appendChild(fragmentCopyButton) + + } + } + }) + }) + } + + + copyContent() { + const content = this.previousSibling.cloneNode(true) + // filter out line number from file listings + content.querySelectorAll(".lineno, .ttc").forEach((node) => { + node.remove() + }) + let textContent = content.textContent + // remove trailing newlines that appear in file listings + let numberOfTrailingNewlines = 0 + while(textContent.charAt(textContent.length - (numberOfTrailingNewlines + 1)) == '\n') { + numberOfTrailingNewlines++; + } + textContent = textContent.substring(0, textContent.length - numberOfTrailingNewlines) + navigator.clipboard.writeText(textContent); + this.classList.add("success") + this.innerHTML = DoxygenAwesomeFragmentCopyButton.successIcon + window.setTimeout(() => { + this.classList.remove("success") + this.innerHTML = DoxygenAwesomeFragmentCopyButton.copyIcon + }, DoxygenAwesomeFragmentCopyButton.successDuration); + } +} + +customElements.define("doxygen-awesome-fragment-copy-button", DoxygenAwesomeFragmentCopyButton) diff --git a/doxygen/doxygen-awesome-css/doxygen-awesome-paragraph-link.js b/doxygen/doxygen-awesome-css/doxygen-awesome-paragraph-link.js new file mode 100644 index 0000000000..6424dbd429 --- /dev/null +++ b/doxygen/doxygen-awesome-css/doxygen-awesome-paragraph-link.js @@ -0,0 +1,51 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +class DoxygenAwesomeParagraphLink { + // Icon from https://fonts.google.com/icons + // Licensed under the Apache 2.0 license: + // https://www.apache.org/licenses/LICENSE-2.0.html + static icon = `<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M17 7h-4v2h4c1.65 0 3 1.35 3 3s-1.35 3-3 3h-4v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5zm-6 8H7c-1.65 0-3-1.35-3-3s1.35-3 3-3h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-2zm-3-4h8v2H8z"/></svg>` + static title = "Permanent Link" + static init() { + $(function() { + $(document).ready(function() { + document.querySelectorAll(".contents a.anchor[id], .contents .groupheader > a[id]").forEach((node) => { + let anchorlink = document.createElement("a") + anchorlink.setAttribute("href", `#${node.getAttribute("id")}`) + anchorlink.setAttribute("title", DoxygenAwesomeParagraphLink.title) + anchorlink.classList.add("anchorlink") + node.classList.add("anchor") + anchorlink.innerHTML = DoxygenAwesomeParagraphLink.icon + node.parentElement.appendChild(anchorlink) + }) + }) + }) + } +} diff --git a/doxygen/doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css b/doxygen/doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css new file mode 100644 index 0000000000..b988b6f05e --- /dev/null +++ b/doxygen/doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css @@ -0,0 +1,40 @@ + +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +@media screen and (min-width: 768px) { + + #MSearchBox { + width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - var(--searchbar-height) - 1px); + } + + #MSearchField { + width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 66px - var(--searchbar-height)); + } +} diff --git a/doxygen/doxygen-awesome-css/doxygen-awesome-sidebar-only.css b/doxygen/doxygen-awesome-css/doxygen-awesome-sidebar-only.css new file mode 100644 index 0000000000..b5c4e7cbd6 --- /dev/null +++ b/doxygen/doxygen-awesome-css/doxygen-awesome-sidebar-only.css @@ -0,0 +1,113 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + */ + +html { + /* side nav width. MUST be = `TREEVIEW_WIDTH`. + * Make sure it is wide enough to contain the page title (logo + title + version) + */ + --side-nav-fixed-width: 335px; + --menu-display: none; + + --top-height: 120px; +} + +#projectname { + white-space: nowrap; +} + + +@media screen and (min-width: 768px) { + html { + --searchbar-background: var(--page-background-color); + } + + #side-nav { + min-width: var(--side-nav-fixed-width); + max-width: var(--side-nav-fixed-width); + top: var(--top-height); + overflow: visible; + } + + #nav-tree, #side-nav { + height: calc(100vh - var(--top-height)) !important; + } + + #nav-tree { + padding: 0; + } + + #top { + display: block; + border-bottom: none; + height: var(--top-height); + margin-bottom: calc(0px - var(--top-height)); + max-width: var(--side-nav-fixed-width); + overflow: hidden; + background: var(--side-nav-background); + } + #main-nav { + float: left; + padding-right: 0; + } + + .ui-resizable-handle { + cursor: default; + width: 1px !important; + box-shadow: 0 calc(-2 * var(--top-height)) 0 0 var(--separator-color); + } + + #nav-path { + position: fixed; + right: 0; + left: var(--side-nav-fixed-width); + bottom: 0; + width: auto; + } + + #doc-content { + height: calc(100vh - 31px) !important; + padding-bottom: calc(3 * var(--spacing-large)); + padding-top: calc(var(--top-height) - 80px); + box-sizing: border-box; + margin-left: var(--side-nav-fixed-width) !important; + } + + #MSearchBox { + width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium))); + } + + #MSearchField { + width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 65px); + } + + #MSearchResultsWindow { + left: var(--spacing-medium) !important; + right: auto; + } +} diff --git a/doxygen/doxygen-awesome-css/doxygen-awesome.css b/doxygen/doxygen-awesome-css/doxygen-awesome.css new file mode 100644 index 0000000000..4e4dee5b08 --- /dev/null +++ b/doxygen/doxygen-awesome-css/doxygen-awesome.css @@ -0,0 +1,2137 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +html { + /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */ + --primary-color: #1779c4; + --primary-dark-color: #335c80; + --primary-light-color: #70b1e9; + + /* page base colors */ + --page-background-color: white; + --page-foreground-color: #2f4153; + --page-secondary-foreground-color: #637485; + + /* color for all separators on the website: hr, borders, ... */ + --separator-color: #dedede; + + /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */ + --border-radius-large: 8px; + --border-radius-small: 4px; + --border-radius-medium: 6px; + + /* default spacings. Most compontest reference these values for spacing, to provide uniform spacing on the page. */ + --spacing-small: 5px; + --spacing-medium: 10px; + --spacing-large: 16px; + + /* default box shadow used for raising an element above the normal content. Used in dropdowns, Searchresult, ... */ + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); + + --odd-color: rgba(0,0,0,.028); + + /* font-families. will affect all text on the website + * font-family: the normal font for text, headlines, menus + * font-family-monospace: used for preformatted text in memtitle, code, fragments + */ + --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif; + --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + + /* font sizes */ + --page-font-size: 15.6px; + --navigation-font-size: 14.4px; + --code-font-size: 14px; /* affects code, fragment */ + --title-font-size: 22px; + + /* content text properties. These only affect the page content, not the navigation or any other ui elements */ + --content-line-height: 27px; + /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/ + --content-maxwidth: 1000px; + + /* colors for various content boxes: @warning, @note, @deprecated @bug */ + --warning-color: #f8d1cc; + --warning-color-dark: #b61825; + --warning-color-darker: #75070f; + --note-color: #faf3d8; + --note-color-dark: #f3a600; + --note-color-darker: #5f4204; + --todo-color: #e4f3ff; + --todo-color-dark: #1879C4; + --todo-color-darker: #274a5c; + --deprecated-color: #ecf0f3; + --deprecated-color-dark: #5b6269; + --deprecated-color-darker: #43454a; + --bug-color: #e4dafd; + --bug-color-dark: #5b2bdd; + --bug-color-darker: #2a0d72; + --invariant-color: #d8f1e3; + --invariant-color-dark: #44b86f; + --invariant-color-darker: #265532; + + /* blockquote colors */ + --blockquote-background: #f8f9fa; + --blockquote-foreground: #636568; + + /* table colors */ + --tablehead-background: #f1f1f1; + --tablehead-foreground: var(--page-foreground-color); + + /* menu-display: block | none + * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible. + * `GENERATE_TREEVIEW` MUST be enabled! + */ + --menu-display: block; + + --menu-focus-foreground: var(--page-background-color); + --menu-focus-background: var(--primary-color); + --menu-selected-background: rgba(0,0,0,.05); + + + --header-background: var(--page-background-color); + --header-foreground: var(--page-foreground-color); + + /* searchbar colors */ + --searchbar-background: var(--side-nav-background); + --searchbar-foreground: var(--page-foreground-color); + + /* searchbar size + * (`searchbar-width` is only applied on screens >= 768px. + * on smaller screens the searchbar will always fill the entire screen width) */ + --searchbar-height: 33px; + --searchbar-width: 210px; + --searchbar-border-radius: var(--searchbar-height); + + /* code block colors */ + --code-background: #f5f5f5; + --code-foreground: var(--page-foreground-color); + + /* fragment colors */ + --fragment-background: #F8F9FA; + --fragment-foreground: #37474F; + --fragment-keyword: #bb6bb2; + --fragment-keywordtype: #8258b3; + --fragment-keywordflow: #d67c3b; + --fragment-token: #438a59; + --fragment-comment: #969696; + --fragment-link: #5383d6; + --fragment-preprocessor: #46aaa5; + --fragment-linenumber-color: #797979; + --fragment-linenumber-background: #f4f4f5; + --fragment-linenumber-border: #e3e5e7; + --fragment-lineheight: 20px; + + /* sidebar navigation (treeview) colors */ + --side-nav-background: #fbfbfb; + --side-nav-foreground: var(--page-foreground-color); + --side-nav-arrow-opacity: 0; + --side-nav-arrow-hover-opacity: 0.9; + + --toc-background: var(--side-nav-background); + --toc-foreground: var(--side-nav-foreground); + + /* height of an item in any tree / collapsable table */ + --tree-item-height: 30px; + + --memname-font-size: var(--code-font-size); + --memtitle-font-size: 18px; + + --webkit-scrollbar-size: 7px; + --webkit-scrollbar-padding: 4px; + --webkit-scrollbar-color: var(--separator-color); +} + +@media screen and (max-width: 767px) { + html { + --page-font-size: 16px; + --navigation-font-size: 16px; + --code-font-size: 15px; /* affects code, fragment */ + --title-font-size: 22px; + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #2e1917; + --warning-color-dark: #ad2617; + --warning-color-darker: #f5b1aa; + --note-color: #3b2e04; + --note-color-dark: #f1b602; + --note-color-darker: #ceb670; + --todo-color: #163750; + --todo-color-dark: #1982D2; + --todo-color-darker: #dcf0fa; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2a2536; + --bug-color-dark: #7661b3; + --bug-color-darker: #ae9ed6; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; + } +} + +/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */ +html.dark-mode { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #2e1917; + --warning-color-dark: #ad2617; + --warning-color-darker: #f5b1aa; + --note-color: #3b2e04; + --note-color-dark: #f1b602; + --note-color-darker: #ceb670; + --todo-color: #163750; + --todo-color-dark: #1982D2; + --todo-color-darker: #dcf0fa; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2a2536; + --bug-color-dark: #7661b3; + --bug-color-darker: #ae9ed6; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; +} + +body { + color: var(--page-foreground-color); + background-color: var(--page-background-color); + font-size: var(--page-font-size); +} + +body, table, div, p, dl, #nav-tree .label, .title, .sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname, .SelectItem, #MSearchField, .navpath li.navelem a, .navpath li.navelem a:hover { + font-family: var(--font-family); +} + +h1, h2, h3, h4, h5 { + margin-top: .9em; + font-weight: 600; + line-height: initial; +} + +p, div, table, dl { + font-size: var(--page-font-size); +} + +a:link, a:visited, a:hover, a:focus, a:active { + color: var(--primary-color) !important; + font-weight: 500; +} + +a.anchor { + scroll-margin-top: var(--spacing-large); +} + +/* + Title and top navigation + */ + +#top { + background: var(--header-background); + border-bottom: 1px solid var(--separator-color); +} + +@media screen and (min-width: 768px) { + #top { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + } +} + +#main-nav { + flex-grow: 5; + padding: var(--spacing-small) var(--spacing-medium); +} + +#titlearea { + width: auto; + padding: var(--spacing-medium) var(--spacing-large); + background: none; + color: var(--header-foreground); + border-bottom: none; +} + +@media screen and (max-width: 767px) { + #titlearea { + padding-bottom: var(--spacing-small); + } +} + +#titlearea table tbody tr { + height: auto !important; +} + +#projectname { + font-size: var(--title-font-size); + font-weight: 600; +} + +#projectnumber { + font-family: inherit; + font-size: 60%; +} + +#projectbrief { + font-family: inherit; + font-size: 80%; +} + +#projectlogo { + vertical-align: middle; +} + +#projectlogo img { + max-height: calc(var(--title-font-size) * 2); + margin-right: var(--spacing-small); +} + +.sm-dox, .tabs, .tabs2, .tabs3 { + background: none; + padding: 0; +} + +.tabs, .tabs2, .tabs3 { + border-bottom: 1px solid var(--separator-color); + margin-bottom: -1px; +} + +@media screen and (max-width: 767px) { + .sm-dox a span.sub-arrow { + background: var(--code-background); + } + + #main-menu a.has-submenu span.sub-arrow { + color: var(--page-secondary-foreground-color); + border-radius: var(--border-radius-medium); + } + + #main-menu a.has-submenu:hover span.sub-arrow { + color: var(--page-foreground-color); + } +} + +@media screen and (min-width: 768px) { + .sm-dox li, .tablist li { + display: var(--menu-display); + } + + .sm-dox a span.sub-arrow { + border-color: var(--header-foreground) transparent transparent transparent; + } + + .sm-dox a:hover span.sub-arrow { + border-color: var(--menu-focus-foreground) transparent transparent transparent; + } + + .sm-dox ul a span.sub-arrow { + border-color: transparent transparent transparent var(--page-foreground-color); + } + + .sm-dox ul a:hover span.sub-arrow { + border-color: transparent transparent transparent var(--menu-focus-foreground); + } +} + +.sm-dox ul { + background: var(--page-background-color); + box-shadow: var(--box-shadow); + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium) !important; + padding: var(--spacing-small); + animation: ease-out 150ms slideInMenu; +} + +@keyframes slideInMenu { + from { + opacity: 0; + transform: translate(0px, -2px); + } + + to { + opacity: 1; + transform: translate(0px, 0px); + } +} + +.sm-dox ul a { + color: var(--page-foreground-color) !important; + background: var(--page-background-color); + font-size: var(--navigation-font-size); +} + +.sm-dox>li>ul:after { + border-bottom-color: var(--page-background-color) !important; +} + +.sm-dox>li>ul:before { + border-bottom-color: var(--separator-color) !important; +} + +.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus { + font-size: var(--navigation-font-size) !important; + color: var(--menu-focus-foreground) !important; + text-shadow: none; + background-color: var(--menu-focus-background); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a { + text-shadow: none; + background: transparent; + background-image: none !important; + color: var(--header-foreground) !important; + font-weight: normal; + font-size: var(--navigation-font-size); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a:focus { + outline: auto; +} + +.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover { + text-shadow: none; + font-weight: normal; + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; + border-radius: var(--border-radius-small) !important; + font-size: var(--navigation-font-size); +} + +.tablist li.current { + border-radius: var(--border-radius-small); + background: var(--menu-selected-background); +} + +.tablist li { + margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small); +} + +.tablist a { + padding: 0 var(--spacing-large); +} + + +/* + Search box + */ + +#MSearchBox { + height: var(--searchbar-height); + background: var(--searchbar-background); + border-radius: var(--searchbar-border-radius); + border: 1px solid var(--separator-color); + overflow: hidden; + width: var(--searchbar-width); + position: relative; + box-shadow: none; + display: block; + margin-top: 0; +} + +.left #MSearchSelect { + left: 0; + user-select: none; + padding-left: 8px; +} + +.left #MSearchSelect[src$=".png"] { + padding-left: 0 +} + +.SelectionMark { + user-select: none; +} + +.tabs .left #MSearchSelect { + padding-left: 0; +} + +.tabs #MSearchBox { + position: absolute; + right: var(--spacing-medium); +} + +@media screen and (max-width: 767px) { + .tabs #MSearchBox { + position: relative; + right: 0; + margin-left: var(--spacing-medium); + margin-top: 0; + } +} + +#MSearchSelectWindow, #MSearchResultsWindow { + z-index: 9999; +} + +#MSearchBox.MSearchBoxActive { + border-color: var(--primary-color); + box-shadow: inset 0 0 0 1px var(--primary-color); +} + +#main-menu > li:last-child { + margin-right: 0; +} + +@media screen and (max-width: 767px) { + #main-menu > li:last-child { + height: 50px; + } +} + +#MSearchField { + font-size: var(--navigation-font-size); + height: calc(var(--searchbar-height) - 2px); + background: transparent; + width: calc(var(--searchbar-width) - 64px); +} + +.MSearchBoxActive #MSearchField { + color: var(--searchbar-foreground); +} + +#MSearchSelect { + top: calc(calc(var(--searchbar-height) / 2) - 11px); +} + +#MSearchBox span.left, #MSearchBox span.right { + background: none; + background-image: none; +} + +#MSearchBox span.right { + padding-top: calc(calc(var(--searchbar-height) / 2) - 12px); + position: absolute; + right: var(--spacing-small); +} + +.tabs #MSearchBox span.right { + top: calc(calc(var(--searchbar-height) / 2) - 12px); +} + +@keyframes slideInSearchResults { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } +} + +#MSearchResultsWindow { + left: auto !important; + right: var(--spacing-medium); + border-radius: var(--border-radius-large); + border: 1px solid var(--separator-color); + transform: translate(0, 20px); + box-shadow: var(--box-shadow); + animation: ease-out 280ms slideInSearchResults; + background: var(--page-background-color); +} + +iframe#MSearchResults { + margin: 4px; +} + +iframe { + color-scheme: normal; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) iframe#MSearchResults { + filter: invert() hue-rotate(180deg); + } +} + +html.dark-mode iframe#MSearchResults { + filter: invert() hue-rotate(180deg); +} + +#MSearchSelectWindow { + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + box-shadow: var(--box-shadow); + background: var(--page-background-color); + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); +} + +#MSearchSelectWindow a.SelectItem { + font-size: var(--navigation-font-size); + line-height: var(--content-line-height); + margin: 0 var(--spacing-small); + border-radius: var(--border-radius-small); + color: var(--page-foreground-color) !important; + font-weight: normal; +} + +#MSearchSelectWindow a.SelectItem:hover { + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; +} + +@media screen and (max-width: 767px) { + #MSearchBox { + margin-top: var(--spacing-medium); + margin-bottom: var(--spacing-medium); + width: calc(100vw - 30px); + } + + #main-menu > li:last-child { + float: none !important; + } + + #MSearchField { + width: calc(100vw - 110px); + } + + @keyframes slideInSearchResultsMobile { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } + } + + #MSearchResultsWindow { + left: var(--spacing-medium) !important; + right: var(--spacing-medium); + overflow: auto; + transform: translate(0, 20px); + animation: ease-out 280ms slideInSearchResultsMobile; + } + + /* + * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2 + */ + label.main-menu-btn ~ #searchBoxPos1 { + top: 3px !important; + right: 6px !important; + left: 45px; + display: flex; + } + + label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox { + margin-top: 0; + margin-bottom: 0; + flex-grow: 2; + float: left; + } +} + +/* + Tree view + */ + +#side-nav { + padding: 0 !important; + background: var(--side-nav-background); +} + +@media screen and (max-width: 767px) { + #side-nav { + display: none; + } + + #doc-content { + margin-left: 0 !important; + } +} + +#nav-tree { + background: transparent; +} + +#nav-tree .label { + font-size: var(--navigation-font-size); +} + +#nav-tree .item { + height: var(--tree-item-height); + line-height: var(--tree-item-height); +} + +#nav-sync { + bottom: 12px; + right: 12px; + top: auto !important; + user-select: none; +} + +#nav-tree .selected { + text-shadow: none; + background-image: none; + background-color: transparent; + position: relative; +} + +#nav-tree .selected::after { + content: ""; + position: absolute; + top: 1px; + bottom: 1px; + left: 0; + width: 4px; + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + background: var(--primary-color); +} + + +#nav-tree a { + color: var(--side-nav-foreground) !important; + font-weight: normal; +} + +#nav-tree a:focus { + outline-style: auto; +} + +#nav-tree .arrow { + opacity: var(--side-nav-arrow-opacity); +} + +.arrow { + color: inherit; + cursor: pointer; + font-size: 45%; + vertical-align: middle; + margin-right: 2px; + font-family: serif; + height: auto; + text-align: right; +} + +#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow { + opacity: var(--side-nav-arrow-hover-opacity); +} + +#nav-tree .selected a { + color: var(--primary-color) !important; + font-weight: bolder; + font-weight: 600; +} + +.ui-resizable-e { + background: var(--separator-color); + width: 1px; +} + +/* + Contents + */ + +div.header { + border-bottom: 1px solid var(--separator-color); + background-color: var(--page-background-color); + background-image: none; +} + +div.contents, div.header .title, div.header .summary { + max-width: var(--content-maxwidth); +} + +div.contents, div.header .title { + line-height: initial; + margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto; +} + +div.header .summary { + margin: var(--spacing-medium) auto 0 auto; +} + +div.headertitle { + padding: 0; +} + +div.header .title { + font-weight: 600; + font-size: 210%; + padding: var(--spacing-medium) var(--spacing-large); + word-break: break-word; +} + +div.header .summary { + width: auto; + display: block; + float: none; + padding: 0 var(--spacing-large); +} + +td.memSeparator { + border-color: var(--separator-color); +} + +span.mlabel { + background: var(--primary-color); + border: none; + padding: 4px 9px; + border-radius: 12px; + margin-right: var(--spacing-medium); +} + +span.mlabel:last-of-type { + margin-right: 2px; +} + +div.contents { + padding: 0 var(--spacing-large); +} + +div.contents p, div.contents li { + line-height: var(--content-line-height); +} + +div.contents div.dyncontent { + margin: var(--spacing-medium) 0; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) div.contents div.dyncontent img, + html:not(.light-mode) div.contents center img, + html:not(.light-mode) div.contents table img, + html:not(.light-mode) div.contents div.dyncontent iframe, + html:not(.light-mode) div.contents center iframe, + html:not(.light-mode) div.contents table iframe { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode div.contents div.dyncontent img, +html.dark-mode div.contents center img, +html.dark-mode div.contents table img, +html.dark-mode div.contents div.dyncontent iframe, +html.dark-mode div.contents center iframe, +html.dark-mode div.contents table iframe { + filter: hue-rotate(180deg) invert(); +} + +h2.groupheader { + border-bottom: 0px; + color: var(--page-foreground-color); + box-shadow: + 100px 0 var(--page-background-color), + -100px 0 var(--page-background-color), + 100px 0.75px var(--separator-color), + -100px 0.75px var(--separator-color), + 500px 0 var(--page-background-color), + -500px 0 var(--page-background-color), + 500px 0.75px var(--separator-color), + -500px 0.75px var(--separator-color), + 1500px 0 var(--page-background-color), + -1500px 0 var(--page-background-color), + 1500px 0.75px var(--separator-color), + -1500px 0.75px var(--separator-color), + 2000px 0 var(--page-background-color), + -2000px 0 var(--page-background-color), + 2000px 0.75px var(--separator-color), + -2000px 0.75px var(--separator-color); +} + +blockquote { + margin: 0 var(--spacing-medium) 0 var(--spacing-medium); + padding: var(--spacing-small) var(--spacing-large); + background: var(--blockquote-background); + color: var(--blockquote-foreground); + border-left: 0; + overflow: visible; + border-radius: var(--border-radius-medium); + overflow: visible; + position: relative; +} + +blockquote::before, blockquote::after { + font-weight: bold; + font-family: serif; + font-size: 360%; + opacity: .15; + position: absolute; +} + +blockquote::before { + content: "“"; + left: -10px; + top: 4px; +} + +blockquote::after { + content: "”"; + right: -8px; + bottom: -25px; +} + +blockquote p { + margin: var(--spacing-small) 0 var(--spacing-medium) 0; +} +.paramname { + font-weight: 600; + color: var(--primary-dark-color); +} + +.paramname > code { + border: 0; +} + +table.params .paramname { + font-weight: 600; + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + padding-right: var(--spacing-small); +} + +.glow { + text-shadow: 0 0 15px var(--primary-light-color) !important; +} + +.alphachar a { + color: var(--page-foreground-color); +} + +/* + Table of Contents + */ + +div.toc { + z-index: 10; + position: relative; + background-color: var(--toc-background); + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + box-shadow: var(--box-shadow); + padding: 0 var(--spacing-large); + margin: 0 0 var(--spacing-medium) var(--spacing-medium); +} + +div.toc h3 { + color: var(--toc-foreground); + font-size: var(--navigation-font-size); + margin: var(--spacing-large) 0; +} + +div.toc li { + font-size: var(--navigation-font-size); + padding: 0; + background: none; +} + +div.toc li:before { + content: '↓'; + font-weight: 800; + font-family: var(--font-family); + margin-right: var(--spacing-small); + color: var(--toc-foreground); + opacity: .4; +} + +div.toc ul li.level1 { + margin: 0; +} + +div.toc ul li.level2, div.toc ul li.level3 { + margin-top: 0; +} + + +@media screen and (max-width: 767px) { + div.toc { + float: none; + width: auto; + margin: 0 0 var(--spacing-medium) 0; + } +} + +/* + Code & Fragments + */ + +code, div.fragment, pre.fragment { + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + overflow: hidden; +} + +code { + display: inline; + background: var(--code-background); + color: var(--code-foreground); + padding: 2px 6px; + word-break: break-word; +} + +div.fragment, pre.fragment { + margin: var(--spacing-medium) 0; + padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large); + background: var(--fragment-background); + color: var(--fragment-foreground); + overflow-x: auto; +} + +@media screen and (max-width: 767px) { + div.fragment, pre.fragment { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: 0; + } + + .contents > div.fragment, + .textblock > div.fragment, + .textblock > pre.fragment, + .contents > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + border-radius: 0; + border-left: 0; + } + + .textblock li > .fragment, + .textblock li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + } + + .memdoc li > .fragment, + .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + } + + .textblock ul, .memdoc ul { + overflow: initial; + } + + .memdoc > div.fragment, + .memdoc > pre.fragment, + dl dd > div.fragment, + dl dd pre.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment, + dl dd > .doxygen-awesome-fragment-wrapper > div.fragment, + dl dd .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + border-radius: 0; + border-left: 0; + } +} + +code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size) !important; +} + +div.line:after { + margin-right: var(--spacing-medium); +} + +div.fragment .line, pre.fragment { + white-space: pre; + word-wrap: initial; + line-height: var(--fragment-lineheight); +} + +div.fragment span.keyword { + color: var(--fragment-keyword); +} + +div.fragment span.keywordtype { + color: var(--fragment-keywordtype); +} + +div.fragment span.keywordflow { + color: var(--fragment-keywordflow); +} + +div.fragment span.stringliteral { + color: var(--fragment-token) +} + +div.fragment span.comment { + color: var(--fragment-comment); +} + +div.fragment a.code { + color: var(--fragment-link) !important; +} + +div.fragment span.preprocessor { + color: var(--fragment-preprocessor); +} + +div.fragment span.lineno { + display: inline-block; + width: 27px; + border-right: none; + background: var(--fragment-linenumber-background); + color: var(--fragment-linenumber-color); +} + +div.fragment span.lineno a { + background: none; + color: var(--fragment-link) !important; +} + +div.fragment .line:first-child .lineno { + box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border); +} + +/* + dl warning, attention, note, deprecated, bug, ... + */ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.todo, dl.remark { + padding: var(--spacing-medium); + margin: var(--spacing-medium) 0; + color: var(--page-background-color); + overflow: hidden; + margin-left: 0; + border-radius: var(--border-radius-small); +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color); + border-left: 8px solid var(--warning-color-dark); + color: var(--warning-color-darker); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-dark); +} + +dl.note, dl.remark { + background: var(--note-color); + border-left: 8px solid var(--note-color-dark); + color: var(--note-color-darker); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-dark); +} + +dl.todo { + background: var(--todo-color); + border-left: 8px solid var(--todo-color-dark); + color: var(--todo-color-darker); +} + +dl.todo dt { + color: var(--todo-color-dark); +} + +dl.bug dt a { + color: var(--todo-color-dark) !important; +} + +dl.bug { + background: var(--bug-color); + border-left: 8px solid var(--bug-color-dark); + color: var(--bug-color-darker); +} + +dl.bug dt a { + color: var(--bug-color-dark) !important; +} + +dl.deprecated { + background: var(--deprecated-color); + border-left: 8px solid var(--deprecated-color-dark); + color: var(--deprecated-color-darker); +} + +dl.deprecated dt a { + color: var(--deprecated-color-dark) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre { + background: var(--invariant-color); + border-left: 8px solid var(--invariant-color-dark); + color: var(--invariant-color-darker); +} + +dl.invariant dt, dl.pre dt { + color: var(--invariant-color-dark); +} + +/* + memitem + */ + +div.memdoc, div.memproto, h2.memtitle { + box-shadow: none; + background-image: none; + border: none; +} + +div.memdoc { + padding: 0 var(--spacing-medium); + background: var(--page-background-color); +} + +h2.memtitle, div.memitem { + border: 1px solid var(--separator-color); + box-shadow: var(--box-shadow); +} + +h2.memtitle { + box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow); +} + +div.memitem { + transition: none; +} + +div.memproto, h2.memtitle { + background: var(--fragment-background); + text-shadow: none; +} + +h2.memtitle { + font-weight: 500; + font-size: var(--memtitle-font-size); + font-family: var(--font-family-monospace); + border-bottom: none; + border-top-left-radius: var(--border-radius-medium); + border-top-right-radius: var(--border-radius-medium); + word-break: break-all; + position: relative; +} + +h2.memtitle:after { + content: ""; + display: block; + background: var(--fragment-background); + height: var(--spacing-medium); + bottom: calc(0px - var(--spacing-medium)); + left: 0; + right: -14px; + position: absolute; + border-top-right-radius: var(--border-radius-medium); +} + +h2.memtitle > span.permalink { + font-size: inherit; +} + +h2.memtitle > span.permalink > a { + text-decoration: none; + padding-left: 3px; + margin-right: -4px; + user-select: none; + display: inline-block; + margin-top: -6px; +} + +h2.memtitle > span.permalink > a:hover { + color: var(--primary-dark-color) !important; +} + +a:target + h2.memtitle, a:target + h2.memtitle + div.memitem { + border-color: var(--primary-light-color); +} + +div.memitem { + border-top-right-radius: var(--border-radius-medium); + border-bottom-right-radius: var(--border-radius-medium); + border-bottom-left-radius: var(--border-radius-medium); + overflow: hidden; + display: block !important; +} + +div.memdoc { + border-radius: 0; +} + +div.memproto { + border-radius: 0 var(--border-radius-small) 0 0; + overflow: auto; + border-bottom: 1px solid var(--separator-color); + padding: var(--spacing-medium); + margin-bottom: -1px; +} + +div.memtitle { + border-top-right-radius: var(--border-radius-medium); + border-top-left-radius: var(--border-radius-medium); +} + +div.memproto table.memname { + font-family: var(--font-family-monospace); + color: var(--page-foreground-color); + font-size: var(--memname-font-size); +} + +div.memproto div.memtemplate { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--memname-font-size); + margin-left: 2px; +} + +table.mlabels, table.mlabels > tbody { + display: block; +} + +td.mlabels-left { + width: auto; +} + +td.mlabels-right { + margin-top: 3px; + position: sticky; + left: 0; +} + +table.mlabels > tbody > tr:first-child { + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +.memname, .memitem span.mlabels { + margin: 0 +} + +/* + reflist + */ + +dl.reflist { + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-medium); + border: 1px solid var(--separator-color); + overflow: hidden; + padding: 0; +} + + +dl.reflist dt, dl.reflist dd { + box-shadow: none; + text-shadow: none; + background-image: none; + border: none; + padding: 12px; +} + + +dl.reflist dt { + font-weight: 500; + border-radius: 0; + background: var(--code-background); + border-bottom: 1px solid var(--separator-color); + color: var(--page-foreground-color) +} + + +dl.reflist dd { + background: none; +} + +/* + Table + */ + +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) { + display: inline-block; + max-width: 100%; + } + +.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); +} + +table.markdownTable, table.fieldtable { + border: none; + margin: var(--spacing-medium) 0; + box-shadow: 0 0 0 1px var(--separator-color); + border-radius: var(--border-radius-small); +} + +table.fieldtable { + width: 100%; +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background: var(--tablehead-background); + color: var(--tablehead-foreground); + font-weight: 600; + font-size: var(--page-font-size); +} + +th.markdownTableHeadLeft:first-child, th.markdownTableHeadRight:first-child, th.markdownTableHeadCenter:first-child, th.markdownTableHeadNone:first-child { + border-top-left-radius: var(--border-radius-small); +} + +th.markdownTableHeadLeft:last-child, th.markdownTableHeadRight:last-child, th.markdownTableHeadCenter:last-child, th.markdownTableHeadNone:last-child { + border-top-right-radius: var(--border-radius-small); +} + +table.markdownTable td, table.markdownTable th, table.fieldtable dt { + border: none; + border-right: 1px solid var(--separator-color); + padding: var(--spacing-small) var(--spacing-medium); +} + +table.markdownTable td:last-child, table.markdownTable th:last-child, table.fieldtable dt:last-child { + border: none; +} + +table.markdownTable tr, table.markdownTable tr { + border-bottom: 1px solid var(--separator-color); +} + +table.markdownTable tr:last-child, table.markdownTable tr:last-child { + border-bottom: none; +} + +table.fieldtable th { + font-size: var(--page-font-size); + font-weight: 600; + background-image: none; + background-color: var(--tablehead-background); + color: var(--tablehead-foreground); + border-bottom: 1px solid var(--separator-color); +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + border-bottom: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--separator-color); +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--primary-light-color); + box-shadow: 0 0 15px var(--primary-light-color); +} + +table.memberdecls { + display: block; +} + +table.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); +} + +table.memberdecls tr[class^='memitem'] .memTemplParams { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + color: var(--primary-dark-color); +} + +table.memberdecls .memItemLeft, +table.memberdecls .memItemRight, +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight, +table.memberdecls .memTemplParams { + transition: none; + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + background-color: var(--fragment-background); +} + +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight { + padding-top: 2px; +} + +table.memberdecls .memTemplParams { + border-bottom: 0; + border-left: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + padding-bottom: 0; +} + +table.memberdecls .memTemplItemLeft { + border-radius: 0 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + border-top: 0; +} + +table.memberdecls .memTemplItemRight { + border-radius: 0 0 var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + border-top: 0; +} + +table.memberdecls .memItemLeft { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + padding-left: var(--spacing-medium); + padding-right: 0; +} + +table.memberdecls .memItemRight { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-right: var(--spacing-medium); + padding-left: 0; + +} + +table.memberdecls .mdescLeft, table.memberdecls .mdescRight { + background: none; + color: var(--page-foreground-color); + padding: var(--spacing-small) 0; +} + +table.memberdecls .memSeparator { + background: var(--page-background-color); + height: var(--spacing-large); + border: 0; + transition: none; +} + +table.memberdecls .groupheader { + margin-bottom: var(--spacing-large); +} + +table.memberdecls .inherit_header td { + padding: 0 0 var(--spacing-medium) 0; + text-indent: -12px; + line-height: 1.5em; + color: var(--page-secondary-foreground-color); +} + +@media screen and (max-width: 767px) { + + table.memberdecls .memItemLeft, + table.memberdecls .memItemRight, + table.memberdecls .mdescLeft, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemLeft, + table.memberdecls .memTemplItemRight, + table.memberdecls .memTemplParams { + display: block; + text-align: left; + padding-left: var(--spacing-large); + margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large)); + border-right: none; + border-left: none; + border-radius: 0; + } + + table.memberdecls .memItemLeft, + table.memberdecls .mdescLeft, + table.memberdecls .memTemplItemLeft { + border-bottom: 0; + padding-bottom: 0; + } + + table.memberdecls .memTemplItemLeft { + padding-top: 0; + } + + table.memberdecls .mdescLeft { + margin-top: calc(0px - var(--page-font-size)); + } + + table.memberdecls .memItemRight, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemRight { + border-top: 0; + padding-top: 0; + padding-right: var(--spacing-large); + overflow-x: auto; + } + + table.memberdecls tr[class^='memitem']:not(.inherit) { + display: block; + width: calc(100vw - 2 * var(--spacing-large)); + } + + table.memberdecls .mdescRight { + color: var(--page-foreground-color); + } + + table.memberdecls tr.inherit { + visibility: hidden; + } + + table.memberdecls tr[style="display: table-row;"] { + display: block !important; + visibility: visible; + width: calc(100vw - 2 * var(--spacing-large)); + animation: fade .5s; + } + + @keyframes fade { + 0% { + opacity: 0; + max-height: 0; + } + + 100% { + opacity: 1; + max-height: 200px; + } + } +} + + +/* + Horizontal Rule + */ + +hr { + margin-top: var(--spacing-large); + margin-bottom: var(--spacing-large); + height: 1px; + background-color: var(--separator-color); + border: 0; +} + +.contents hr { + box-shadow: 100px 0 0 var(--separator-color), + -100px 0 0 var(--separator-color), + 500px 0 0 var(--separator-color), + -500px 0 0 var(--separator-color), + 1500px 0 0 var(--separator-color), + -1500px 0 0 var(--separator-color), + 2000px 0 0 var(--separator-color), + -2000px 0 0 var(--separator-color); +} + +.contents img, .contents .center, .contents center, .contents div.image object { + max-width: 100%; + overflow: auto; +} + +@media screen and (max-width: 767px) { + .contents .dyncontent > .center, .contents > center { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); + } +} + +/* + Directories + */ +div.directory { + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + width: auto; +} + +table.directory { + font-family: var(--font-family); + font-size: var(--page-font-size); + font-weight: normal; + width: 100%; +} + +table.directory td.entry { + padding: var(--spacing-small); +} + +table.directory td.desc { + min-width: 250px; +} + +table.directory tr.even { + background-color: var(--odd-color); +} + +.icona { + width: auto; + height: auto; + margin: 0 var(--spacing-small); +} + +.icon { + background: var(--primary-color); + width: 18px; + height: 18px; + line-height: 18px; +} + +.iconfopen, .icondoc, .iconfclosed { + background-position: center; + margin-bottom: 0; +} + +.icondoc { + filter: saturate(0.2); +} + +@media screen and (max-width: 767px) { + div.directory { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode .iconfopen, html.dark-mode .iconfclosed { + filter: hue-rotate(180deg) invert(); +} + +/* + Class list + */ + +.classindex dl.odd { + background: var(--odd-color); + border-radius: var(--border-radius-small); +} + +/* + Class Index Doxygen 1.8 +*/ + +table.classindex { + margin-left: 0; + margin-right: 0; + width: 100%; +} + +table.classindex table div.ah { + background-image: none; + background-color: initial; + border-color: var(--separator-color); + color: var(--page-foreground-color); + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-large); + padding: var(--spacing-small); +} + +div.qindex { + background-color: var(--odd-color); + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + padding: var(--spacing-small) 0; +} + +/* + Footer and nav-path + */ + +#nav-path { + width: 100%; +} + +#nav-path ul { + background-image: none; + background: var(--page-background-color); + border: none; + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + border-bottom: 0; + box-shadow: 0 0.75px 0 var(--separator-color); + font-size: var(--navigation-font-size); +} + +img.footer { + width: 60px; +} + +.navpath li.footer { + color: var(--page-secondary-foreground-color); +} + +address.footer { + color: var(--page-secondary-foreground-color); + margin-bottom: var(--spacing-large); +} + +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; +} + +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--primary-color) !important; +} + +.navpath li.navelem b { + color: var(--primary-dark-color); + font-weight: 500; +} + +li.navelem { + padding: 0; + margin-left: -8px; +} + +li.navelem:first-child { + margin-left: var(--spacing-large); +} + +li.navelem:first-child:before { + display: none; +} + +#nav-path li.navelem:after { + content: ''; + border: 5px solid var(--page-background-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(4.2); + z-index: 10; + margin-left: 6px; +} + +#nav-path li.navelem:before { + content: ''; + border: 5px solid var(--separator-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(3.2); + margin-right: var(--spacing-small); +} + +.navpath li.navelem a:hover { + color: var(--primary-color); +} + +/* + Scrollbars for Webkit +*/ + +#nav-tree::-webkit-scrollbar, +div.fragment::-webkit-scrollbar, +pre.fragment::-webkit-scrollbar, +div.memproto::-webkit-scrollbar, +.contents center::-webkit-scrollbar, +.contents .center::-webkit-scrollbar, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname)::-webkit-scrollbar { + width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); +} + +#nav-tree::-webkit-scrollbar-thumb, +div.fragment::-webkit-scrollbar-thumb, +pre.fragment::-webkit-scrollbar-thumb, +div.memproto::-webkit-scrollbar-thumb, +.contents center::-webkit-scrollbar-thumb, +.contents .center::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname)::-webkit-scrollbar-thumb { + background-color: transparent; + border: var(--webkit-scrollbar-padding) solid transparent; + border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + background-clip: padding-box; +} + +#nav-tree:hover::-webkit-scrollbar-thumb, +div.fragment:hover::-webkit-scrollbar-thumb, +pre.fragment:hover::-webkit-scrollbar-thumb, +div.memproto:hover::-webkit-scrollbar-thumb, +.contents center:hover::-webkit-scrollbar-thumb, +.contents .center:hover::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):hover::-webkit-scrollbar-thumb { + background-color: var(--webkit-scrollbar-color); +} + +#nav-tree::-webkit-scrollbar-track, +div.fragment::-webkit-scrollbar-track, +pre.fragment::-webkit-scrollbar-track, +div.memproto::-webkit-scrollbar-track, +.contents center::-webkit-scrollbar-track, +.contents .center::-webkit-scrollbar-track, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname)::-webkit-scrollbar-track { + background: transparent; +} + +#nav-tree::-webkit-scrollbar-corner { + background-color: var(--side-nav-background); +} + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) { + overflow-x: auto; + overflow-x: overlay; +} + +#nav-tree { + overflow-x: auto; + overflow-y: auto; + overflow-y: overlay; +} + +/* + Scrollbars for Firefox +*/ + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) { + scrollbar-width: thin; +} + +/* + Optional Dark mode toggle button +*/ + +doxygen-awesome-dark-mode-toggle { + display: inline-block; + margin: 0 0 0 var(--spacing-small); + padding: 0; + width: var(--searchbar-height); + height: var(--searchbar-height); + background: none; + border: none; + border-radius: var(--searchbar-height); + vertical-align: middle; + text-align: center; + line-height: var(--searchbar-height); + font-size: 22px; + display: flex; + align-items: center; + justify-content: center; + user-select: none; + cursor: pointer; +} + +doxygen-awesome-dark-mode-toggle > svg { + transition: transform .1s ease-in-out; +} + +doxygen-awesome-dark-mode-toggle:active > svg { + transform: scale(.5); +} + +doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.03); +} + +html.dark-mode doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.18); +} + +/* + Optional fragment copy button +*/ +.doxygen-awesome-fragment-wrapper { + position: relative; +} + +doxygen-awesome-fragment-copy-button { + opacity: 0; + background: var(--fragment-background); + width: 28px; + height: 28px; + position: absolute; + right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + border: 1px solid var(--fragment-foreground); + cursor: pointer; + border-radius: var(--border-radius-small); + display: flex; + justify-content: center; + align-items: center; +} + +.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success { + opacity: .28; +} + +doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success { + opacity: 1 !important; +} + +doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg { + transform: scale(.91); +} + +doxygen-awesome-fragment-copy-button svg { + fill: var(--fragment-foreground); + width: 18px; + height: 18px; +} + +doxygen-awesome-fragment-copy-button.success svg { + fill: rgb(14, 168, 14); +} + +doxygen-awesome-fragment-copy-button.success { + border-color: rgb(14, 168, 14); +} + +@media screen and (max-width: 767px) { + .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button { + right: 0; + } +} + +/* + Optional paragraph link button +*/ + +a.anchorlink { + font-size: 90%; + margin-left: var(--spacing-small); + color: var(--page-foreground-color) !important; + text-decoration: none; + opacity: .15; + display: none; + transition: opacity .1s ease-in-out, color .1s ease-in-out; +} + +a.anchorlink svg { + fill: var(--page-foreground-color); +} + +h3 a.anchorlink svg, h4 a.anchorlink svg { + margin-bottom: -3px; + margin-top: -4px; +} + +a.anchorlink:hover { + opacity: .45; +} + +h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink { + display: inline-block; +} diff --git a/Documentation/eagle-plugin-notes.txt b/doxygen/eagle-plugin-notes.txt similarity index 100% rename from Documentation/eagle-plugin-notes.txt rename to doxygen/eagle-plugin-notes.txt diff --git a/doxygen/header.html b/doxygen/header.html new file mode 100644 index 0000000000..c8a5718005 --- /dev/null +++ b/doxygen/header.html @@ -0,0 +1,81 @@ +<!-- HTML header for doxygen 1.9.4--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta http-equiv="X-UA-Compatible" content="IE=11"/> +<meta name="generator" content="Doxygen $doxygenversion"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME--> +<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME--> +<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/> +<!--BEGIN DISABLE_INDEX--> + <!--BEGIN FULL_SIDEBAR--> +<script type="text/javascript">var page_layout=1;</script> + <!--END FULL_SIDEBAR--> +<!--END DISABLE_INDEX--> +<script type="text/javascript" src="$relpath^jquery.js"></script> +<script type="text/javascript" src="$relpath^dynsections.js"></script> +$treeview +$search +$mathjax +<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" /> +$extrastylesheet +<script type="text/javascript" src="$relpath^doxygen-awesome-darkmode-toggle.js"></script> +<script type="text/javascript" src="$relpath^doxygen-awesome-fragment-copy-button.js"></script> +<script type="text/javascript" src="$relpath^doxygen-awesome-paragraph-link.js"></script> +<script type="text/javascript"> + DoxygenAwesomeDarkModeToggle.init() + DoxygenAwesomeFragmentCopyButton.init() + DoxygenAwesomeParagraphLink.init() +</script> +</head> +<body> +<!--BEGIN DISABLE_INDEX--> + <!--BEGIN FULL_SIDEBAR--> +<div id="side-nav" class="ui-resizable side-nav-resizable"><!-- do not remove this div, it is closed by doxygen! --> + <!--END FULL_SIDEBAR--> +<!--END DISABLE_INDEX--> + +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> + +<!--BEGIN TITLEAREA--> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr id="projectrow"> + <!--BEGIN PROJECT_LOGO--> + <td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></td> + <!--END PROJECT_LOGO--> + <!--BEGIN PROJECT_NAME--> + <td id="projectalign"> + <div id="projectname">$projectname<!--BEGIN PROJECT_NUMBER--><span id="projectnumber"> $projectnumber</span><!--END PROJECT_NUMBER--> + </div> + <!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF--> + </td> + <!--END PROJECT_NAME--> + <!--BEGIN !PROJECT_NAME--> + <!--BEGIN PROJECT_BRIEF--> + <td> + <div id="projectbrief">$projectbrief</div> + </td> + <!--END PROJECT_BRIEF--> + <!--END !PROJECT_NAME--> + <!--BEGIN DISABLE_INDEX--> + <!--BEGIN SEARCHENGINE--> + <!--BEGIN !FULL_SIDEBAR--> + <td>$searchbox</td> + <!--END !FULL_SIDEBAR--> + <!--END SEARCHENGINE--> + <!--END DISABLE_INDEX--> + </tr> + <!--BEGIN SEARCHENGINE--> + <!--BEGIN FULL_SIDEBAR--> + <tr><td colspan="2">$searchbox</td></tr> + <!--END FULL_SIDEBAR--> + <!--END SEARCHENGINE--> + </tbody> +</table> +</div> +<!--END TITLEAREA--> +<!-- end header part -->