Commit Graph

146 Commits

Author SHA1 Message Date
Wayne Stambaugh 768ec258f7 Encapsulate LABEL_OBJECT class and message panel window member of EDA_DRAW_FRAME. 2011-12-12 09:02:37 -05:00
Dick Hollenbeck b979d1e0b9 plugin work, accessors 2011-12-12 02:37:05 -06:00
Dick Hollenbeck b26580d5df ++PCBNew
* Removed Pcb_Frame argument from BOARD() constructor, since it precludes
    having a BOARD being edited by more than one editor, it was a bad design.
    And this meant removing m_PcbFrame from BOARD.
  * removed BOARD::SetWindowFrame(), and BOARD::m_PcbFrame
  * Removed the global BOARD_DESIGN_SETTINGS which was in class_board.cpp
  * added BOARD_DESIGN_SETTINGS to the BOARD class, a full instance
  * a couple dialogs now only change BOARD_DESIGN_SETTINGS when OK is pressed,
    such as dialog_mask_clearance, dialog_drc, etc.
  * Removed common/pcbcommon.cpp's int g_CurrentVersionPCB = 1 and replaced it
    with build_version.h's #define BOARD_FILE_VERSION, although there may be a
    better place for this constant.
  * Made the public functions in PARAM_CFG_ARRAY be type const.
    void SaveParam(..) const and void ReadParam(..) const
  * PARAM_CFG_BASE now has virtual destructor since we have various way of
    destroying the derived class and boost::ptr_vector must be told about this.
  * Pass const PARAM_CFG_ARRAY& instead of PARAM_CFG_ARRAY so that we can use
    an automatic PARAM_CFG_ARRAY which is on the stack.\
  * PCB_EDIT_FRAME::GetProjectFileParameters() may no longer cache the array,
    since it has to access the current BOARD and the BOARD can change.
    Remember BOARD_DESIGN_SETTINGS are now in the BOARD.
  * Made the m_BoundingBox member private, this was a brutally hard task,
    and indicative of the lack of commitment to accessors and object oriented
    design on the part of KiCad developers.  We must do better.
    Added BOARD::GetBoundingBox, SetBoundingBox(), ComputeBoundingBox().
  * Added PCB_BASE_FRAME::GetBoardBoundingBox() which calls BOARD::ComputeBoundingBox()
2011-12-05 00:15:33 -06:00
Dick Hollenbeck 2515a806ae initial work on PCBNew PLUGIN support, in preparation for nanometer board load and save 2011-11-27 22:32:29 -06:00
Wayne Stambaugh cd0b231656 Minor fixes, dead code removal, and coding policy fixes.
* Use version of DateAndTime that returns a wxString and delete the
  version that takes a char* as it is no longer required.
* Merge StrNumICmp() and StrLenNumICmp() into StrLenNumCmp() to create a
  single function for comparing strings with integers and remove a lot
  of duplicate code.
* Remove unused strupper from string.cpp.
* Use wxArrayString for sorting the EDA_LIST_DIALOG contents.
2011-11-08 11:37:25 -05:00
Wayne Stambaugh edd35b4e90 PCB common library header rationalization.
* All header files used to create the PCB common library now compile as
  stand alone code.  This prevents the need to define them in a specific
  order to make source code compile properly.  It should also now be
  possible to relocate the source code to build the common PCB library
  to a separate folder.
2011-09-23 09:57:12 -04:00
Hauptmech bd19d31082 Hauptmech's centralized wxAuiPaneInfo patch. 2011-09-15 14:25:44 -04:00
Wayne Stambaugh cb78c9452b Undo changes from my last commit that caused a trace drag bug. 2011-09-14 11:08:44 -04:00
Wayne Stambaugh efc93aa52b PCBNew locate code refactoring.
* Move various locate functions into the appropriate board item object.
* Unified best zoom for all frames derived from PCB_BASE_FRAME.
* Remove track.cpp as it is no longer needed.
* Dead code removal.
* Remove scary frame window pointer member from board item objects.
* Add draw bounding box to gerber draw item for debugging purposes.
2011-09-13 09:29:43 -04:00
jean-pierre charras 3b381cf8cf Remove *.ico files and used only xpm or new pgn bitmaps for icons under Window.
Fix minor other issues.
Remove unused files.
2011-09-09 21:30:59 +02:00
Wayne Stambaugh ebc7259a91 Rename WinEDA_App class to EDA_APP and remove redundant includes. 2011-09-06 10:09:40 -04:00
Wayne Stambaugh 0d57d670b6 Add user write permission tests to PCBNew and other minor fixes.
* Check user write permissions before saving project, board, and footprint
  library files.
* Append read only to file name and path in title bar when the user
  does not have write privileges.
* Rename class WinEDA_ModuleEditFrame to FOOTPRINT_EDIT_FRAME.
* Lot's of Doxygen comment and coding style policy fixes.
2011-08-26 13:01:17 -04:00
Marco Mattila e414f8da09 Store the name of modedit active(/current/working?) library in a static variable. Edit some modedit strings. 2011-08-08 18:44:43 +03:00
jean-pierre charras 0b9f39fa43 Fix 3D frame issue when iconized (Windows only). 2011-08-04 13:23:19 +02:00
Wayne Stambaugh 04bf11c229 Change PCBNew and CVPCB 3D viewer focus behavior. (fixes lp:818890)
* Raise 3D frame in PCB editor and module editor instead of displaying a message
  dialog indicating that the 3D viewer is already open.
* Raise 3D viewer and module viewer in CVPCB to mimic the behavior changed in
  PCBNew.
* Set focus to OpenGL canvas when creating 3D viewer so mouse wheel events
  are handled on Windows without having to click on the canvas.
* Rename 3D viewer frame class from WinEDA3D_DrawFrame to EDA_3D_FRAME.
* The usual smattering of coding policy fixes.
2011-08-03 11:09:39 -04:00
jean-pierre charras f00696e835 Pcbnew: fix bug 804780.
All: use double instead of int to store zoom values.
2011-07-05 14:46:14 +02:00
Marco Serantoni 9214f5849e MacOSX: Complete support for wxOverlay (http://trac.wxwidgets.org/ticket/12894) 2011-05-20 20:25:11 +02:00
Wayne Stambaugh dcccaee2aa Replace WinEDAChoiceBox with wxComboBox. 2011-04-19 15:19:41 -04:00
jean-pierre charras 0760c126ed Code cleaning. Pcbnew: very minor fix 2011-03-04 20:16:00 +01:00
Wayne Stambaugh 1010601a78 PCBNew control update bug fixes, fixes lp:725963.
* Fix grid select box update bug on context menu.
* Fix via size and track width select box update bugs.
* Fix layer pair indicator button update bug.
* Fix auto track width tool bar control enable bug.
* Fix via size and track width select status bug in context menu.
* Fix layer select box and layer control widget select bug when current
  layer is removed.
* Add virtual function to notify objects derived from EDA_DRAW_FRAME that
  the units setting has changed.
* Coding policy class naming fixes.
2011-03-01 14:26:17 -05:00
Wayne Stambaugh cb647737ee Improve handling of tool bar command IDs.
* Make EDA_DRAW_FRAME current tool ID member variable private.
* Added global no tool selected ID to replace application specific no
  tool selected IDs.
* Change SetToolID to prevent setting the tool ID to anything less than
  the new global no tool selected ID and assert on debug builds.
* Change command and update user interface command event handlers to use
  new global no tool selected ID.
* Fixed schematic library editor add pin hot key handler.
2011-02-24 15:22:12 -05:00
Wayne Stambaugh ee003180bc Global variable removal and minor Doxygen comment fixes.
* Remove global key press variable.  The key press is know passed to
  GeneralControl().
* Removed unused old mouse buttons global variable.
2011-02-22 11:43:03 -05:00
Wayne Stambaugh c02d90e9a7 Use wxUpdateUIEvent in CVPcb and other minor changes.
* CVPcb now uses wxUpdateUIEvent instead of set toolbars.
* Removed duplicate event handlers in CVPcb that were factored into
  EDA_DRAW_FRAME.
* Fix definition of GeneralControle() in CVPcb that prevented it from being
  called.
* Remove rarely used and scary refresh code GeneralControle() method in all
  main frame windows.
* Factor zoom menu and tool bar command IDs down to EDA_DRAW_FRAME.
2011-02-21 16:07:00 -05:00
Wayne Stambaugh bdca3c5efb All control state handling is now performed in wxUpdateUIEvent handlers.
* Old control state handling code completely removed in all applications.
* Factor common control state handlers into EDA_DRAW_FRAME.
* Replaced EDA_ITEM test for newness with IsNew() method.
* Factor vertical right toolbar command handlers out of giant edit command
  switch statement in EESchema and PCBNew.
2011-02-21 08:54:29 -05:00
Wayne Stambaugh 7b8b51b240 Draw panel object refactoring and other minor code cleaning.
* Rename all member variables and methods that reference the cross hair
  code in draw panel object from cursor to cross hair to eliminate confusion
  between the two concepts.
* Rename cursor capture call backs in draw panel object to improve code
  readability.
* Create helper class for turning off the cross hair while drawing.
* Remove redundant block clear code.
* Remove redundant mouse capture call back reset code when end capture
  call back is called.
* Remove unused function definitions in base draw frame object.
* Lots of minor coding policy and doxygen comment fixes.
2011-02-11 15:48:13 -05:00
Wayne Stambaugh 0d8cb9b53c EESchema improvements and other minor fixes.
* Remove base screen methods from draw frame object and correct current
  screen methods in derived objects.
* Move restore old wires function code into schematic screen object.
* Make add junction method use current screen position instead of store
  position.
* Move poly line ghosting function into the delete current segment method
  as that was the only place is was being used.
* Add method to base schematic object of testing if object has a label
  that can be incremented.
* Simplified the schematic hierarchy traversing code.
* PCBNew Doxygen warning fixes.
2011-02-04 21:21:11 -05:00
Wayne Stambaugh 50f063da07 Changes to use cursor position as parameter and snap to grid settings.
* Changed managed cursor callback definition to include the current
  cursor drawing position.
* Modified all managed cursor callbacks to match new definition.
* Added snap to grid option to base drawing frame object.
* Changed add no connect managed cursor callback to use new position
  parameter instead of the stored one.
* Lots of coding policy fixes.
2011-02-03 14:27:28 -05:00
Wayne Stambaugh 6a26a7f9bf Use logical cursor position and other minor changes.
* Remove unused member variable m_SizeVisu from base screen object.
* Move nearest grid position code into base screen object.
* Add get cursor position method to base screen object.
* Add position parameter to OnHotKey method in base draw frame and all
  derived objects.
* Pass logical position on left mouse button click and double click
  events instead of device position.
* Pass logical position to on right mouse button click instead of device
  position.
* Use logical event position parameter for locating items in EESchema
  instead of the stored position.
* Remove unused position parameter when displaying component edit dialog
  in EESchema.
* Comment out debugging macro in eeschema/template_field_names.cpp that was
  preventing debug builds using wxWidgets 2.8.x.
2011-02-02 14:01:21 -05:00
Wayne Stambaugh 85ae0373e3 Global variable removal and coordinate fixes.
* ActiveScreen global variable is gone, yeah!
* Use drawing coordinates instead of screen coordinates when calling
  GeneralControle().
2011-02-01 10:46:25 -05:00
Wayne Stambaugh 73e38ce98c EESchema code refactoring and coding policy naming fixes.
* Move schematic wire and bus break code into schematic screen object.
* Move schematic test for dangling ends into schematic screen object.
* Remove left over debugging output in schematic screen object.
* Remove unused file eeschema/cleanup.cpp.
* Fix bug in schematic line object hit test algorithm.
* Fix a string concatenation compile error added in r2752.
* Rename class WinEDA_BasicFrame to EDA_BASE_FRAME.
* Rename class WinEDA_DrawFrame to EDA_DRAW_FRAME.
* Rename class WinEDA_DrawPanel to EDA_DRAW_PANEL.
2011-01-21 14:30:59 -05:00
jean-pierre charras 259d9a024c Pcbnew: gen drill files code cleanup. Fix minor bug 680558 2010-11-24 16:10:33 +01:00
jean-pierre charras f930894d9f Common dialog file housekeeping. Code cleanup, and minor fixes. 2010-11-20 11:59:59 +01:00
jean-pierre charras e095b07cc3 code cleaning 2010-11-18 22:16:28 +01:00
Dick Hollenbeck 6c9244e8c3 fix function comments, this time ones in *.cpp files until they
can be deleted later if they exist in the headers, or moved to 
headers if they should exist in the headers.
2010-11-12 10:59:16 -06:00
Dick Hollenbeck 636b2d301e function comments, fix ones in *.cpp files until they can be deleted if they exist in the headers 2010-11-12 10:36:43 -06:00
jean-pierre charras dcf7542514 Added hotkey E to edit items. Minor code cleaning 2010-08-10 20:34:26 +02:00
jean-pierre charras 0a63587342 added " pcbnew module editor toolbar items now in menubar" patch from Jerry Jacobs. Fixed TODO.
minor code cleaning. fixed minor warnings in debug mode.
2010-07-29 22:00:24 +02:00
jean-pierre charras 60c1cbe843 fixed issues with wxWidgets 2.9.1 2010-07-27 18:49:38 +02:00
jean-pierre charras 3097b919ed Pcbnew: Added grid origin patch from Lorenzo Marcantonio. Converted set grid dialog from DialogBlocks to wxFormBuilder, and added in this dialog the grid origin parameters settings. 2010-07-13 12:42:32 +02:00
Dick Hollenbeck bc14e66d78 A little useful feature: even if the default unit can be changed between
inches and mm, the industry is crazy enough to force us with mixed
design. For example I routinely use imperial units for track size and
clearance, but drilling is strictly a metric issue...

So I added a little parser to recognize a suffix specification in the
unit text boxes... so you can put in things like:
1in (1 inch)
1" (idem)
25th (25 thou)
25mi (25 mils, the same)
6mm (6 mm, obviously)

The rules are: spaces between the number and the unit are accepted, only
the first two letters are significant.

As a bonus, it also recognize the period (.) as a decimal point
substituting it with the correct locale character (there was a wishlist
for it, IIRC). Most useful for number pad fans :D
2010-07-12 09:07:09 -05:00
jean-pierre charras e14311997d Auto update 3D display after footprint or board edition. 2010-05-01 14:46:33 +02:00
jean-pierre charras 4787b38a63 Pcbnew: Fixed minor problems (bugs 568357 and 568356). Changed French word COTATION to DIMENSION in class COTATION (now class DIMENSION) 2010-04-23 11:54:40 +02:00
jean-pierre charras 0d485b4b4a fixed bug 564619. 2010-04-17 12:45:00 +02:00
stambaughw aab2f8a775 USE_WX_ZOOM clean up and other minor improvements.
* Make USE_WX_ZOOM clipping routine actually clip rather than just test
  if line needs drawn.
* Clean up as many USE_WX_ZOOM #ifdefs as possible.
* Minor coordinate rounding improvements.
* Minor scrolling and panning improvements.
* Remove unused KicadGraphicContext object code.
2010-02-22 16:45:35 +00:00
charras 25720516c9 Eeschema, libedit: fixed add/remove alias functions, broken
All: added in popup menus hotkeys info for zoom commands
2010-02-14 18:14:33 +00:00
stambaughw 3066c70559 Implement wxDC coordinate handling and wxGCDC.
* Implement code to allow wxDC to handle coordinate conversions between
  device and drawing units.
* Add build settings to enable wxGCDC for wxGraphicsContext testing.
* Remove wxAUI conditional build cruft as it is now required to build
  Kicad.
* Fix scroll increment size regression to prevent jumping around the
  zoom center position.
* Add find GDI+ cmake module for building on WXMSW when wxGraphicsContext
  is enabled.
2010-02-08 18:15:42 +00:00
charras a61b48eced Code cleaning. Use new font. 2010-02-01 21:23:27 +00:00
charras a46cd46d9d pcbnew: More about work on color selection and items visibility:
removed global variables and a lot of redundancies
2010-01-31 20:01:46 +00:00
charras 9d400e4c19 fixed some (minors) problems about hotkeys.
Code cleaning.
Patch for 3D problem with macOSX
2010-01-19 20:43:44 +00:00
charras 6efce74c96 Eeschema: fixed bug when edit a component reference using the component dialog editor
Code cleaning and using DrawPanel->Refresh() instead of ReDraw() when possible.
2010-01-13 13:43:36 +00:00
stambaughw 1a139a7fe7 More comment translation and capitalization fixes. 2009-11-18 12:52:19 +00:00
charras 4b61440eb1 fix some problems (not all) when using wxAUI.
others minor bugs fix.
2009-11-07 14:36:54 +00:00
dickelbeck 56995b3359 AUI support into topmost CMakeLists.txt 2009-11-05 08:52:41 +00:00
dickelbeck d3468dd557 Marco's AUI patch, basically 2009-11-02 22:24:55 +00:00
charras c5ad0c54c7 Pcbnew:Rework on print function: fixed the fully broken print function in Modedit
See also changelog
2009-10-23 07:41:29 +00:00
charras 5c7c2fafa1 minor problems fixed 2009-10-15 11:35:53 +00:00
stambaughw 92064f1dbf Fix save last grid size and other minor updates.
* Create single event handler for grid size events.
* Fix all frame windows to use new grid size event handler.
* Use offset relative to ID instead of ComboBox index to save last grid size.
* Move last grid size load/save setting into WinEDA_DrawFrame.
* Add equality and assignment operators the GRID_TYPE.
* Add current grid helper methods to BASE_SCREEN.
* Add GetPins helper to LIB_COMPONENT to replace GetNextPin where applicable.
* Add AppendMsgPanel helper to WinEDA_DrawFrame.
* Improve rounding for display of coordinates when millimeter units are selected.
2009-10-14 19:43:31 +00:00
dickelbeck 7e93bb19df Isaac's via patch 2009-09-29 04:44:35 +00:00
charras e8fef505f8 Pcbnew: fixed a double deletion that crashes pcbnew. Starting my work on net classes (moving target) 2009-09-27 11:00:21 +00:00
stambaughw 43d6c685b5 Command ID refactoring and other minor improvements.
* Split out application specific command IDs to prevent unnecessary rebuilding.
* Eliminate duplicate menu and tool bar command IDs.
* Split component library editor and viewer definitions to separate header files.
* More component library and document file merge code.
* A bunch of minor string readability and consistency fixes.
2009-09-22 12:27:57 +00:00
charras 2be6520a28 More about undo/redo in pcbnew and minor cleanup 2009-08-12 10:40:01 +00:00
charras 42022adb3f code cleaning 2009-07-30 11:04:07 +00:00
charras d535a0fc97 pcbnew: Starting work on undo/redo in pcbnew. Only some delete item commands are stored in undo/redo stack 2009-07-29 13:10:36 +00:00
charras 9d6daf5665 undo-redo rework 2009-07-23 15:37:00 +00:00
charras edb48d461b Fixed minor bugs. Code cleaning 2009-06-06 18:08:49 +00:00
stambaughw 8bf7911125 Build improvements, compiler warning fixes and build fixes, and lots of clean up.
* Created separate SVN version header.
* Add true config.h for platform dependency checks.
* Add dependency check cmake module.
* Remove some leftover hand crafted make files.
* Remove non-cmake build instructions from COMPILING.txt.
* Fix split _() strings causing Visual C++ compiler error.
* Fix lots of compiler warnings.
* Change project file parameter container from wxArray to boost::vector_ptr.
* Removed lots of redundant header definitions.
* Fixed green_xpm redefinition in ercgreen.xpm.
* Remove some dead code and unnecessary class methods.
2009-05-21 17:42:42 +00:00
charras 9edace2f5f Code clarification about 3 confusing functions to display info: DisplayInfo (displaying a message info) and class members DisplayInfo and Display_Infos doing the same thing (see changelog) 2009-04-17 08:51:02 +00:00
charras 70707523dd show axis in module editor and gerbview 2009-04-07 07:24:33 +00:00
stambaughw 689579bde1 Global variable unobfuscation, new library path search, and lots of other changes. See CHANGELOG.txt. 2009-04-05 20:49:15 +00:00
charras c6f68578b3 Removed some warnings in compilation. A small bug fixed when drawing grids on screen. 2009-02-11 15:49:28 +00:00
charras 1d3f2d520c Pcbnew : refinements for user grig 2009-02-07 14:13:16 +00:00
charras aee56a936e Change grid size type from integer to double (using wxRealPoint insteed of wxSize).
Mandatory in Pcbnew to handle without error metric grid used now for some footprints (BGA, connectors)
Not fully tested
2009-02-07 08:33:25 +00:00
charras d73e132455 See changelog 2009-02-06 11:45:35 +00:00
stambaughw 80e03c8c1b Build optimizations and cursor movement key bug fix. 2009-02-05 20:53:08 +00:00
stambaughw b833a46bad More header file realignments to reduce recompiling and general code cleaning. 2009-02-04 15:25:03 +00:00
charras f83bc3e3fa pcbnew: solved: info not displayed when clicking on a module. Removed: gcc 4.2.1 warning in moduleframe.cpp 2009-01-31 21:42:05 +00:00
stambaughw 2e5a57e100 New zoom implementation and some build optimizations. 2009-01-29 14:26:20 +00:00
stambaughw 4a489895a3 More zoom clean ups and code cleaning. 2009-01-07 15:59:49 +00:00
dickelbeck b603580355 WinEDA_BasePcbFrame::m_Pcb is now private, use GetBoard() to access it. 2009-01-05 05:21:35 +00:00
stambaughw 2611a54791 Convert global and embedded application pointers to wxGetApp() 2008-12-08 15:27:13 +00:00
stambaughw f966097d5a Improved grid implementation, 3D viewer debug assertion fix, moved drawpanel.cpp to common library, and added WinEDA_Appl declaration. 2008-12-05 16:03:05 +00:00
dickelbeck 3ef380f936 dlist cleanups, start of edit component in schematic rework 2008-11-24 06:53:43 +00:00
jerryjacobs eac91489d1 Dutch language update, 590 strings left 2008-11-08 21:58:50 +00:00
dickelbeck 721d878fcf GetScreen() work, menu capitalization, beautifying 2008-04-17 16:25:29 +00:00
lifekidyeaa 6d609d1837 Fixed segfault which occured when open ing the module editor, loading a module, closing it, and opening the module editor again. This was
caused by prematurely deleting the module editor's m_Pcb pointer, which has the same value (points to the same structure) as 
g_ModuleEditor_Pcb hence should not be 
deleted.
2008-03-14 05:47:35 +00:00
plyatov f942690930 Additions to the menu (see changelog). 2008-02-17 21:19:13 +00:00
CHARRAS a67a4f7eef listboxes.cpp problem: apply to window version only. Some other very minor enhancements and bug fixes 2007-10-30 20:40:08 +00:00
CHARRAS f0cd147643 pcbnew: use collector class to locate items in modedit, the footprint editor (thanks, Dick). 2007-10-27 18:05:50 +00:00
CHARRAS ec02baab5f remove unused files. some translations.
cvpcb:	set flag wxFRAME_FLOAT_ON_PARENT when create the footprint 3D frame and the display frame
2007-10-27 12:24:09 +00:00
dickelbeck cb49ea8989 see change_log.txt for 2007-Sep-11 UPDATE 2007-09-12 02:14:07 +00:00
dickelbeck dff70646a2 see change_log for 2007-Aug-31 2007-09-01 12:00:30 +00:00
dickelbeck 6acce67a64 made m_CurrentItem private, beautification 2007-08-20 01:20:48 +00:00
CHARRAS f27208a11b pcbnew: better messages in drc control and some other enhancements 2007-07-25 09:02:05 +00:00
lifekidyeaa 163ba39823 pcbnew: added ctrl-o,s,f
added buttons for insert and replace module in the module editor 
with a new bitmap.  restored JP's original functionality for the insert 
button, replace linked to the new code.
2007-06-21 15:14:38 +00:00
raburton dedb0228dc add files not currently available in source (e.g. docs, modules, etc.)
set svn:eol-style property to native for all ascii files to support cross platform development
2007-06-05 12:10:51 +00:00
plyatov 23c40f7e86 Initial import of KiCad. 2007-05-06 16:03:28 +00:00