Commit Graph

2187 Commits

Author SHA1 Message Date
Jose Ingnacio c9a1b239a6 Use XDG_CONFIG_DIR for lock file path on Linux.
* With fixes from Adam Wolf.
2015-01-07 10:04:57 -05:00
jean-pierre charras 678a763481 Pcbnew: better display of tracks/vias/grid in toolbar. All: modify the zoom value shown in toolbar or status bar (roughly now zoom 1.0 is near the 1:1 scale, on a 22 inches Monitor). Fix also many other minor and very minor issues 2015-01-06 08:38:58 +01:00
jean-pierre charras ad74a9a191 Pcbnew: better display of tracks/vias/grid sizes in toolbar 2015-01-05 14:20:04 +01:00
jean-pierre charras 6a19315557 Fix compat with swig 3.03 2015-01-04 08:19:04 +01:00
Garth Corral ac26035fe1 Merged trunk @ 5348 2015-01-02 13:06:58 -08:00
jean-pierre charras 605a9bb5f2 Page layout selection: fix Bug #1405972, and add minor enhancement in page layout selection dialog (the new layout is shown after selection).
When the filename is not absolute, the page layout file is now searched first in project folder, and then in kicad template folder, if not found in project.
2014-12-31 13:31:19 +01:00
Garth Corral bb2bc9d17c Merged trunk @ 5339 2014-12-28 09:39:27 -08:00
jean-pierre charras bc230f7650 Code cleaning: move class PAGE_INFO from common.h to class_page_info.h;
Fix issue when using a page layout file in project folder: eeschema and Pcbnew did not use it, unless using an absolute path.
Now, if the file path is nor absolute, it is seen as relative to the project (which is the expected behavior)
fp lib wizard: when pcbnew id compiled with USE_GITHUB_PLUGIN=OFF, the github plugin option is no more accessible (and the web viewer no more used).
2014-12-23 14:01:59 +01:00
Garth Corral f2a9ea1ddf Merge trunk @ 5331 2014-12-20 17:25:24 -08:00
unknown 05073c15ed Add option to VRML Export for Plain PCB (patch from Cirilo Bernardo) 2014-12-20 17:13:51 +01:00
jean-pierre charras 6deb3823d7 Aesthetic enhancements ( use few svg icons from Konstantin Baranowskiy).
Allows use of modifier shift key with letters A ... Z  in hot keys (including hot key editor). Thanks to John Bird, who helped me with his patch.
2014-12-18 19:53:19 +01:00
Ashley Mills bcbad9d3ec Fix FreeBSD build issues. 2014-12-16 15:47:47 -05:00
jean-pierre charras d83eb11aa6 Minor fixes. Remove unused icon. Add 3 new icons. Change one icon (3 icons are from Konstantin Baranowskiy) 2014-12-11 13:00:59 +01:00
Garth Corral 5a202e16c6 Merge trunk @ 5315 2014-12-07 10:32:59 -08:00
jean-pierre charras 0e996cac9e Pcbnew: fix Bug #1395594 (pcbplotparams parser sensitive to formatting)
Looked like a minor issue, but was due to a more serious bug, when using 2 different DSN_LEXERS which were not synchronized.
The fix is not perfect, but unfortunately, the parser used to read the PCB_PLOT_PARAMS in .kicad_pcb files is also used in legacy board file reader.
Therefore it is better than write 2 parser functions, one for legacy files, the other for the .kicad_pcb files, which make the same thing.
2014-12-04 20:15:26 +01:00
Garth Corral 668c3b76bf Merge trunk @ 5297 2014-11-21 09:48:23 -08:00
Maciej Suminski 18898fe807 tool: Added a generic parameter for RunAction(). 2014-11-21 11:28:34 +01:00
jean-pierre charras 2ab98f76c1 Try to fix an issue on Ubuntu/Unity for some dialogs which are not displayed. For most, adding GetSizer()->Fit( this ) in dialog constructor fix the issue, but at least one dialog still is not displayed. 2014-11-19 15:22:47 +01:00
Garth Corral 79a1086089 Merge trunk @ 5288 2014-11-16 00:45:35 -08:00
Camille 5729ee7ea5 Compile warning fixes and minor code policy fixes. 2014-11-15 08:43:23 -05:00
Maciej Suminski 9245b90392 Code formatting. 2014-11-14 20:19:00 +01:00
Tomasz Wlostowski 33f3aca611 geometry: IsSolid() and Move() methods, segment overlap detection, some improvements in SHAPE_LINE_CHAIN class. 2014-11-14 19:18:31 +01:00
Garth Corral a0e0958cec Merge trunk @ 5258 2014-11-08 14:21:46 -08:00
jean-pierre charras 6a93777a51 Polyline.h: remove useless class CRect. Use the more powerful EDA_RECT instead. Clean and remove duplicate code. 2014-11-08 13:25:29 +01:00
Garth Corral f5a8689385 Merge trunk @ 5256 2014-11-06 20:01:54 -08:00
Garth Corral 5c3cc11ed5 Fix debug assertion when clicking on hot key menu. (fixes lp:1389932) 2014-11-06 15:56:34 -05:00
Garth Corral c9d3fd6d89 Merge trunk @5250 2014-11-03 09:06:13 -08:00
jean-pierre charras 24f516f6ae Fix many doxygen warnings (due to missing info, old comments, typo ...) when building the doxygen doc. 2014-11-02 17:25:04 +01:00
Garth Corral e8bfd5fa5d Merge in trunk 2014-10-31 01:23:16 -07:00
jean-pierre charras 7e431a0d4b Pcbnew: Console python: use a wxMiniFrame to show the console and remove the management by a EDA_PANEINFO, which was not the right way to manage this console. 2014-10-31 08:51:22 +01:00
Garth Corral 4b9db692fb - Changed mousewheel handling to pan more smoothly rather than in larger
steps to better support devices with precise scrolling deltas (trackpads).
  Scrolling is done in the handler rather than creating and firing cmd events.
  This is intended to support two-finger scrolling on the Magic Trackpad.
- Added a preference, 'Use mousewheel to pan', to allow panning by default
  on mousewheel events.  This reverses the existing behavior where unmodified 
  mousewheel zooms and Shift/Cmd modified pans.  

  The old behavior was:
  - Unmodified scrollwheel performed zoom in/out
  - Shift modified scrollwheel performed pan up/down
  - Cmd modified scrollwheel performed pan left/right
  - Shift+Cmd modified scrollwheel performed zoom in/out
    with no cursor warp

  With the new preference checked, this changes to:

  - Unmodified scrollwheel performs pan up/down
  - Shift modified scrollwheel performs pan left/right
  - Cmd modified scrollwheel performs zoom in/out
  - Shift+Cmd modified scrollwheel performs zoom in/out
    with no cursor warp

  With the preference unchecked, this is now:
  - Unmodified scrollwheel performed zoom in/out
  - Shift modified scrollwheel performed pan left/right
  - Cmd modified scrollwheel performed pan up/down
  - Shift+Cmd modified scrollwheel performed zoom in/out
    with no cursor warp

  It should be noted that for the last case, the behavior has changed.
  This is not arbitrary.  This now matches expected behavior for an OS X
  application.  This also matches what wxWidgets expects on this platform
  as wxWidgets changes the axis of mousewheel events to horizontal when
  the event is shift-modified.

  The preference is added everwhere that mouse preferences previously
  existed, i.e., eeschema, pcbnew and gerbview.  The 3D Viewer does
  not yet honor this preference, but behaves as if it was checked.
  The pl_editor does not currently have any preferences to honor.

  As with the magnify event support, this covers canvases for all
  current tools, EDA_DRAW_PANEL, EDA_3D_CANVAS and EDA_DRAW_PANEL_GAL.

  This does NOT modify the behavior of mousewheel zooming, though it
  probably should.  This remains unsuitable for use with a trackpad,
  use pinch-to-zoom instead.
2014-10-30 11:53:08 -07:00
Garth Corral 6c137ac79c Added support for wxWidgets magnify events from the Magic Trackpad on OS X
Committing this separately from the rest to ease making a patch for just this
  functionality in case that it might make it into the trunk.
  
  This can function standalone, though it is less useful without the rest.
  It requires that wxwidgets-3.0.0_macosx_magnify_event.patch be applied to wxWidgets
  It is completely optional; everything is guarded by the USE_OSX_MAGNIFY_EVENT macro.
  
  - Added OnMagnify event handler to EDA_DRAW_PANEL, EDA_3D_CANVAS and the helper for
    EDA_DRAW_PANEL_GAL, WX_VIEW_CONTROLS. This should cover canvases all current tools.
  - Guarded all with USE_OSX_MAGNIFY EVENT feature macro and added support in CMakeLists.txt
2014-10-30 09:42:19 -07:00
unknown ad645abac4 Eeschema, Plot dialog: add Plot directory selection. The patch from 1383026@bugs.launchpad.net was widely used. 2014-10-26 14:59:01 +01:00
Wayne Stambaugh fd0d266bfe More missing source license fixes. 2014-10-22 11:51:34 -04:00
Wayne Stambaugh e8362df15f Add missing source file licenses and code policy fixes. 2014-10-19 16:20:16 -04:00
jean-pierre charras f23bb59cd1 Python scripting: make UTF8 class accessible by python scripts. Add python method GetChars() to UTF8 class to get its char buffer.
See scripts/test_kicad_plugin.py for example.
2014-10-18 10:18:14 +02:00
Wayne Stambaugh 431ed318e0 Pcbnew VRML export improvements.
* Improve VRML export dialog lay out.
* Make the OK button the default action in the export dialog.
* Make 3D model export work correctly and avoid redundant file copies.
* Fix embedded path separators in wrl files on windows.
* Fix absolute model file path creation in wrl files.
* Clean up VRML export code.
2014-10-17 19:28:12 -04:00
Mark Roszko 816974b8ca Hot key editor dialog improvemnts.
* Change hot key editing contol from wxGridTableBase to wxListCtrl.
* Separate hot key lists into separate tabs rather than one large list.
* Coding policy fixes.
2014-10-17 10:36:47 -04:00
Bernhard Stegmaier a4c59e6b97 More OSX build fixes.
* Many path related fixes.
* Fix execution of external applications.
* Update mac-osx.txt.
* Add top-level links for standalone applications inside OSX bundle.
* Fix document icons for Eeschema and pl_editor.
* Create individual bundles for standalone applications inside the main application bundle.
* Add usual 'site-packages' to python path in OSX bundle.
* Fix name of OSX bundle plugin folder.
2014-10-16 18:13:01 -04:00
Mark Roszko 606f2e91f8 Make hotkey command titles use consistent capitalization.
Rename "Switch highcontrast" to "Toggle High Contrast".
Eliminate most of the abbreviated hotkey titles.
Doxygenize dialog_hotkeys_editor.h and add missing license block.
Display <unassigned> if key code is 0 (NULL).
2014-10-15 21:17:51 -04:00
Mark Roszko 651a92a80f Hotkey Editor Polishing
Refactor hotkey editor to use tab control instead of one giant list.
Each tab is a separate hotkey section.
Modify EDA_HOTKEY_CONFIG to change the m_Comment member to m_Title for a new purpose.
We want a pretty title in the hotkey editor. We use m_Title for the key export comment which
still conveys the purpose just as easily.
Refactored usage of wxGrid into wxListCtrl which allows capturing navigation characters
and also works better (single selection is built in).
Add hotkey overwrite prompts that are paired with "Common" section. It will check if a hotkey
overlaps with the proper sections. i.e. Common with the all other sections; or Section 1 with just Common.
Right-click menu removed due to wxListCtrl being able to catch the special keys properly.
2014-10-15 21:17:46 -04:00
jean-pierre charras d82f403fd7 Libview and Modview: fix issues relative to hotkeys (hardcoded keys instead of user defined keys) and not working tools and popup menus.
Fix also some minor coding style issues.
2014-10-15 13:40:38 +02:00
jean-pierre charras 7c9418f667 Add FILE_NAME_WITH_PATH_CHAR_VALIDATOR, a custom wxValidator which allows file names with paths, in schematic sheet editor
( FILE_NAME_CHAR_VALIDATOR previously used in this dialog does not allow chars used in path names, like / and on Windows \ and : )
2014-10-13 18:42:28 +02:00
Maciej Suminski ad2df70953 Added EDA_DRAW_PANEL_GAL::ForceRefresh(). 2014-10-13 15:22:45 +02:00
Wayne Stambaugh 99f30c9d38 Road map and Doxygen work.
* Remove obsolete settings from Doxygen configuration file.
* Fix some Doxygen warnings.
* Add the board edge segment snapping to developers road map.
* Fix some coding style issues in CMakeLists.txt
2014-10-05 21:18:24 -04:00
Bernhard Stegmaier 8b3c14c08b OSX build improvements.
* Compile all binaries into a single application bundle.
* Use CMake BundleUtilities to make application bundle relocatable.
* Restructure build output to directly create an image file.
* Fix default search paths.
* Set KIGITHUB environment variable.
* Added patch to fix wxWidgets so names for OSX.
2014-10-02 19:03:52 -04:00
jean-pierre charras 24ed7f50f5 Pcbnew: fix Bug #1370321 (Change Segment function applies last netclass used).
Also update main toolbar track width and via size info in pns router mode, when starting a track, and other very minor update issue.
2014-09-28 16:44:47 +02:00
jean-pierre charras 9bcdef85cd Eeschema: canvas background color: all frame are now using the same parameter.
fix recent bug which prevent eeschema to save color preferences.
fix few other minor issues.
2014-09-26 12:35:11 +02:00
jean-pierre charras 93a3d4cb28 Eeschema: back to KICAD_KEEPCASE option, to find parts in lib, when using case sensitive option (default).
Schematic component properties dialog: add 2 helper buttons to manage the chip name (name of the corresponding part in lib)
- a browse button to chose an other chip name
- a test button, to know if the part exists. If not existing, list the parts found when searching using a case insensitive comparison.
2014-09-17 18:04:04 +02:00
Lorenzo Marcantonio 260ca0e79f Added support for decoupling stored text from shown text in EDA_TEXT
Factored out text ellipsing support to max 15 character (for generating menu items)
2014-09-13 20:15:45 +02:00
Paulo Henrique Silva 3132690c0b Fix slow opengl canvas on Mac OS 10.9. 2014-09-13 19:31:40 +02:00
Lorenzo Marcantonio 424aac6cf2 TEXTE_MODULE cleanup in preparation for text on different layers
- Removed the friends MODULE and FOOTPRINT_EDIT_FRAME from TEXTE_MODULE
  (as in the @todo comment)

- Refactored the Rotate/Flip/Mirror for text in modules into the
  TEXTE_MODULE class itself (members RotateWithModule, FlipWithModule,
  MirrorWithModule)

- New behaviour in coloring text on screen: reference and value still
  take the color from the MOD_TEXT_FR_VISIBLE and MOD_TEXT_BK_VISIBLE
  visibles; other text takes the color of the layer containing it
  (except when hidden, obviously) but still get its visibility
  controlled by those visibles (probably the most intuitive and useful
  behaviour)

- Still need to decide: should text on a layer be hidden when the layer
  is? Probably yes (still to be implemented);

- Some comment fixed and many cast converted to static_cast
2014-09-10 17:18:42 +02:00
Maciej Suminski 9195409f5e pcbnew: GAL updates the worksheet layout when it is reloaded. 2014-09-08 14:06:38 +02:00
Dick Hollenbeck 3e861db371 Lock file improvements. 2014-09-07 15:01:26 -04:00
Moses McKnight 6da5e2cdd0 Configuration file consolidation patch from Moses McKnight.
* Create GetNewConfig() and GetKicadConfigPath() to unify configuration file
  creation and location.
* Move Windows configuration out of the registry into configuration files.
* Move Linux configuration files from $HOME to $HOME/.config/kicad to eliminate
  configuration file pollution in the users $HOME folder.
* Fix a bug in the configuration file where the Eeschema hot keys are saved.
2014-09-05 17:12:38 -04:00
jean-pierre charras e5e388f2b4 Help files: can now be html or pdf files: Kicad search first for a .html help file, and if not found in a path, search for the corresponding .pdf file.
Therefore our .pdf files can be replaced at any time  by .html corresponding files in kicad doc/help sub directories.
2014-09-02 18:44:53 +02:00
Wayne Stambaugh ec9cd765bc Fix default menu alt key accelerator bug. (fixes lp:1035151)
* Add hot key handled return indicator to DRAW_FRAME::GeneralControl() and
  DRAW_FRAME::OnHotKey() and all classed derived from DRAW_FRAME.
* Add code to all GeneralControl() and OnHotKey() functions to return true if
  hot key was handled.
* Call event skip in DRAW_PANEL::OnKeyEvent() when key event is not handled to
  allow default menu event handler to function properly.
2014-08-29 16:23:40 -04:00
jean-pierre charras 020a0ae477 All: Fix crash on close Kicad, when a quasi modal dialog is open, and Kicad is closed from the Kicad project manager. 2014-08-29 19:49:49 +02:00
Wayne Stambaugh 3cbf8a7205 Fix back annotate field visibility bug in Eeschema. (fixes lp:1304835)
*  Fix Eeschema back annotation bug where footprint field visibility setting was ignored.
*  Replace two confusing and ambiguous dialogs with a simple single choice dialog.
2014-08-28 19:44:28 -04:00
jean-pierre charras d8c3ccb424 Pcbnew, Eeschema: release lock file when these editors are closed (Until now, the lock file was released when the full Kicad application was closed, not when the editor was closed).
Should fix Bug #1360470  and Bug #1359502 .
2014-08-26 12:54:22 +02:00
Maciej Suminski b30e0dd869 Boost 1.56 compatibility fix. 2014-08-26 11:16:56 +02:00
jean-pierre charras ed4fee7649 Eeschema: add dialog libedit options and move options relative to libedit from eeschema options to this dialog.
Ensure some values initialized by the schematic editor and used by libedit are also initialized in libedit even if  the schematic editor was not started.
Remove useless commands (save/load project config) in libedit, because now they have no sense.
2014-08-25 18:31:32 +02:00
jean-pierre charras 7bf06a3879 .pro file: Settings for schematic editor and library list are now stored in 2 independant sections [schematic_editor] and [eeschema].
This fixes Bug #1360219 (Lost settings in eeschema) and keep separation between code relative to lib management and code relative to preferences.
2 or 3 minor settings could be lost in some designs, but they are very easy to reenter.
2014-08-25 09:30:17 +02:00
Wayne Stambaugh 0b69ed3a5c Fix Eeschema sheet issues. Should close out bug lp:593782
* Refresh canvas when user cancels edits so that the discarded sheet is
  cleared from the schematic.
* Add file name validation to the sheet properties dialog to prevent
  illegal file name characters from being entered into the text control.
* Rename FOOTPRINT_NAME_VALIDATOR to FILE_NAME_CHAR_VALIDATOR for clarity.
2014-08-24 18:49:31 -04:00
jean-pierre charras 5a38d2b657 Rework on env. variable KISYS3DMOD. Until now, was used in different files using different ways, so no consistency between files.
code cleanup.
2014-08-24 09:05:07 +02:00
jean-pierre charras fafd19c616 Add patch from Mario Luzeiro to 3D viewer. Fix a serious issue due to duplicate ID used in menus and toolbars between sub-applications, related to wxUpdateUIEvent events loop.
wxUpdateUIEvent events can be sent to parent frames, when opening a menu in a child frame, if parent and child frame share same ID fro menuitems (or tools)
The wrong menuitem can be used in some cases ( because there are more than one menuitem with the same identifier), by a wxUpdateUIEvent event function run in a parent frame.
2014-08-19 16:51:15 +02:00
jean-pierre charras 1222924607 Eeschema: Fix some issues (all connections showed as not connected, DRC and NETLIST errors if all sheets in a hierarchy were not open) due to the fact the pointer of a schematic component to its part lib was calculated too late (or never calculated). 2014-08-18 18:39:51 +02:00
Dick Hollenbeck 49538cafb9 https://lists.launchpad.net/kicad-developers/msg14286.html 2014-08-17 18:00:49 -05:00
Andrew Zonenberg 87a5fa18d1 Fix uninitialized member in DRC_ITEM constructor. 2014-08-16 14:12:11 -04:00
Dick Hollenbeck 7e483f69bd Modular KiCad Blueprint Milestone B), major portions:
*) When kicad.exe closes a project, close any open KIFACEs so that they cannot
     get disassociated from their true PROJECT.
  *) Allow loading eeschema library editor from kicad.exe
  *) Allow loading pcbnew library editor from kicad.exe
  *) Rename LIB_COMPONENT to LIB_PART.
  *) Add class PART_LIBS, and PART_LIB.
  *) Make PART_LIBS non-global, i.e. PROJECT specific.
  *) Implement "data on demand" for PART_LIBS
  *) Implement "data on demand" for schematic SEARCH_STACK.
  *) Use RSTRINGs to retain eeschema editor's notion of last library and part being edited.
  *) Get rid of library search on every SCH_COMPONENT::Draw() call, instead use
     a weak pointer.
  *) Remove all chdir() calls so projects don't need to be CWD.
  *) Romove APPEND support from OpenProjectFiles().
  *) Make OpenProjectFiles() robust, even for creating new projects.
  *) Load EESCHEMA colors in the KIWAY::OnKiwayStart() rather in window open,
     and save them in the .eeschema config file, not in the project file.
  *) Fix bug with wxDir() while accessing protected dirs in kicad.exe
  *) Consolidate template copying into PROJECT class, not in kicad.exe source.
  *) Generally untangle eeschema, making its libraries not global but rather
     held in the PROJECT.
2014-08-13 15:28:54 -05:00
unknown c8d69f19c8 Pcbnew: add drc test for texts on copper layer (only in full drc test, not in on line drc), from a patch sent by Simon Schumann
Add EDA_TEXT::TransformTextShapeToSegmentList function to export a list of segments used to draw/plot the text.
2014-08-13 17:47:02 +02:00
unknown 84a985f8af Pcbnew: Commit patch (with very minor changes) about SVG file export with the layers ordered from bottom to top. ( bug 1286646 ), from Thiadmer Riemersma. 2014-08-10 16:15:02 +02:00
Maciej Suminski 468e9e4ac9 Initalize fields in TOOL_EVENT constructors. 2014-08-08 14:34:44 +02:00
jean-pierre charras 764369439e Add comments. Fix bug #1351507 (pad color does not reflect, whether the pad is on front or back layer) and bug #1351388 (Adding a keepout area appears on the opposite layer than selected) 2014-08-02 12:29:10 +02:00
jean-pierre charras 1540368422 Minor fixes and changes:
Remove a minor warning message in Debug mode for 2 dialogs.
Pcbnew: update Gerber X2 file format (File Attribute) to very last X2 specification
Eeschema: Fix a minor bug in block selection (sometimes the last selected component was select instead of items in selected area)
and better drag behavior when draging an item by the drag hotkey.
2014-07-29 18:38:27 +02:00
Maciej Suminski a57f7ae8cd Fix OpenGL canvas freeze under Windows. 2014-07-20 21:14:42 +02:00
Maciej Suminski 3aef4252ab Refinement to commit #4993. 2014-07-14 16:43:21 +02:00
Maciej Suminski ef9b0678c6 Fixed Python scripting enabled builds. 2014-07-14 15:14:37 +02:00
Maciej Suminski 91e9df59d4 Fixed layers order after changing the active layer. 2014-07-14 11:36:34 +02:00
Maciej Suminski b1837615aa Added event queue to handle events at the end of the event processing cycle. 2014-07-09 16:25:50 +02:00
Maciej Suminski c0a96141df Added AF_NOTIFY flag for TOOL_ACTIONs. 2014-07-09 15:10:32 +02:00
Maciej Suminski 65c116621d Added support for changing the cursor size. 2014-07-09 15:10:32 +02:00
Maciej Suminski 2b0e27f132 Introduced SELECTION_CONDITIONS to determine which menu entries should be visible in the SELECTION_TOOL context menu, depending on the selection. 2014-07-09 15:10:32 +02:00
Maciej Suminski 72c70148e8 Fixed a few memory leaks and Valgrind warnings. 2014-07-09 15:02:56 +02:00
Maciej Suminski 456eeaba10 Routines for handling clipboard with TOOL_MANAGER. 2014-07-09 14:01:07 +02:00
Maciej Suminski 94cc845b3f Added AF_ACTIVATE flag for TOOL_ACTIONs.
Reworked the way of processing events in TOOL_MANAGER class.
Added GetCommandStr() for TOOL_EVENT class.
2014-07-09 13:50:27 +02:00
Maciej Suminski f8f6fd41ad Introduced a new type of action: TA_ACTIVATE to distinguish events activating tools from common tool actions. 2014-07-09 13:50:27 +02:00
Maciej Suminski 5f806cfa18 Minor fixes to the Tool Framework. 2014-07-09 13:50:27 +02:00
Maciej Suminski f7ecc749f6 Restored std::map in TOOL_MANAGER. 2014-07-09 13:50:27 +02:00
Maciej Suminski 5ce29330b1 Restored support for custom angle rotation. 2014-07-09 13:50:27 +02:00
Maciej Suminski b0f3e79e54 Created a common interface for edit frames. 2014-07-09 13:50:27 +02:00
Maciej Suminski 8898b34755 Code formatting. 2014-07-09 12:10:28 +02:00
Maciej Suminski 2ee890d74b Minor changes. 2014-07-09 11:59:24 +02:00
Maciej Suminski dfc052d537 Added an alternative way to reach tools in the Tool Framework. 2014-07-09 11:59:24 +02:00
Maciej Suminski dca4667e66 PCB_LAYER_WIDGET became able to cooperate with PCB_BASE_FRAME. 2014-07-09 11:59:23 +02:00
Maciej Suminski 0306ec7efe {Set,Get}ActiveLayer moved from PCB_EDIT_FRAME to PCB_BASE_FRAME. 2014-07-09 11:50:27 +02:00
Maciej Suminski 7645ed8601 Grid offset is recomputed only when settings are changed. 2014-07-09 11:22:43 +02:00
Maciej Suminski 5134781a38 GAL view in pad properties dialog - initial version. 2014-07-09 11:22:43 +02:00
Maciej Suminski 2f7706e8cd Reduced number of switched events, allowing to use VIEW_CONTROLS, even if there is no extra event dispatcher. 2014-07-09 11:22:43 +02:00
Maciej Suminski 0fc93666c6 Rework to support multiple views with OpenGL GAL canvas. 2014-07-09 11:22:42 +02:00
Maciej Suminski 60b0a4e0be Alternative approach to handling events and commands by TOOL_DISPATCHER.
Event handlers are (dis)connected depending on the active view.
TOOL_DISPATCHER inherits from wxEvtHandler, so now it receives events directly instead of being fed by external handlers.
2014-07-09 11:22:42 +02:00
Maciej Suminski 3fd26b6dd2 TOOL_ACTIONs are automagically registered by TOOL_MANAGER upon its construction. 2014-07-09 11:22:42 +02:00
Maciej Suminski f5325f8d79 Removed a redundant pointer to EDA_EDIT_FRAME. 2014-07-09 11:22:42 +02:00
Maciej Suminski a68165d2a0 Minor changes (removed an unnecessary event handler and two function calls that had no real influence). 2014-07-09 10:57:32 +02:00
Maciej Suminski 9a47f4c645 Created a specialization of EDA_DRAW_PANEL_GAL: PCB_DRAW_PANEL_GAL.
Moved View related routines & fields from PCB_{BASE,EDIT}_FRAME & BOARD to PCB_DRAW_PANEL_GAL.
2014-07-09 10:57:32 +02:00
Maciej Suminski 2f6c5f3156 Removed EDA_DRAW_FRAME::SetGalCanvasActive() [it may be misleading], added EDA_DRAW_PANEL_GAL::GetBackend(). 2014-07-09 10:34:00 +02:00
Dick Hollenbeck acbe6290c5 switch back to original sexpr usage of PTREE, add new DSNLEXER constructor, enforce accessors in kicad.exe 2014-07-07 14:49:14 -05:00
Maciej Suminski 0304598a71 Fixed vertical alignment for strings that contain a newline character at the end (GAL). 2014-07-07 13:09:44 +02:00
Maciej Suminski fb0045a898 Bugfix: Bottom layer not correctly handled in (PNS) Interactive router. 2014-07-07 10:48:47 +02:00
Dick Hollenbeck 84a14c3a51 back annotation when CVPCB and EESCHEMA are running under KICAD 2014-07-06 23:12:04 -05:00
Dick Hollenbeck d6a8696a99 typo on B_CrtYd, F_CrtYd, B_Fab, F_Fab 2014-07-06 11:59:26 -05:00
Dick Hollenbeck 7cc5985c7a fix Inner1.Cu in pcb_parser.cpp, start cvpcb work. 2014-07-05 15:52:24 -05:00
Dick Hollenbeck 611592029f fix Inner1.Cu in pcb_parser.cpp, start cvpcb work. 2014-07-05 15:42:59 -05:00
jean-pierre charras 9a7116d4ab Update old demo board files. Minor code cleaning. 2014-07-04 21:36:43 +02:00
jean-pierre charras ab58dbfced Pcbnew: Rework on Gerber ouput: allows choice between format 4.5 and 4.6. Fix a minor issue in Gerber layers attributes.
fix print issue when printing each layer on a separate page.
2014-07-04 16:22:38 +02:00
Dick Hollenbeck e460b4a524 fix export_gencad.cpp 2014-06-30 10:03:20 -05:00
jean-pierre charras b50872edca Gerber output: Some changes after evaluation of Gerber files by Ucamco (the manager of GERBER format):
* default file ext is now .gbr (the "official extension")
* some outdated commands remoded.
* mainly use mm and 4.5 format instead of inches and 3.4 format. this is mandatory,
  because the 3.4 format (comming from old pcbned internal units) creates truncations in coordinates.
  (with serious issues in polygons which can appear self-intersecting afer truncation)
2014-06-30 12:00:21 +02:00
Dick Hollenbeck 60140dfbcf merge 2014-06-30 01:44:46 -05:00
Dick Hollenbeck 1e7495e634 merge 2014-06-30 00:46:18 -05:00
Dick Hollenbeck 06bf0821b9 fix LSET() constructors, formatting 2014-06-29 15:33:29 -05:00
Dick Hollenbeck add4d5eb6f re-work the LSET(int,...) constructor 2014-06-29 13:09:32 -05:00
Dick Hollenbeck ad750defb6 LAYER_ID work 2014-06-29 08:05:51 -05:00
jean-pierre charras d4a7685761 Pspice netlist generator: add option to use net numbers as net names (feature removed a long time ago, but needed by Oscad team)
Note these options are saved in project config.
2014-06-26 21:20:05 +02:00
Dick Hollenbeck 8627684122 use LSET::any() whereever possible and avoid conversion to integral type 2014-06-25 12:01:50 -05:00
Dick Hollenbeck b920fa00a5 1) Fix compiles using wx 3.x and 2.8.
2) Fix passing wxString to common/config_params so lookup keys 
   can be dynamically generated.  This gives ~/.kicad files all the colors.
3) Fix LEGACY_PLUGIN so it loads all layer types and masks properly.
4) Extend the table in router/pns_index.h to 128 from 64.
2014-06-24 23:36:02 -05:00
Dick Hollenbeck 4578ea8b9e 1) Add 32 Cu Layers.
2) Change from legacy Cu stack to counting down from top=(F_Cu or 0).
   The old Cu stack required knowing the count of Cu layers to make
   sense of the layer number when converting to many exported file types.
   The new Cu stack is more commonly used, although ours still gives
   B_Cu a fixed number.
3) Introduce class LSET and enum LAYER_ID.
4) Change *.kicad_pcb file format version to 4 from 3.
5) Change fixed names Inner1_Cu-Inner14_Cu to In1_Cu-In30_Cu and their
   meanings are typically flipped.
6) Moved the #define LAYER_N_* stuff into legacy_plugin.cpp where they
   can die a quiet death, and switch to enum LAYER_ID symbols throughout.
7) Removed the LEGACY_PLUGIN::Save() and FootprintSave() functions.
   You will need to convert to the format immediately, *.kicad_pcb and
   *.kicad_mod (=pretty) since legacy format was never going to know
   about 32 Cu layers and additional technical layers and the reversed Cu
   stack.
2014-06-24 11:17:18 -05:00
jean-pierre charras 7c99a242cf Remove 2 global variables: g_DrawBgColor and g_ShowPageLimits.
They are now member of EDA_DRAW_FRAME.
This change could fix Bug #1330781 (Background color change in Eeschema affects background color in Pcbnew)
Show page limits has meaning only for the schematic editor,  the board editor and the page layout editor.
Draw background color selection exists only in eeschema and  page layout editor.
In pcbnew, only a black background is allowed.
A side effect is now the user should set the background color in schematic editor, and the library editor (2 different options).
The default is still the white color.
2014-06-20 13:13:04 +02:00
jean-pierre charras 9ee8dac056 Pcbnew, python console: make it not dockable (workaround to avoid the fact accelerator keys which are used in the main menu are not sent to the console, in docked mode).
Minor cosmetic enhancement.
2014-06-19 08:26:53 +02:00
jean-pierre charras ba2c763222 better management of Python console. 2014-06-18 13:44:17 +02:00
jean-pierre charras 688dbe5de1 Minor cosmetic enhancement, and try to fix an issue with accelerator keys and the Python scripting console 2014-06-17 20:31:27 +02:00
Dick Hollenbeck 2ff53e95bd fix some bugs in FOOTPRINT_VIEWER_FRAME, get rid of statics 2014-06-16 14:00:26 -05:00
jean-pierre charras 52d2e7eb59 Fix a bug in ClassOf which crashes Pcbnew when its argument is NULL. It fixes bug #1329364. 2014-06-12 22:03:57 +02:00
Lorenzo Marcantonio bee6b9f9b7 Fixes #1186269
- Refactored the common part of cursor key movement and crosshair update
  in the various GeneralControl
- Add x10 movement with the keyboard (CTRL modifier)
- Avoid fixup of the cursor position by dummy mouse movements generated
  by cursor warping (original analysis and idea Chris Gibson)
- Do key handling in a way to permit sub-pixel cursor movement
2014-06-12 18:12:14 +02:00
Dick Hollenbeck 1385e39d89 Save the footprint editor's last footprint in the PROJECT RString facility. 2014-06-11 00:18:41 -05:00
Dick Hollenbeck 3d311f831e *) Remove more wxString static constructors which were crashing in PAGE_INFO assignment
to a new BOARD in the footprint editor.  This is PAGE_INFO::A4 and company.
   
*) Remove static storage of the BOARD in the module editor.
2014-06-11 00:00:30 -05:00
Dick Hollenbeck 8cb3423262 Remove class RETAINED_PATH, put is main member function into SEARCH_STACK.
Change class PROJECT to use a generalized wxString in place of the
RETAINED_PATH items, so that new session and project specific strings
of any purpose can be saved there, for the life of a session.
2014-06-10 10:56:43 -05:00
Maciej Suminski f5de166a7e Removed an unused parameter from TOOL_BASE::getModel<T>() method. 2014-06-06 14:59:25 +02:00
Tomasz Wlostowski 4121c27269 Clang-alike lightweight RTTI for pcbnew + type casting cleanup. 2014-06-06 11:44:21 +02:00
Bernhard Stegmaier 60a86853ec Removed a few warnings. 2014-06-05 12:40:26 +02:00
Maciej Suminski 35e343597b Grid in GAL takes into account grid offset. 2014-06-04 17:56:44 +02:00
Dick Hollenbeck 431675933a remove global g_UserLibDirBuffer which was a project specific global, and no longer used with FP_LIB_TABLE support. 2014-06-03 10:59:52 -05:00
Maciej Suminski 3480c41caa PNS router handles net class settings (dependent on the selected start item). 2014-06-03 16:09:27 +02:00
jean-pierre charras 59dfc053c2 Cosmetic enhancements: fix incorrect icons. 2014-05-31 17:49:15 +02:00
Maciej Suminski b1a19b1225 Setting proper tool for submenus of CONTEXT_MENU class. 2014-05-31 16:04:10 +02:00
Maciej Suminski dd1fcd0588 Fix for context menu hanging up in GAL. 2014-05-22 17:59:36 +02:00
Maciej Suminski 69816d8704 The GAL view uses colors settings from the legacy canvas.
Minor refactoring of PAINTER & RENDER_SETTINGS classes.
2014-05-21 23:13:30 +02:00
Maciej Suminski f31f92e45e Fixes the bug that causes pcbnew crash, when there are multiple net classes and the plot dialog was opened.
Changed NETCLASS* to boost::shared_ptr<NETCLASS>.
2014-05-20 11:29:37 +02:00
Maciej Sumiński 46020e20de Merged the new Interactive Push and Shove router.
Do not pay attention to add/remove files - it seems there may be a bug in git-bzr-ng plugin. I have checked them, they stayed exactly the same as before.
2014-05-18 17:16:59 +02:00
Lorenzo Marcantonio 6d17ad712c Made the project default text size apply to all text things in eeschema, instead of the hardcoded value 2014-05-16 15:57:53 +02:00
Maciej Suminski 4fcaf4c586 Minor BOARD_DESIGN_SETTINGS refactoring.
Removed SetCurrentClassName() (it was not used anywhere and less safe than SetCurrentClass()).
Added BOARD_DESIGN_SETTIGNS::GetDefault() to make some pieces of shorter and clearer.
2014-05-15 10:51:08 +02:00
jean-pierre charras bb0804ec29 DXF export: fix incorrect export of polygons having thick outline (like zones): Thick segments of outline were drawn like lines with no thickness.
Fix ( workaround only) crash (Windows only) when a quasi modal frame (like footprint viewer) was called from a dialog (like the component properties dialog in schematic editor).
Very minor other fixes.
2014-05-15 08:32:24 +02:00
Maciej Suminski def53707d5 TOOL_MANAGER is no longer static. Reworked autoregistration of TOOL_ACTIONs. 2014-05-14 16:29:53 +02:00
Tomasz Włostowski dd5558f653 geometry: GetShape()->Shape() in indexed shape containers 2014-05-14 13:53:02 +02:00
Tomasz Włostowski 5a51d11b78 geometry: get rid of useless vertex references in SEG class 2014-05-14 13:52:29 +02:00
Tomasz Włostowski 5bf50ee910 VIEW: added CalculateExtents() method 2014-05-14 13:48:29 +02:00
Maciej Suminski 0ae6b4412e Added a missing file. 2014-05-14 11:47:17 +02:00
Maciej Suminski cce6e27096 Various fixes to geometry & math library. 2014-05-14 11:45:01 +02:00
Maciej Suminski d27ea7895d Moved background color settings from GAL to RENDER_SETTINGS. Added RENDER_SETTINGS::TranslateColor() to convert between EDA_COLOR_T and COLOR4D. 2014-05-14 10:35:12 +02:00
Maciej Suminski d9eb15c9fa Moved NETCLASSES to BOARD_DESIGN_SETTINGS.
Most of the changes are just adding GetDesignSettings() before every occurence of m_NetClasses.
More complex changes:
class_netclass.cpp - NETCLASS does not store the pointer to the parent BOARD anymore. Added function SetParams( BOARD_DESIGN_SETTINGS& ).
class_netclass.h - Removed GetTrackMinWidth(), GetViaMinDiameter(), GetViaMinDrill(), GetuViaMinDiameter(), GetuViaMinDrill() as they were refering to BOARD_DESIGN_SETTINGS anyway (they are not net class specific).
kicad_plugin.cpp - filters out empty nets (that are anyway not saved) when storing net class information. Previously it was done in NETCLASS::Format() function.
2014-05-13 11:22:51 +02:00
Maciej Suminski 5af454c28b Fixed namecase for private fields in BOARD_DESIGN_SETTINGS class.
Moved a few one-liners of BOARD_DESIGN_SETTINGS class to the header file.
2014-05-13 11:22:51 +02:00
Maciej Suminski cd8aaee160 Moved most of the board design rules related fields & methods to BOARD_DESIGN_SETTINGS class. 2014-05-13 11:22:51 +02:00
Maciej Suminski 7ec1313cbc Custom width settings taken into account in wxUpdateUIEvent handlers. 2014-05-13 11:22:51 +02:00
Maciej Suminski 3f2fc34075 WX_UNIT_TEXT can handle default value. 2014-05-13 11:22:51 +02:00
Maciej Suminski e2feefc08c Fixed custom event handlers for CONTEXT_MENU.
Moved menuCopy to CONTEXT_MENU copy constructor.
2014-05-13 11:22:51 +02:00
Maciej Suminski 05ee03d6b0 Recursive copy constructor for CONTEXT_MENU. 2014-05-13 11:22:51 +02:00
Maciej Suminski 761375ddef More compatibility fixes. 2014-05-13 11:22:51 +02:00
Maciej Suminski 3eaef97a7d Added WX_UNIT_TEXT - wxWidget control for inputing sizes using different units (mm, inch, internal units). 2014-05-13 11:22:51 +02:00
Maciej Suminski 8bb5eaa434 Better way of adding CONTEXT_MENU entries. 2014-05-13 11:22:50 +02:00
Maciej Suminski 009d28d48c Merged lp:~cern-kicad/kicad/drawing_tool branch. 2014-05-13 10:19:37 +02:00
Maciej Suminski 402c7d21cb Fixed ifdefs in rtree.h. 2014-05-13 10:01:06 +02:00
Maciej Suminski d6fd8b2e23 Upstream merge. 2014-05-12 17:17:51 +02:00
Maciej Suminski 2ed804b8ef Upstream merge. 2014-05-12 17:17:51 +02:00
Dick Hollenbeck 9fe5ce67e6 Modular-Kicad milestone B), minor portion:
*)  Implement a framework for "Data Load On Demand".

*)  Implement FP_LIB_TABLE* PROJECT::PcbFootprintLibs(), which is the first
    prototype.

This allows the project specific footprint tables to be part of the Module Editor
when invoked from Eeschema.
2014-05-09 13:35:48 -05:00
Dick Hollenbeck e45aadd11b Modular-Kicad milestone B), minor portion:
*)  Implement a framework for "Data Load On Demand".

*)  Implement FP_LIB_TABLE* PROJECT::PcbFootprintLibs(), which is the first
    prototype.

This allows the project specific footprint tables to be part of the Module Editor
when invoked from Eeschema.
2014-05-09 13:35:48 -05:00
jean-pierre charras dc745aa62e Fix an annoying behavior of new quasi modal frames on Windows (when closing them, the caller frame was no more on top ) 2014-05-09 20:06:18 +02:00
jean-pierre charras 963029262b Fix an annoying behavior of new quasi modal frames on Windows (when closing them, the caller frame was no more on top ) 2014-05-09 20:06:18 +02:00
marco. 0166c95efd OSX: fix incorrect path to launch pl_editor.
fix also a bug in python script round_value_robin.py.
2014-05-09 08:32:05 +02:00
unknown 190461f8ed OSX: fix incorrect path to launch pl_editor.
fix also a bug in python script round_value_robin.py.
2014-05-09 08:32:05 +02:00
Dick Hollenbeck 3b0712873a Modular-Kicad milestone B), glamorous portions:
*) Eeschema can now show the footprint editor.

*) Eeschema can now invoke the footprint picker from the library part field editor.

*) KIWAY_PLAYER::ShowModal() takes aResultantFocusWindow that tells what window
   to give the focus to.  Required since frames are often near the top of the
   hierarchy and they are invoked by a peer, not a parent.
2014-05-05 12:28:40 -05:00
Dick Hollenbeck 55e61bc6e3 Modular-Kicad milestone B), glamorous portions:
*) Eeschema can now show the footprint editor.

*) Eeschema can now invoke the footprint picker from the library part field editor.

*) KIWAY_PLAYER::ShowModal() takes aResultantFocusWindow that tells what window
   to give the focus to.  Required since frames are often near the top of the
   hierarchy and they are invoked by a peer, not a parent.
2014-05-05 12:28:40 -05:00
Maciej Suminski a4cdf25f83 Upstream merge. 2014-05-05 10:51:31 +02:00
Maciej Suminski 9536ed811d Upstream merge. 2014-05-05 10:51:31 +02:00
Dick Hollenbeck 80a402a369 wx 2.8 now builds, but the quasi-modal support seems broken on 2.8. Wanted others to be able to build at least. 2014-05-04 14:57:44 -05:00
Dick Hollenbeck 19dd876684 wx 2.8 now builds, but the quasi-modal support seems broken on 2.8. Wanted others to be able to build at least. 2014-05-04 14:57:44 -05:00
Dick Hollenbeck a2227a75b4 Modular-Kicad milestone B), minor portions:
*) KIWAY_PLAYER::IsModal() is now a retained state, controlled by SetModal()

*) Fully re-work the KIWAY_PLAYER::ShowModal() to use a nested event loop.

*) Add support to DIALOG_SHIM for a "quasi-modal" dialog presentation and mode.
   See top of dialog_shim.cpp about that for benefits and need.

*) You can now pick footprint from the schematic component field dialog, although
   if you do this before you open the BOARD, you will only get the global footprint
   libraries, not also the project specific ones.  Opening the BOARD first avoids this
   problem.

This is the first example of cross KIFACE invocation, it is also the first
instance of using a TOP_FRAME other than FRAME_PCB as the first thing. It works,
but it's missing support for opening the project specific table because
historically the FRAME_PCB did that. This is now starting to expose all the near
term needs for KIWAY_PLAYER <-> PROJECT interaction, independence and out of
sequence usage.

A fix for this will be coming in a few days.

However it mostly starts to show why the KIWAY is terribly useful and important.
2014-05-04 13:22:27 -05:00
Dick Hollenbeck fef168aaed Modular-Kicad milestone B), minor portions:
*) KIWAY_PLAYER::IsModal() is now a retained state, controlled by SetModal()

*) Fully re-work the KIWAY_PLAYER::ShowModal() to use a nested event loop.

*) Add support to DIALOG_SHIM for a "quasi-modal" dialog presentation and mode.
   See top of dialog_shim.cpp about that for benefits and need.

*) You can now pick footprint from the schematic component field dialog, although
   if you do this before you open the BOARD, you will only get the global footprint
   libraries, not also the project specific ones.  Opening the BOARD first avoids this
   problem.

This is the first example of cross KIFACE invocation, it is also the first
instance of using a TOP_FRAME other than FRAME_PCB as the first thing. It works,
but it's missing support for opening the project specific table because
historically the FRAME_PCB did that. This is now starting to expose all the near
term needs for KIWAY_PLAYER <-> PROJECT interaction, independence and out of
sequence usage.

A fix for this will be coming in a few days.

However it mostly starts to show why the KIWAY is terribly useful and important.
2014-05-04 13:22:27 -05:00
Lorenzo Marcantonio 342016b692 Constification of HitTest and GetParent
In particular HitTest for zones *do not* select the nearest vertex/edge as a side effect
2014-05-04 19:08:36 +02:00
Lorenzo Marcantonio 85c5aa22c6 Constification of HitTest and GetParent
In particular HitTest for zones *do not* select the nearest vertex/edge as a side effect
2014-05-04 19:08:36 +02:00
Dick Hollenbeck 19c184df97 Change order of headers for wx 2.8, use wxWindowDisabler not ENABLE_DISABLE. 2014-05-03 19:44:57 -05:00
Dick Hollenbeck f16f248bf9 Change order of headers for wx 2.8, use wxWindowDisabler not ENABLE_DISABLE. 2014-05-03 19:44:57 -05:00
Dick Hollenbeck 991926d320 Modular-Kicad milestone B), major portions:
*) Rework the set language support, simplify it by using KIWAY.  Now any major
   frame with a "change language" menu can change the language for all KIWAY_PLAYERs
   in the whole KIWAY.  Multiple KIWAYs are not supported yet.

*) Simplify "modal wxFrame" support, and add that support exclusively to
   KIWAY_PLAYER where it is inherited by all derivatives.  The function
   KIWAY_PLAYER::ShowModal() is in the vtable and so is cross module capable.

*) Remove the requirements and assumptions that the wxFrame hierarchy always
   had PCB_EDIT_FRAME and SCH_EDIT_FRAME as immediate parents of their viewers
   and editors. This is no longer the case, nor required.

*) Use KIWAY::Player() everywhere to make KIWAY_PLAYERs, this registers the
   KIWAY_PLAYER within the KIWAY and makes it very easy to find an open frame
   quickly.  It also gives control to the KIWAY as to frame hierarchical
   relationships.

*) Change single_top to use the KIWAY for loading a KIFACE and instantiating
   the single KIWAY_PLAYER, see bullet immediately above.

*) Add KIWAY::OnKiwayEnd() and call it from PGM_BASE at program termination, this
   gives the KIFACEs a chance to save their final configuration dope to disk.

*) Add dedicated FRAME_T's for the modal frames, so m_Ident can be tested and
   these modal frames are distinctly different than their non-modal equivalents.
   KIWAY_PLAYER::IsModal() is !not! a valid test during the wxFrame's constructor,
   so this is another important reason for having a dedicated FRAME_T for each
   modal wxFrame.

On balance, more lines were deleted than were added to achieve all this.
2014-05-03 12:40:19 -05:00
Dick Hollenbeck 25d1ab4008 Modular-Kicad milestone B), major portions:
*) Rework the set language support, simplify it by using KIWAY.  Now any major
   frame with a "change language" menu can change the language for all KIWAY_PLAYERs
   in the whole KIWAY.  Multiple KIWAYs are not supported yet.

*) Simplify "modal wxFrame" support, and add that support exclusively to
   KIWAY_PLAYER where it is inherited by all derivatives.  The function
   KIWAY_PLAYER::ShowModal() is in the vtable and so is cross module capable.

*) Remove the requirements and assumptions that the wxFrame hierarchy always
   had PCB_EDIT_FRAME and SCH_EDIT_FRAME as immediate parents of their viewers
   and editors. This is no longer the case, nor required.

*) Use KIWAY::Player() everywhere to make KIWAY_PLAYERs, this registers the
   KIWAY_PLAYER within the KIWAY and makes it very easy to find an open frame
   quickly.  It also gives control to the KIWAY as to frame hierarchical
   relationships.

*) Change single_top to use the KIWAY for loading a KIFACE and instantiating
   the single KIWAY_PLAYER, see bullet immediately above.

*) Add KIWAY::OnKiwayEnd() and call it from PGM_BASE at program termination, this
   gives the KIFACEs a chance to save their final configuration dope to disk.

*) Add dedicated FRAME_T's for the modal frames, so m_Ident can be tested and
   these modal frames are distinctly different than their non-modal equivalents.
   KIWAY_PLAYER::IsModal() is !not! a valid test during the wxFrame's constructor,
   so this is another important reason for having a dedicated FRAME_T for each
   modal wxFrame.

On balance, more lines were deleted than were added to achieve all this.
2014-05-03 12:40:19 -05:00
Maciej Suminski c3b448b633 Upstream merge. 2014-05-01 15:55:50 +02:00
Lorenzo Marcantonio 7b4b3297db - Better way to iterate on vias in the track list (GetFirstVia)
- Converted the Next/Prev C casts to static casts and removed the type
  unsafe ones
- Splitted as virtual the VIA::Flip member instead of using RTTI
- Heavily refactored the 'unconnected track' cleanup routine
- Misc constification
2014-04-30 21:16:22 +02:00
jean-pierre charras 7b843ecac8 Plots function: fix a bug about virtual PLOTTER::Text, which was not virtual for derived classes due to a missing parameter in ::Text in these classes. Noticeable only in SVG plot.
SVG plot, fix a missing reinitialization in plot lines, which could define a filled polyline, instead of a simple polyline
(these fixes solve Bug #1313084 )
2014-04-28 18:13:18 +02:00
Marco Serantoni d2083b0671 [MacOSX] Fix for name collision with OSX headers, Maciej, Tomasz or others feel free to rework if you want/like 2014-04-27 16:28:37 +02:00
Lorenzo Marcantonio 3f2c0e1a8d TRACK/SEGVIA cleanup
- SEGVIA becomes VIA
- Drill size moved from TRACK to VIA
- Removed shape from TRACK, becomes ViaType in VIA
- GetTrace becomes GetTrack, for uniformity
- Some minor constification and typo fixes
2014-04-25 08:00:04 +02:00
Dick Hollenbeck 01f7a53195 remove KIWAY_EXPRESS::kiway_express() typo, add comments. 2014-04-22 10:26:59 -05:00
Dick Hollenbeck 8afe4599d0 Teach cvpcb about new KIWAY based cross-probing, factor out MAIL_T into mail_type.h 2014-04-22 10:16:19 -05:00
Dick Hollenbeck 7a129e167b Functional
*) void KIWAY::ExpressMail( FRAME_T aDestination, MAIL_T aCommand, const std::string& aPayload, wxWindow* aSource=NULL );
*) virtual void KiwayMailIn( KIWAY_EXPRESS& aEvent );
*) enum MAIL_T expansion into the brave new world if cross KIWAY_PLAYER communications.

Let the KIWAY_PLAYING begin.....
through well conceived mail from one KIWAY_PLAYER to another.
Get thinking now.  Add a new MAIL_T value, then send ExpressMail(), 
and receive it in KiwayMailIn(), it's that easy.
2014-04-21 09:49:33 -05:00
Dick Hollenbeck 1648d7fd43 Get cross-probing working under the Kiway. 2014-04-21 01:51:33 -05:00
Dick Hollenbeck e47a2bc5d4 happy Easter 2014-04-21 01:28:17 -05:00
Dick Hollenbeck a985255f95 add back missing pcbnew cross probing event handlers. eeschema launches kiface versions of pcbnew & cvpcb if not single. 2014-04-19 23:35:34 -05:00
Dick Hollenbeck f9f3ff22dc hook top frame with KIWAY::playerDestroyHandler() 2014-04-19 14:44:59 -05:00
Dick Hollenbeck 0d6560a218 *) Switch kicad.exe to using KIFACE modules for all major top level windows.
Eeschema, Pcbnew, and Cvpcb all run under the same process now,
    FOR THE VERY FIRST TIME!

*)  Added KIWAY::PlayerCreate(), PlayerClose(), and PlayersClose().

*)  Factored FRAME_T into <frame_type.h> from ID_DRAWFRAME_TYPE.

*)  Found that the following command line is helpful for collecting all the *.kiface
    files into the <build>/kicad/ directory so that kicad can find them.

      $ cp `find . -name '*.kiface'` kicad/

    Maybe somebody will want to rework how the CMake files are organized so all
    the binaries can go into the same place.  See python-a-mingw-us.

*)  This might fix the problem on the Mac where child process windows were not
    coming to the front.  See ->Raise() in kicad/mainframe.cpp.

*)  You can set USE_KIFACE to 0 in kicad/mainframe.cpp to chain load child exes
    instead of using the KIFACE modules directly, i.e. revert.
2014-04-19 13:47:20 -05:00
Dick Hollenbeck 5f65d0da93 *) Add KIFACE_I::StartFlags() and IsSingle() so a KIFACE implementation can know
if it is running under single_top.cpp or under a project manager.

*)  Test Kiface().IsSingle() when adding menus, some operations are not permitted
    when running under a project manager and the KIWAY_PLAYER is pegged to a
    specific project.

*)  Implemented KIWAY::KiFACE() so it loads *.kiface files.  They still have to be
    in the same directory as the main *.exe launcher, so this presents some difficulty
    when the binaries are not yet installed but rather the *.kiface files are still
    in their original build directories.  For today, I simply copied _pcbnew.kiface
    to build/kicad/.

*)  Add a test case to kicad/mainframe.cpp just to get an early peek at loading
    _pcbnew.kiface under the C++ project manager.  Got that working for one
    specific invocation just for proof of concept.  Surprise, it works.
2014-04-17 21:05:40 -05:00
Maciej Suminski e7ea0480e4 Upstream merge. 2014-04-16 11:26:41 +02:00
Dick Hollenbeck 4a7ba86996 PROJECT::configCreate() logic changes. 2014-04-15 00:34:28 -05:00
Dick Hollenbeck c39385a5cd improve help file finding after kiway breakage. 2014-04-14 13:49:52 -05:00
Maciej Suminski 3f8d9da31f Key events are handled by wxEVT_CHAR instead of wxEVT_KEY_[UP|DOWN]. Fixed issue of chars that require modifiers (e.g. ? is Shift+/ on US keyboard layout). 2014-04-09 17:33:22 +02:00
Maciej Suminski 50b202fe99 Hot keys specific to a tool have priority over global hot keys (TOOL_ACTION scope: AS_GLOBAL/AS_CONTEXT is finally handled properly). 2014-04-09 17:05:05 +02:00
Dick Hollenbeck 4011953455 Jettison FP_LIB_TABLE::ConvertFromLegacy() into a static function, where it
was used locally.  Then comment it out in favor of a newer strategy for
filling in nicknames in cvpcb. 

Add MODULE* FootprintLoadWithOptionalNickname( const FPID& aFootprintId )
        throw( IO_ERROR, PARSE_ERROR );
from code found elsewhere.
2014-04-09 08:33:04 -05:00
Dick Hollenbeck d053e5615b More migration towards single process, extend PROJECT::Config*() in proper direction, cleanups. 2014-04-07 23:55:53 -05:00
Maciej Suminski 85365b0dbc Upstream merge. 2014-04-07 18:00:13 +02:00
Maciej Suminski 89161331e4 Fixed refreshing issues (DRC, new items after reloading netlist and probably many other places). 2014-04-07 15:35:50 +02:00
Maciej Suminski 6fa2f060fa Formatted ttl library to comply with KiCad coding policy. 2014-04-07 13:32:09 +02:00
jean-pierre charras fe37c549f7 Footprint Editor: minor cosmetic enhancement (which could avoid a report like bug #1302255) 2014-04-04 20:28:35 +02:00
Maciej Suminski a0fb4ed0c1 Bruteforce module update after a netlist reload. 2014-04-04 17:42:35 +02:00
Maciej Suminski a6917280fe Added net highlighting. 2014-04-04 17:40:00 +02:00
Maciej Suminski ba275918e3 Renamed [class_]drawpanel_gal.[cpp|h] to [class_]draw_panel_gal.[cpp|h] to follow current naming scheme. 2014-04-04 11:56:04 +02:00
Maciej Suminski 4c5afc46af Added possibility of switching tools by the right toolbar buttons, without deactivating the current tool first (previously tools did not switch if there was one active). 2014-04-04 11:50:15 +02:00
Maciej Suminski 23392ce8c9 Upstream merge. 2014-04-02 15:38:59 +02:00
jean-pierre charras 34c593916c Pcbnew: Fix bug #1296649 (Text on flipped modules incorrectly placed).
Dialog Freeroute: if freeroute.jar is find in kicad binaries, it is run as a standard java application, not as web applcation
Very minor other fixes
FPC_(SMD_type)_footprintwizard.py wizard finished.
2014-03-27 18:45:05 +01:00
Maciej Suminski 60e9546b62 PCB_EDIT_FRAME::SetHighContrastLayer() went public.
Refactored code that handled zooming events.
Added PCB_RENDER_SETTINGS::Get/SetSketchMode().
PCBNEW_CONTROL reacts to hot keys changing display modes (sketch via/tracks, high contrast).
2014-03-24 17:20:23 +01:00
Maciej Suminski 3a43f0527f Changed void BASE_SCREEN::GetGrids( GRIDS& aList ) to const GRIDS& BASE_SCREEN::GetGrids().
Refactored:
- EDA_DRAW_FRAME::SetNextGrid() & SetPrevGrid()
- PCB_BASE_FRAME::SetFastGrid1() & SetFastGrid2()
Removed a warning from RN_DATA::updateNet(int).
2014-03-21 18:00:11 +01:00
Dick Hollenbeck 4a39fcdd8f single_top.c logic, improved OpenProjectFiles() documentation. 2014-03-21 11:59:19 -05:00
Maciej Suminski c7116e9d03 FIxed too late deletion of TOOLs. 2014-03-21 17:55:46 +01:00
Maciej Suminski 87c9423f0f PCB_EDIT_FRAME::SetActiveLayer() & GetActiveLayer() made public. 2014-03-21 11:17:47 +01:00
Maciej Suminski 0694f2fa1c TOOL_EVENTs autoregister themselves in ACTION_MANAGER.
ROUTER_TOOL events have temporarily changed their hotkeys assignment.
2014-03-21 10:40:50 +01:00
Dick Hollenbeck a7f1939203 simplify and fix the technique used to get the project fp-lib-table 2014-03-20 20:24:35 -05:00
Dick Hollenbeck 223419a8f6 documentation clarity 2014-03-20 11:32:34 -05:00
Dick Hollenbeck 141f3fed45 some doxygen fixes, comment fixes 2014-03-20 09:18:32 -05:00
Maciej Suminski 426844896e Minor fixes (check for net codes size for ratsnest, cursor coordinates are not always shown as if the cursor was snapped). 2014-03-20 11:31:32 +01:00
Maciej Suminski dbc4a8f292 GAL zooms in and out using the default hot keys (F1/F2).
Screen size is saved in VECTOR2I instead of VECTOR2D.
2014-03-20 08:47:31 +01:00
Dick Hollenbeck 6bfff89fe5 merge tip in, resolve. 2014-03-20 01:24:33 -05:00
Dick Hollenbeck 2c67c3ff80 * KIWAY Milestone A): Make major modules into DLL/DSOs.
!   The initial testing of this commit should be done using a Debug build so that
    all the wxASSERT()s are enabled.  Also, be sure and keep enabled the
    USE_KIWAY_DLLs option.  The tree won't likely build without it.  Turning it
    off is senseless anyways.  If you want stable code, go back to a prior version,
    the one tagged with "stable".

*   Relocate all functionality out of the wxApp derivative into more finely
    targeted purposes:
    a) DLL/DSO specific
    b) PROJECT specific
    c) EXE or process specific
    d) configuration file specific data
    e) configuration file manipulations functions.

    All of this functionality was blended into an extremely large wxApp derivative
    and that was incompatible with the desire to support multiple concurrently
    loaded DLL/DSO's ("KIFACE")s and multiple concurrently open projects.
    An amazing amount of organization come from simply sorting each bit of
    functionality into the proper box.

*   Switch to wxConfigBase from wxConfig everywhere except instantiation.
*   Add classes KIWAY, KIFACE, KIFACE_I, SEARCH_STACK, PGM_BASE, PGM_KICAD,
    PGM_SINGLE_TOP,
*   Remove "Return" prefix on many function names.
*   Remove obvious comments from CMakeLists.txt files, and from else() and endif()s.
*   Fix building boost for use in a DSO on linux.
*   Remove some of the assumptions in the CMakeLists.txt files that windows had
    to be the host platform when building windows binaries.
*   Reduce the number of wxStrings being constructed at program load time via
    static construction.
*   Pass wxConfigBase* to all SaveSettings() and LoadSettings() functions so that
    these functions are useful even when the wxConfigBase comes from another
    source, as is the case in the KICAD_MANAGER_FRAME.
*   Move the setting of the KIPRJMOD environment variable into class PROJECT,
    so that it can be moved into a project variable soon, and out of FP_LIB_TABLE.
*   Add the KIWAY_PLAYER which is associated with a particular PROJECT, and all
    its child wxFrames and wxDialogs now have a Kiway() member function which
    returns a KIWAY& that that window tree branch is in support of.  This is like
    wxWindows DNA in that child windows get this member with proper value at time
    of construction.
*   Anticipate some of the needs for milestones B) and C) and make code
    adjustments now in an effort to reduce work in those milestones.
*   No testing has been done for python scripting, since milestone C) has that
    being largely reworked and re-thought-out.
2014-03-19 19:42:08 -05:00
Maciej Suminski ef1ed9646a DRC markers are drawn in GAL canvases. 2014-03-19 13:42:46 +01:00
Maciej Suminski 342fd6e19e EC_CONVERGING handles colinear lines properly. 2014-03-18 13:57:10 +01:00
unknown b436924380 Warning removal, patches from Camille 019 2014-03-16 18:40:23 +01:00
Maciej Suminski e76c330aaf Fixes build error with the choosy CLANG (Thanks to Maciej Suminski) 2014-03-13 18:50:52 +01:00
Maciej Suminski afc56d3f6f Moved panning boundaries and scale limits from VIEW to VIEW_CONTROL. 2014-03-12 17:09:53 +01:00
Maciej Suminski c7fa57faf6 Changed the way of handling BOX2 traits (used std::numeric_limits). 2014-03-12 17:09:37 +01:00
Maciej Suminski 1e04f3b948 Removed excessive variable (m_Corners) from MARKER_BASE. 2014-03-12 15:53:20 +01:00
Maciej Suminski 66fcb84f92 Minor fix to SEG class. 2014-03-12 10:05:09 +01:00
Maciej Suminski f0251ebdb6 Merge selection tool branch. 2014-03-11 20:45:01 -04:00
jean-pierre charras 63401f3d95 Rework on 3D viewer (work in progress): Disable or enable layers, grid or 3D footprint shapes should be now faster. 2014-03-08 20:04:23 +01:00
Maciej Suminski b6e3b3a3f9 Merged selection_tool branch. 2014-03-06 10:43:40 +01:00
Maciej Suminski 5ed0980dd5 Merged upstream. 2014-03-06 09:42:16 +01:00
Maciej Suminski c557e52dab Squashed memory leaks. 2014-03-05 14:57:14 +01:00
Maciej Suminski 505b38416d Removed a few memory leaks. 2014-03-03 17:15:41 +01:00