1. 25 Mar, 2015 1 commit
  2. 28 Feb, 2015 1 commit
  3. 22 Feb, 2015 1 commit
  4. 10 Jan, 2015 1 commit
    • jean-pierre charras's avatar
      Add hight contrast option in Modedit. In hight contrast mode, solder masks and... · 9cfb97d8
      jean-pierre charras authored
      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.
      9cfb97d8
  5. 24 Aug, 2014 1 commit
  6. 02 Aug, 2014 1 commit
  7. 24 Jun, 2014 1 commit
    • Dick Hollenbeck's avatar
      1) Add 32 Cu Layers. · 4578ea8b
      Dick Hollenbeck authored
      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.
      4578ea8b
  8. 20 Jun, 2014 1 commit
    • jean-pierre charras's avatar
      Remove 2 global variables: g_DrawBgColor and g_ShowPageLimits. · 7c99a242
      jean-pierre charras authored
      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.
      7c99a242
  9. 17 May, 2014 1 commit
  10. 24 Apr, 2014 1 commit
  11. 20 Mar, 2014 1 commit
    • Dick Hollenbeck's avatar
      * KIWAY Milestone A): Make major modules into DLL/DSOs. · 2c67c3ff
      Dick Hollenbeck authored
      !   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.
      2c67c3ff
  12. 25 Feb, 2014 2 commits
    • Maciej Suminski's avatar
      Renamed BOARD_CONNECTED_ITEM::GetNet() -> GetNetCode() · f7d00a39
      Maciej Suminski authored
      Renamed BOARD_CONNECTED_ITEM::SetNet() -> SetNetCode()
      Added BOARD_CONNECTED_ITEM::GetNet() for accessing NETINFO_ITEM* of a given item.
      Fixed module editor crash when launched to edit a module from a PCB.
      Replaced some BOARD::FindNet( item->GetNet() ) calls with BOARD_CONNECTED_ITEM::GetNet().
      f7d00a39
    • Maciej Suminski's avatar
      Renamed BOARD_CONNECTED_ITEM::GetNet() -> GetNetCode() · 75026d87
      Maciej Suminski authored
      Renamed BOARD_CONNECTED_ITEM::SetNet() -> SetNetCode()
      Added BOARD_CONNECTED_ITEM::GetNet() for accessing NETINFO_ITEM* of a given item.
      Fixed module editor crash when launched to edit a module from a PCB.
      Replaced some BOARD::FindNet( item->GetNet() ) calls with BOARD_CONNECTED_ITEM::GetNet().
      75026d87
  13. 26 Jan, 2014 1 commit
  14. 14 Jan, 2014 1 commit
    • Maciej Suminski's avatar
      Removed D_PAD::SetNetname() function and D_PAD::m_Netname, D_PAD::m_ShortNetname fields. · 654e7e55
      Maciej Suminski authored
      D_PAD::GetNetname() and D_PAD::GetShortNetname() were moved to BOARD_CONNECTED_ITEM. Now they use the net name stored in NETINFO_ITEM.
      Moved some one-line functions from class_board_connected_item.cpp to class_board_connected_item.h.
      Added a copyright notice, moved Doxygen comments from class_board_connected_item.cpp to class_board_connected_item.h.
      
      I have some doubts if changes introduced pcbnew/dialogs/dialog_pad_properties.cpp do not break anything, but I could not find a test case that breaks the pcbnew.
      
      Performed tests:
      - changed pad's net name from empty to existent - ok, name was changed
      - changed pad's net name from empty to nonexistent - ok, error message is displayed, net name stays empty
      - changed pad's net name from existent to empty - ok, net name became empty
      - changed pad's net name from existent to nonexistent - ok, error message is displayed, net name is not changed
      - (re)reading netlists, including net changes - fine, changes are applied, but empty nets are still kept
      - loaded pcbnew/pcad2kicadpcb_plugin/examples/CK1202_V1.pcb to test P-CAD import plugin - ok, net names are correct
      - imported an Eagle 6.0 board (Arduino Uno; http://arduino.cc/en/uploads/Main/arduino_Uno_Rev3-02-TH.zip) then saved in .kicad_pcb format and reloaded - ok, net names are correct
      - saved demos/video/video.kicad_pcb in legacy format and then loaded it again - ok, net names are correct
      654e7e55
  15. 20 Oct, 2013 1 commit
  16. 29 Jun, 2013 1 commit
  17. 27 Jun, 2013 1 commit
  18. 05 May, 2013 1 commit
    • Lorenzo Marcantonio's avatar
      Migrated the interfaces accepting angles to the double type · d00c83cd
      Lorenzo Marcantonio authored
      The plan goes like this:
      - eeschema still uses int in decidegrees
      - all the other things internally use double in decidegrees (or radians
        in temporaries)
      - in pcbnew UI the unit is *still* int in decidegrees
      
      The idea is to have better precision everywhere while keeping the user with int i
      angles. Hopefully, if a fractional angle doesn't come in from the outside, everything
      should *look* like an integer angle (unless I forgot something and it broke)
      
      When the time comes, simply updating the UI for allowing doubles from the user should
      be enough to get arbitrary angles in pcbnew.
      d00c83cd
  19. 02 May, 2013 1 commit
  20. 01 May, 2013 2 commits
    • jean-pierre charras's avatar
      3D viewer: Modify yhe way board items shapes are built: · 4ac7dd58
      jean-pierre charras authored
      * All items shapes  are converted to polygons.
      * Polygons are merged layer by layer (for calculation time reasons,zones are not merged)
      * for copper layers, vias and pads holes are substracted from polygons (but, for calculation time reasons,  not inside zones areas).
      * the look is better, mainly when displaying the copper thickness
      * solder and paste layers are now shown in 3D viewer.
      * the code was seriously cleaned (but still needs to be enhanced).
      * Note this is a work in progress which needs refinements.
      4ac7dd58
    • Lorenzo Marcantonio's avatar
      Angle and distances cleanup (preparing for angles in doubles) · 0e903dba
      Lorenzo Marcantonio authored
      - Removed spurious int casts (these are truncated anyway and will break
        doubles)
      
      - Applied the Distance, GetLineLength, EuclideanNorm, DEG2RAD, RAD2DEG
        ArcTangente and NORMALIZE* functions where possible
      
      - ArcTangente now returns double and handles the 0,0 case like atan2, so
        it's no longer necessary to check for it before calling
      
      - Small functions in trigo moved as inline
      0e903dba
  21. 10 Apr, 2013 1 commit
  22. 09 Apr, 2013 2 commits
  23. 07 Apr, 2013 1 commit
  24. 05 Apr, 2013 1 commit
  25. 04 Apr, 2013 1 commit
    • Lorenzo Marcantonio's avatar
      More work on EDA_COLOR_T and layers. · d12a4592
      Lorenzo Marcantonio authored
      In particular the new mechanism for handling extended color palettes is in place,
      included renaming the ini keys and saving the color name instead of its index; this means better forward compatibility with palette changes.
      
      Since ini keys are changed, colors will be reset
      d12a4592
  26. 31 Mar, 2013 1 commit
  27. 30 Mar, 2013 1 commit
  28. 22 Sep, 2012 1 commit
  29. 20 Sep, 2012 1 commit
    • jean-pierre charras's avatar
      dcsvg (and therefore KicadSVGFileDC) is now unused. Use SVG plotter only to... · 9e096061
      jean-pierre charras authored
      dcsvg (and therefore KicadSVGFileDC)  is now unused. Use SVG plotter only to export a board SVG file.
      SVG export does not use no more wxWidgets wxDC.
      In pcbnew SVG files can be created by plot menu (in B&W) or export SVG menu (B&W or Color).
      Export SVG menu is more suitable to create a view of a board, and plot menu is better to create a B&W document of silkscreen layers.
      (In the future, the 2 menus could be merged, because they are not very different).
      Note: pcbnew plot code is cleaned, mainly in dialog files, but still needs more cleanup.
      9e096061
  30. 02 Sep, 2012 2 commits
  31. 01 Sep, 2012 1 commit
  32. 03 Aug, 2012 1 commit
  33. 08 Jun, 2012 1 commit
  34. 19 Apr, 2012 1 commit
    • Dick Hollenbeck's avatar
      // Dick Hollenbeck's KiROUND R&D · c24863c0
      Dick Hollenbeck authored
      // This provides better project control over rounding to int from double
      // than wxRound() did.  This scheme provides better logging in Debug builds
      // and it provides for compile time calculation of constants.
      
      
      #include <stdio.h>
      #include <assert.h>
      #include <limits.h>
      
      //-----<KiROUND KIT>------------------------------------------------------------
      
      /**
       * KiROUND
       * rounds a floating point number to an int using
       * "round halfway cases away from zero".
       * In Debug build an assert fires if will not fit into an int.
       */
      
      #if defined( DEBUG )
      
      // DEBUG: a macro to capture line and file, then calls this inline
      
      static inline int KiRound( double v, int line, const char* filename )
      {
          v = v < 0 ? v - 0.5 : v + 0.5;
          if( v > INT_MAX + 0.5 )
          {
              printf( "%s: in file %s on line %d, val: %.16g too ' > 0 ' for int\n", __FUNCTION__, filename, line, v );
          }
          else if( v < INT_MIN - 0.5 )
          {
              printf( "%s: in file %s on line %d, val: %.16g too ' < 0 ' for int\n", __FUNCTION__, filename, line, v );
          }
          return int( v );
      }
      
      #define KiROUND( v )    KiRound( v, __LINE__, __FILE__ )
      
      #else
      
      // RELEASE: a macro so compile can pre-compute constants.
      
      #define KiROUND( v )  int( (v) < 0 ? (v) - 0.5 : (v) + 0.5 )
      
      #endif
      
      
      //-----</KiROUND KIT>-----------------------------------------------------------
      
      // Only a macro is compile time calculated, an inline function causes a static constructor
      // in a situation like this.
      // Therefore the Release build is best done with a MACRO not an inline function.
      int Computed = KiROUND( 14.3 * 8 );
      
      
      int main( int argc, char** argv )
      {
          for( double d = double(INT_MAX)-1;  d < double(INT_MAX)+8;  d += 2.0 )
          {
              int i = KiROUND( d );
      
              printf( "t: %d  %.16g\n", i, d );
          }
      
          return 0;
      }
      c24863c0
  35. 28 Feb, 2012 1 commit
  36. 19 Feb, 2012 1 commit