Commit Graph

242 Commits

Author SHA1 Message Date
Tomasz Włostowski 3b16d3cffe further DLIST/Iterators cleanup, some code formatting 2017-06-23 11:12:37 +02:00
jean-pierre charras 1fab667cf7 2 Minor fixes in GAL mode: when switching from legacy to gal, use now the latest display options.
Use hotkey defined by user to reset local coordinates in GAL (instead of the hard coded space key)
2017-06-13 11:25:05 +02:00
Jon Evans 3ec28e2acf Refactor layer enumerations to all live in the same place 2017-03-30 16:01:48 -04:00
Jon Evans 88f7c55d95 Move ZoomFitScreen and ZoomPreset from PCBNEW_CONTROL to COMMON_TOOLS
BOARD::GetBoundingBox() now directly calls BOARD::ComputeBoundingBox()
and there is a new method BOARD::GetBoardEdgesBoundingBox() used for
call sites that needed to use ComputeBoundingBox( true ) in the past.

This allows COMMON_TOOLS to implement ZoomFitScreen without knowledge
of the BOARD class.
2017-03-03 13:28:19 +01:00
Julius Schmidt a54830897b Fix intermittent canvas revert to default
The attached patch fixes a minor bug where opening the 'View' menu
will sometimes revert the canvas to the default canvas.  The problem is
that wxMenuItem::Check will cause a menu event when the status is changed even
if the checkmark is being *unset*.  The workaround is to only call Check with
a true argument.  This works because the menu items are radio buttons.
2017-02-10 14:52:26 -05:00
Chris Pavlina d442009e84 Use radio buttons in canvas selection menu items 2017-01-15 07:05:24 -05:00
jean-pierre charras d0db2de015 Cosmetic enhancement in pcbnew menubar: use specific icon in menuitems to switch canvases, and add a marker to the mode currently in use 2017-01-14 14:43:45 +01:00
Tomasz Włostowski 1c1f4e9a50 Refactoring of VIEW/VIEW_ITEM classes:
- Remove dependency of EDA_ITEM on VIEW
- VIEW_ITEM is now a pure virtual interface
2016-12-12 16:45:52 +01:00
Dick Hollenbeck 9ad49dc2d1 Split IO_ERROR out of richio.* and store Problem() and Where() separately 2016-09-20 11:56:18 -04:00
Mrio Luzeiro d8eab321f7 3D Viewer: complete refactor of the 3D viewer.
* Split and rewrite the preview window and canvas.
* Create a new class for handling the board information.
* Adds new render targets: openGL, legacy, and ray tracing.
* Render targets take full advantage of the new 3D plugins system and 3D cache
  for a fast 3D model loading.
* Faster board loading.
* New OpenGL render is faster than the old one.
* New ray tracing render target with a post processing shader.
* Use of new 3D plugins (WRL, X3D, STEP and IGES) and 3D model caching.
* Preview of 3D model while browsing the file name.
* 3D preview of the footprint while adding / align 3D shapes.
* Render of 3D models according to attributes: Normal, Normal+Insert, Virtual.
* Pivot rotation centered in one point over the PCB board.
* Shortcuts keys improved for XYZ orientation..
* Animated camera.
2016-07-19 13:35:25 -04:00
jean-pierre charras 6d1e904334 Code cleanup: Remove outdated decimils to/from iu defines and conversion functions (decimils are no more in use since a long time).
Remove convert_from_iu.h file, only used for one define, and containing brokenand duplicate defines. Only convert_to_biu.h is now used.
2016-06-05 13:49:25 +02:00
Maciej Suminski d9f4877c94 Fixed a crash when starting pcbnew with OpenGL GAL. 2016-05-09 17:23:01 +02:00
Simon Wells 415c72262a Pcbnew: use Legacy instead of Default when referring to wxDC canvas. 2015-12-22 16:25:59 -05:00
jean-pierre charras a11bbffe9b Code reorganization, and change the way 3D viewer frame is managed (now using wxWidgets wxWindow::FindWindowByName() to know if it is existing) , to prepare others fixes. 2015-12-21 12:52:00 +01:00
Maciej Suminski 45a9b1c000 Fixed the build problem introduced in revision 6215. 2015-09-24 18:59:10 +02:00
Maciej Suminski 9bb74e5244 Synchronize layers visibility on canvas switch. 2015-09-24 18:34:22 +02:00
unknown 8fedc57499 Small cleanup: remove a few unnecessary casts, and minor cleaning code. 2015-09-03 09:44:30 +02:00
Maciej Suminski 8b46c4eb8f Fixed crash when pcbnew was set to start with GAL canvas. 2015-08-10 14:34:55 +02:00
Maciej Suminski 6018bb6625 Pcbnew saves the type of used canvas. 2015-08-07 19:15:47 +02:00
Maciej Suminski 1d6fc920e6 Simplified code for switching canvases.
Moved SwitchCanvas() to PCB_BASE_FRAME and made it common for all subclasses.
More code from UseGalCanvas() is shared between classes.
2015-08-07 19:15:36 +02:00
Maciej Suminski 29cbaa206e Fixed updating of Zoom & Grid context menus. 2015-07-30 13:49:35 +02:00
Maciej Suminski 3cb095b7c2 GAL canvases update status bar, message panel & zoom widget. 2015-07-03 20:58:12 +02:00
jean-pierre charras 1311f81448 Replace wxComboBoxes by wxChoice in auxiliary horizontal toolbar, to try to avoid issues on OSX. 2015-07-02 11:50:38 +02:00
jean-pierre charras 77249d9b2d Minor fixes: remove a few useless includes and move a few others to the right file. Remove a few coverity warnings about not initialized members.
Minor bug fix: Zone duplicate zone in legacy mode: duplicate a zone to the same layer (and therefore  the same location) is no more allowed.
2015-05-15 14:49:11 +02:00
jean-pierre charras 37b0868376 Pcbnew: fix minor issues about fast grid switching, and next/previous grid selection from hotkeys. (GAL mode still has an issue) 2015-05-12 11:05:36 +02:00
Maciej Suminski 557bb43dd2 Moved TOOL_MANAGER & TOOL_DISPATCHER to EDA_DRAW_FRAME. 2015-04-30 10:46:02 +02:00
jean-pierre charras ea6b03cd5f footprint wizard python plugins management: Fix a memory leak. Remove useless and outdated code, and add a minor enhancement.
Make a string translatable in a pcbnew info dialog.
2015-04-21 17:42:30 +02:00
jean-pierre charras c7d04c3d08 Code cleaning: Remove EDA_BASE_FRAME::m_FrameName member which is a duplicate of wxFrame name. 2015-03-03 15:53:47 +01:00
Maciej Suminski c2bd2491f1 Added asserts in spots where DEGREES are not handled. 2015-02-19 16:03:45 +01:00
jean-pierre charras b1cd42cf08 Pcbnew: simplify draw code in default canvas and plot functions by removing the plot LINE option, which is not existing in all plotters, not existing in opengl/cairo canvas, and not usefull in default canvas. 2015-02-02 09:06:39 +01:00
jean-pierre charras f0a52644ea Pcbnew: fix Bug #1413701 (Segfault on highlight "unconnected" net 0 in Pcbnew ). Also, remove now useless code and other very minor fixes. 2015-01-23 12:24:32 +01:00
jean-pierre charras 9cfb97d8b4 Add hight contrast option in Modedit. In hight contrast mode, solder masks and solder paste are shown.
this option was possible only by modifying the way display options are managed.
before these changes, display options were a global DISPLAY_OPTIONS class instance.
Now each EDA_DRAW_FRAME(and derivated classes)  includes its own DISPLAY_OPTIONS class instance.
As a consequence, some duplicate display option variables in these classes have been removed, because there were just duplicate variables of the  DISPLAY_OPTIONS class instance.
2015-01-10 11:27:49 +01: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
Maciej Suminski a5972e7b48 Fixed crash on toggling the pad outline display mode in CvPcb. 2014-12-26 18:07:45 +01:00
Lorenzo Marcantonio 0da38e5b62 More work on module texts, and especially on the collector
The members SetIgnoreMTextsOnCopper, SetIgnoreMTextsOnCmp,
SetIgnoreModulesOnCu, SetIgnoreModulesOnCmp in the collector guide are
renamed to the clearer SetIgnoreMTextsOnBack, SetIgnoreMTextsOnFront,
SetIgnoreModulesOnBack, SetIgnoreModulesOnFront

Modified the collector and drawing behaviour for text in modules as
discussed in the mailing list.

* Now module text on layers different than Silk should work! *

Still need UI support for setting the layer in the module editor.
2014-09-11 18:35:19 +02: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
Maciej Suminski 72c70148e8 Fixed a few memory leaks and Valgrind warnings. 2014-07-09 15:02:56 +02:00
Maciej Suminski ad000aefa4 Fixed the legacy module editor. 2014-07-09 14:01:06 +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
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
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 def53707d5 TOOL_MANAGER is no longer static. Reworked autoregistration of TOOL_ACTIONs. 2014-05-14 16:29:53 +02:00
Maciej Suminski 27bb059aaf Via holes were always visible in GAL canvas - fixed. 2014-05-14 09:48:29 +02:00
Maciej Suminski 761375ddef More compatibility fixes. 2014-05-13 11:22:51 +02:00
Maciej Suminski d6fd8b2e23 Upstream merge. 2014-05-12 17:17:51 +02: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
Maciej Suminski c3b448b633 Upstream merge. 2014-05-01 15:55:50 +02: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
Maciej Suminski 371b2f7c0e Fixed vias layer order. 2014-04-09 17:01:22 +02:00