1. 04 Apr, 2013 2 commits
  2. 02 Apr, 2013 1 commit
    • Maciej Suminski's avatar
      Introduction of Graphics Abstraction Layer based rendering for pcbnew. · e262b321
      Maciej Suminski authored
      New classes:
          - VIEW - represents view that is seen by user, takes care of layer ordering & visibility and how it is displayed (which location, how much zoomed, etc.)
          - VIEW_ITEM - Base class for every item that can be displayed on VIEW (the biggest change is that now it may be necessary to override ViewBBox & ViewGetLayers method for derived classes).
          - EDA_DRAW_PANEL_GAL - Inherits after EDA_DRAW_PANEL, displays VIEW output, right now it is not editable (in opposite to usual EDA_DRAW_PANEL).
          - GAL/OPENGL_GAL/CAIRO_GAL - Base Graphics Abstraction Layer class + two different flavours (Cairo is not fully supported yet), that offers methods to draw primitives using different libraries.
          - WX_VIEW_CONTROLS - Controller for VIEW, handles user events, allows zooming, panning, etc.
          - PAINTER/PCB_PAINTER - Classes that uses GAL interface to draw items (as you may have already guessed - PCB_PAINTER is a class for drawing PCB specific object, PAINTER is an abstract class). Its methods are invoked by VIEW, when an item has to be drawn. To display a new type of item - you need to implement draw(ITEM_TYPE*) method that draws it using GAL methods.
          - STROKE_FONT - Implements stroke font drawing using GAL methods.
                                
      Most important changes to Kicad original code:
          * EDA_ITEM now inherits from VIEW_ITEM, which is a base class for all drawable objects.
          * EDA_DRAW_FRAME contains both usual EDA_DRAW_PANEL and new EDA_DRAW_PANEL_GAL, that can be switched anytime.
          * There are some new layers for displaying multilayer pads, vias & pads holes (these are not shown yet on the right sidebar in pcbnew)
          * Display order of layers is different than in previous versions (if you are curious - you may check m_galLayerOrder@pcbnew/basepcbframe.cpp). Preserving usual order would result in not very natural display, such as showing silkscreen texts on the bottom.
          * Introduced new hotkey (Alt+F12) and new menu option (View->Switch canvas) for switching canvas during runtime.
          * Some of classes (mostly derived from BOARD_ITEM) now includes ViewBBox & ViewGetLayers methods.
          * Removed tools/class_painter.h, as now it is extended and included in source code.
                               
      Build changes:
          * GAL-based rendering option is turned on by a new compilation CMake option KICAD_GAL.
          * When compiling with CMake option KICAD_GAL=ON, GLEW and Cairo libraries are required.
          * GAL-related code is compiled into a static library (common/libgal).
          * Build with KICAD_GAL=OFF should not need any new libraries and should come out as a standard version of Kicad
                                  
      Currently most of items in pcbnew can be displayed using OpenGL (to be done are DIMENSIONS and MARKERS).
      More details about GAL can be found in: http://www.ohwr.org/attachments/1884/view-spec.pdf
      e262b321
  3. 28 Mar, 2013 4 commits
  4. 19 Mar, 2013 1 commit
  5. 18 Mar, 2013 1 commit
    • Wayne Stambaugh's avatar
      More encapsulation work. · 7d0ec1a1
      Wayne Stambaugh authored
      * Complete encapsulation of the MODULE class.
      * Complete encapsulation of the EDA_TEXT class.
      * Encapsulate most of the ZONE_CONTAINER class.
      * Add pcbcommon library as a dependency for reSWIGging the scripting
        support.  This should cover most dependency cases.
      7d0ec1a1
  6. 13 Mar, 2013 1 commit
    • Wayne Stambaugh's avatar
      Pcbnew encapsulation and code cleaning. · 42d7bf6c
      Wayne Stambaugh authored
      * Encapsulate most of the MODULE class.
      * Start encapsulating the DIMENSION class.
      * Lay some groundwork for EDA_TEXT encapsulation.
      * Move cleverly hidden MODULE functions into class_module.cpp.
      * Use std::swap to exchange TEXTE_PCB values for undo/redo.
      * Remove unused members from MODULE class.
      * The usual coding policy and documentation fixes.
      42d7bf6c
  7. 08 Mar, 2013 1 commit
  8. 07 Mar, 2013 1 commit
    • Wayne Stambaugh's avatar
      Documentation and coding policy fixes. · 2ab86e74
      Wayne Stambaugh authored
      * Fix all Doxygen warnings except polygon files.
      * Add footprint library table tasks to TODO.txt.
      * Add definition to drag.h to prevent nesting.
      * Coding policy fixes.
      2ab86e74
  9. 01 Mar, 2013 1 commit
  10. 26 Feb, 2013 1 commit
  11. 22 Feb, 2013 1 commit
    • Wayne Stambaugh's avatar
      Minor dialog and footprint ID class fixes. · 0e4bb20e
      Wayne Stambaugh authored
      * Make Pcbnew net list dialog honor escape key on Linux.
      * Make Pcbnew swap layers dialog honor escape key on Linux.
      * Layout and UI policy fixes for Pcbnew swap layer and net list dialogs.
      * Layout and UI policy fixes for Eeschema plot dialog.
      * Rename fpip.h to fpid.h.
      * Fix FPID class compiler errors.
      * Restore fpid.cpp to Pcbnew static library source list.
      0e4bb20e
  12. 12 Feb, 2013 1 commit
  13. 11 Feb, 2013 1 commit
  14. 10 Feb, 2013 1 commit
  15. 06 Feb, 2013 2 commits
  16. 02 Feb, 2013 2 commits
    • Emmeran's avatar
      added option to allow zooming around the crosshair instead of the center; can... · 0bdf5bac
      Emmeran authored
      added option to allow zooming around the crosshair instead of the center; can be enabled via options or by holding alt while using the mousewheel
      0bdf5bac
    • jean-pierre charras's avatar
      Changes for CvPcb to eeschema stuff file: the stuff file generation from CvPcb... · 619125f9
      jean-pierre charras authored
      Changes for CvPcb to eeschema stuff file: the stuff file generation from CvPcb is removed. Eeschema now imports footprints names from the .cmp usual file created by CvPcb or by Pcbnew (Why to use 2 file formats for the same thing?) .
      Pcbnew: in netlist dialog: The user now can choose between the netlist and the .cmp file to import footprints names.
      Therfore no need to delete the .cmp file when exists to use only the netlist.
      This is useful for users who use CvPcb only once to fill footprints fields in schematic, and after edit/modify the footprints fields in schematic outside CvPcb.
      619125f9
  17. 26 Jan, 2013 1 commit
  18. 24 Jan, 2013 1 commit
  19. 21 Jan, 2013 1 commit
  20. 19 Jan, 2013 1 commit
    • jean-pierre charras's avatar
      Pcbnew: fix a minor bug I created in rev 3912. · ac64da65
      jean-pierre charras authored
      Still try to find a better fix for Bug #1100876, however I am thinking the bug is not in Kicad:
      looks like a buggy version of wxWidgets is used, which sends sometimes an unwanted wxCommandEvent event,
      when an event::Check() is called inside a function called by a  wxUpdateUIEvent event.
      ac64da65
  21. 18 Jan, 2013 3 commits
  22. 13 Jan, 2013 1 commit
  23. 12 Jan, 2013 1 commit
    • Wayne Stambaugh's avatar
      Base object decoupling improvements. · f8a56d44
      Wayne Stambaugh authored
      * Improve MSG_PANEL_ITEM to handle message panel information.
      * Create containers for passing message panel items between objects and
        the message panel.
      * Rename EDA_ITEM::DisplayInfo to EDA_ITEM::GetMsgPanelInfo.
      * Remove all direct manipulation of EDA_DRAW_FRAME from all objects derived
        from EDA_ITEM.
      f8a56d44
  24. 10 Jan, 2013 2 commits
  25. 06 Jan, 2013 1 commit
  26. 04 Jan, 2013 1 commit
  27. 03 Jan, 2013 2 commits
  28. 01 Jan, 2013 1 commit
  29. 29 Dec, 2012 1 commit
  30. 28 Dec, 2012 1 commit
    • Wayne Stambaugh's avatar
      Add Pcbnew GEDA PCB module plugin support. · 7c86749c
      Wayne Stambaugh authored
      * Create new GEDA PCB plug in.
      * Add support for opening GEDA PCB footprints with module editor.
      * Make import footprint file dialog remember last selected footprint
        type during current session.
      * Update module editor file import to use new GEDA PCB plug in.
      * Let IO_MGR know about GEDA PCB plug in.
      * Create a WHITESPACE_FILTER_READER to simplify parsing GEDA PCB footprint
        files.
      7c86749c